├── .gitignore ├── .gitlab-ci.yml ├── DEVELOPMENT.md ├── LICENSE ├── README.md ├── composer.json ├── composer.lock ├── content ├── frontend.csv └── main.md ├── contributing.md ├── generate.php ├── lib ├── MarkdownGenerator.php ├── Parser │ ├── GenericCsvList.php │ └── ParserInterface.php └── ParserFactory.php └── media ├── awesome-magento-logo.png └── logo-ua.svg /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .DS_Store 3 | vendor/ 4 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | DOCS_DIRS: . 3 | 4 | stages: 5 | - lint 6 | - test 7 | 8 | include: 9 | - remote: 'https://raw.githubusercontent.com/run-as-root/gitlab-pipeline-templates/master/linter/markdown_spellcheck.yaml' 10 | - remote: 'https://raw.githubusercontent.com/run-as-root/gitlab-pipeline-templates/master/misc/awesome-bot.yaml' 11 | -------------------------------------------------------------------------------- /DEVELOPMENT.md: -------------------------------------------------------------------------------- 1 | # Development details of this repository 2 | 3 | ### Overview 4 | Content is managed via various files in the `content/` folder: Markdown files, CSV files, JSON files. The main content is written away in a file `content/main.md` which then includes other files by using custom tags: 5 | 6 | {% file=foobar.csv parser="AwesomeList\Parser\GenericCsvList" %} 7 | 8 | When generating the content, the `parser` class is instantiated with the `file` as an argument. Next, the parser returns Markdown content, which then replaces the tag. The end result of this parsed `content/main.md` file is written to the main `README.md` in the root of this repository, thus forming the Awesome List. 9 | 10 | ### Generating content 11 | To generate content, check out this repository. Next, run `composer install`. Next, run the script `generate.php`. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 DavidLambauer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Magento 2 [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) 2 | 3 |
4 | 5 | Awesome 6 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 | 15 | 16 | > A curated list of awesome Magento 2 Extensions & Resources. 17 | 18 | - [What is an awesome list?](https://github.com/sindresorhus/awesome/blob/master/awesome.md) 19 | - [Contribution guide](contributing.md) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/DavidLambauer/awesome-magento2/issues) 20 | 21 | --- 22 | 23 | ## Table of Contents 24 | 25 | - [What is Magento?](#magento) 26 | - [Events](#events) 27 | - [Frontends](#frontends) 28 | - [Tools](#tools) 29 | - [Open Source Extensions](#open-source-extensions) 30 | - [Blogs](#blogs) 31 | - [Education](#learning) 32 | - [Platforms](#platforms) 33 | - [Official Resources](#official-resources) 34 | 35 | --- 36 | 37 | ## What is Magento? 38 | 39 | Magento is an open-source e-commerce application that allows you to create webshops. We often speak of a frontend (the 40 | storefront where customers buy products) and a backend (the Magento Admin Panel where customers and products are being 41 | managed). The open source bit refers to the fact that the source code of Magento (PHP, HTML, CSS, JS, XML, and others) 42 | is distributed under an open-source license (OSLv3) that allows anyone to reuse the code and make changes to it. This 43 | open-source aspect has led to the massive popularity of the product Magento so that we often use the word Magento to 44 | refer to either the product, the community around it or both. 45 | 46 | Magento was started by a company called Varien, and with Magento version 1 (first released in 2008), popularity began to grow. 47 | Magento version 2 was first released in November 2015 but faced a problematic adoption because of its complex 48 | architecture and outdated features (KnockoutJS, RequireJS, Zend Framework 1). On the storefront part, 49 | this led to various new frontends. In 2018, Magento was acquired by Adobe. Later, Magento Enterprise was integrated 50 | into the Adobe cloud as Adobe Commerce Cloud, while the Magento Community Edition was relabeled Magento Open Source. In 51 | the community, there was uncertainty whether Adobe would maintain Magento Open Source in the long run in the way 52 | the community would see fit. This uncertainty led to a community initiative called Mage-OS. 53 | 54 | Also see: 55 | 56 | - [en.wikipedia.org/wiki/Magento](https://en.wikipedia.org/wiki/Magento) 57 | 58 | ## Events: Meet the community 59 | 60 | - [MageUnconference 🇩🇪](https://www.mageunconference.org/) - A Magento Unconference in Germany. 61 | - [MageUnconference 🇳🇱](https://mageunconference.nl/) - A Magento Unconference in the Netherlands. 62 | - [Meet Commerce](https://www.meetcommerce.com/) - A global series of conferences focused on commerce and innovation. 63 | 64 | ### Meet Magento 65 | 66 | [Meet Magento events](https://www.meet-magento.com/) bring together everyone from merchants through developers, solution and technology providers, and 67 | marketers—and we continue to expand. 68 | 69 | - [Meet Magento Baltics](https://meetmagentobaltics.com/) 70 | - [Meet Magento Brazil](https://meetmagentobrasil.org/) 71 | - [Meet Magento Florida](https://meetmagentofl.com/) 72 | - [Meet Magento India](https://www.meetmagento.in/) 73 | - [Meet Magento Malaysia](https://www.meetmagento.asia/) 74 | - [Meet Magento Netherlands](https://nl.meet-magento.com/) 75 | - [Meet Magento New York City](https://meetmagentonyc.com/) 76 | - [Meet Magento Poland](https://meetmagento.pl/) 77 | - [Meet Magento Romania](https://ro.meet-magento.com/) 78 | - [Meet Magento Singapore](https://meetmagento.sg/) 79 | - [Meet Magento UK](https://meet-magento.co.uk/) 80 | 81 | ## Front-ends 82 | 83 | The storefront of Magento 2 can be styled in numerous ways: 84 | 85 | - **Luma** (`Magento/luma`) - This is actually a default demo theme of Magento 2 itself, which again extends from `Magento/blank` which extends from the core. But more often, the name Luma refers to the entire stack: XML layout generates a tree-structure of blocks and containers, which eventually render via PHTML templates. The server-side rendered HTML is enriched with CSS (compiled from LESS source files) and JavaScript (RequireJS, KnockoutJS, jQuery). 86 | - **Adobe PWA Studio** - A new headless frontend, created by Adobe/Magento, based on ReactJS. It makes GraphQL calls to the Magento GraphQL API to retrieve data. The frontend offers Venia (a demo theme and UI component library), Peregrine (React hooks), Buildpack (Webpack configuration) and UPWARD (a middleware for SSR and image optimization). 87 | - **Hyvä** ([hyva.io](https://hyva.io/)) - An alternative for Luma, which replaces the LESS/CSS with TailwindCSS and the JavaScript with AlpineJS. Currently, it is only available via a commercial license. But for that price, the team works hard to create compatibility modules for 3rd party modules, give support and make the entire solution more and more versatile. 88 | - **Alokai** (_ex: Vue Storefront_) ([github.com/vuestorefront/vue-storefront](https://github.com/vuestorefront/vue-storefront)) 89 | - **DEITY** 90 | - **ScandiPWA** ([github.com/scandipwa/scandipwa](https://github.com/scandipwa/scandipwa)) 91 | - **Breeze Evolution** ([breezefront.com](https://breezefront.com/themes)) - A 100 pagespeed score frontend theme that is compatible with all Luma-based extensions. 92 | - **Front-Commerce** ([front-commerce.com](https://www.front-commerce.com/))- Front-Commerce is an innovative, advanced, ready-to-use PWA (Progressive Web App) front-end solution developed in France for Magento stores. 93 | 94 | ## Tools 95 | 96 | - [n98-magerun2](https://github.com/netz98/n98-magerun2) - The CLI Swiss Army Knife for Magento 2. 97 | - [RabbitMQ Retry Mechanism](https://github.com/run-as-root/magento2-message-queue-retry) - Magento 2 extension that brings possibility to retry RabbitMQ failed messages 98 | - [Documentation Search for Alfred](https://github.com/DavidLambauer/Alfred-Workflow-Magento-2-DevDocs-Search) - Easily 99 | integrate the official Magento 2 Search into your Alfred Workflows. 100 | - [Tablerates Generator](https://www.tableratesgenerator.com/) - Generate Tablerates with an online Tool. 101 | - [Pestle](https://github.com/astorm/pestle) - Code Generation Tool by Alan Storm. 102 | - [Mage2Gen](https://mage2gen.com/) - Online Module Creator. 103 | - [Mage Chrome Toolbar](https://github.com/magespecialist/mage-chrome-toolbar) - A MUST-HAVE Chrome Extension for 104 | Magento 2 by [MageSpecialist](https://github.com/magespecialist). 105 | - [MageSpecialist DevTools for Magento 2](https://github.com/magespecialist/m2-MSP_DevTools) Developer Toolbar 106 | - [magento2docker](https://github.com/aliuosio/magento2docker) - MariaDB, PHP , Redis, ElasticSearch in one dockerfile for fast demo and deveopment enviroment 107 | - [markshust/docker-magento](https://github.com/markshust/docker-magento) - Mark Shust's Docker Configuration for 108 | Magento 109 | - [Warden](https://github.com/wardenenv/warden) - A CLI utility for working with docker-compose environments 110 | by [David Alger](https://davidalger.com/) 111 | - [DDEV](https://github.com/ddev/ddev) - A open source tool for launching local web development environments in minutes. It supports PHP, Node.js, and Python. 112 | - [AmpersandHQ/ampersand-magento2-upgrade-patch-helper](https://github.com/AmpersandHQ/ampersand-magento2-upgrade-patch-helper) - Helper script to aid upgrading magento 2 websites by detecting overrides. 113 | - [PhpStorm Magento2 Extension](https://github.com/magento/magento2-phpstorm-plugin) - Official PhpStorm Magento2 114 | Extension. 115 | - [PhpInsights](https://github.com/nunomaduro/phpinsights) - PHP quality checks (with Magento2 presets) 116 | - [Tango](https://github.com/roma-glushko/tango) - CLI for analyzing access logs 117 | - [Masquerade](https://github.com/elgentos/masquerade) - Faker-driven, configuration-based, platform-agnostic, 118 | locale-compatible data faker tool 119 | - [Magento 2 Composer patches helper](https://chrome.google.com/webstore/detail/magento-2-composer-patche/gfndadbceejgfjahpfaijcacnmdloiad) - Chrome extension to create copy-pastable composer patch definition for vaimo/composer-patches. 120 | - [Migrate DB Magento 2 Commerce to Magento 2 Open-Source](https://github.com/opengento/magento2-downgrade-ee-ce) 121 | - [Magento 2 Database Synchronizer](https://github.com/jellesiderius/mage-db-sync) - Database synchronizer for Magento 2 (and Wordpress), based on Magerun2. Keeping development, staging and production in sync easily. 122 | - [Subodha Magento2 Gulp Integration](https://github.com/subodha/magento-2-gulp) - Magento 2 Gulp Integration 123 | - [Magento 2 Url Data Integrity Checker](https://github.com/baldwin-agency/magento2-module-url-data-integrity-checker) - Magento 2 module which can find potential url related problems in your catalog data 124 | - [Mage Wizard](https://github.com/clickAndMortar/mage-wizard) - Local web UI to view and create automatically modules, plugins, configs, observers, commands, crontabs, etc. directly in Magento 2 codebase 125 | - [Mage](https://github.com/GrimLink/mage) - Simplifies bin/magento commands by adding helpful shortcuts and time-saving tools to enhance your productivity. 126 | - [Magento Log Viewer - A Visual Studio Code Extension ](https://marketplace.visualstudio.com/items?itemName=MathiasElle.magento-log-viewer) - Provides a convenient way to view, watch and manage Magento log files and reports directly in your workspace. 127 | 128 | ## Open Source Extensions 129 | 130 | ### Development Utilities 131 | 132 | - [Cypress Testing Suite](https://github.com/elgentos/magento2-cypress-testing-suite/) - A community-driven Cypress 133 | testing suite for Magento 2 134 | - [Config ImportExport](https://github.com/semaio/Magento2-ConfigImportExport) - CLI Based Config Management. 135 | - [Whoops Exceptions](https://github.com/yireo/Yireo_Whoops) - PHP Exceptions for Cool Kids in Magento 2. 136 | - [Magento Cache Clean](https://github.com/mage2tv/magento-cache-clean) - A faster drop in replacement for bin/magento 137 | cache:clean with file watcher by Vinai Kopp](https://twitter.com/vinaikopp) 138 | - [Developer Toolbar](https://github.com/mgtcommerce/Mgt_Developertoolbar) - Magento 2 Developer Toolbar. 139 | - [Advanced Template Hints](https://github.com/ho-nl/magento2-Ho_Templatehints) - Magento 2 Template Hints Helper. 140 | - [Scope Hints](https://github.com/avstudnitz/AvS_ScopeHint2) - Displays additional information in the Store Configuration 141 | by Andreas von Studnitz. 142 | - [Magento 2 Configurator](https://github.com/ctidigital/magento2-configurator) - A Magento module initially created by 143 | CTI Digital to create and maintain database variables using files. 144 | - [Auto Cache Flush](https://github.com/yireo/Yireo_AutoFlushCache) - Magento 2 module to automatically flush the cache. 145 | - [Magento 2 PHPStorm File Templates](https://github.com/lfolco/phpstorm-m2-filetemplates) - PHPStorm Magento 2 File 146 | Templates. 147 | - [MageVulnDB](https://github.com/gwillem/magevulndb) - Central repository for third party Magento extensions with known 148 | security issues. 149 | - [Magento 2 Prometheus Exporter](https://github.com/run-as-root/magento2-prometheus-exporter) - Prometheus Exporter for 150 | common Magento Data. 151 | - [graycoreio/magento2-cors](https://github.com/graycoreio/magento2-cors) - Enables configurable CORS Headers on the 152 | Magento GraphQL API. 153 | - [bitExpert/phpstan-magento](https://github.com/bitExpert/phpstan-magento) - Magento specific extension for PHPStan 154 | - [Dot Env](https://github.com/zepgram/magento-dotenv) - Magento 2 Environment Variable Component - Implementing Symfony Dotenv. 155 | - [Rest Client](https://github.com/zepgram/module-rest) - Technical Magento 2 module providing simple development pattern, configurations and optimizations to make REST API requests toward external services based on Guzzle Client. 156 | - [Magento 2 Model Generator / CRUD Generator](https://www.model-generator.com/) - A more up-to-date version of a Magento 2 Model & CRUD Generator by [Michiel Gerritsen](https://github.com/michielgerritsen) 157 | - [Simon's Troubleshooting Guide](https://gist.github.com/ProcessEight/000245eac361cbcfeb9daf6de3c1c2e4) - A list with the most common errors you encounter during development. 158 | - [Magewire PHP](https://github.com/magewirephp) - A Laravel Livewire port for building complex AJAX-based components with ease. Used by the Hyvä Checkout. 159 | - [Yireo LokiComponents](https://github.com/yireo/Yireo_LokiComponents) - A library for building AJAX-driven form components with ease. Used by the Yireo Loki Checkout. 160 | 161 | ### Deployment 162 | 163 | - [Deployer Magento2 Recipe](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php) - Magento2 164 | deployment recipe for [deployer](https://deployer.org/). 165 | - [Magento 2 Deployer Plus](https://github.com/jalogut/magento2-deployer-plus) - Tool based on deployer.org to perform 166 | zero downtime deployments of Magento 2 projects. 167 | - [Github Actions for Magento2](https://github.com/extdn/github-actions-m2) - GitHub Actions for Magento 2 Extensions 168 | 169 | ### Localization 170 | 171 | - [de_DE](https://github.com/splendidinternet/Magento2_German_LocalePack_de_DE) :de: - German Language Package. 172 | - [de_CH](https://github.com/staempfli/magento2-language-de-ch) 🇨🇭 - Swiss Language Package. 173 | - [fr_FR](https://github.com/Imaginaerum/magento2-language-fr-fr) :fr: - French Language Package. 174 | - [da_DK](https://magentodanmark.dk/) 🇩🇰 - Danish Language Package. 175 | - [es_AR](https://github.com/SemExpert/Magento2-language-es_ar) 🇦🇷 - Spanish (Argentina) Language Package. 176 | - [es_ES](https://github.com/eusonlito/magento2-language-es_es) :es: - Spanish Language Package. 177 | - [pt_BR](https://github.com/rafaelstz/traducao_magento2_pt_br) 🇧🇷 - Portuguese Brazil Language Package. 178 | - [it_IT](https://github.com/mageplaza/magento-2-italian-language-pack) :it: - Italian Language. 179 | - [nl_NL](https://github.com/magento-l10n/language-nl_NL) 🇳🇱 - Dutch Language Package. 180 | - [pl_PL](https://github.com/SnowdogApps/magento2-pl_pl) 🇵🇱 - Polish Language Package. 181 | - [tr_TR](https://github.com/hidonet/magento2-language-tr_tr) :tr: - Turkish Language Package. 182 | - [ro_RO](https://github.com/EaDesgin/magento2-romanian-language-pack) 🇷🇴 - Romanian Language Package. 183 | - [fi_FL](https://github.com/mageplaza/magento-2-finnish-language-pack) 🇫🇮 - Finnish Language Package. 184 | - [ko_KR](https://github.com/mageplaza/magento-2-korean-language-pack) 🇰🇷 - Korean Language Package. 185 | - [sk_SK](https://github.com/mageplaza/magento-2-slovak-language-pack) 🇸🇰 - Slovakian Language Package. 186 | - [sl_SI](https://github.com/symfony-si/magento2-sl-si) 🇸🇮 - Slovenian Language Package. 187 | - [en_GB](https://github.com/cubewebsites/magento2-language-en-gb) :gb: - British Language Package. 188 | - [hr_HR](https://marketplace.magento.com/inchoo-language-hr-hr.html) :croatia: - Croatian Language Package. 189 | 190 | ### Search 191 | 192 | - [Algolia Search Integration](https://github.com/algolia/algoliasearch-magento-2) - Algolia Search(SaaS) Integration. 193 | - [Elastic Suite Integration](https://github.com/Smile-SA/elasticsuite/) - Elastic Suite Integration. 194 | - [FastSimpleImport2](https://github.com/firegento/FireGento_FastSimpleImport2) - Wrapper for Magento 2 ImportExport functionality, which imports products and customers from arrays. 195 | - [Disable Search Engine](https://github.com/zepgram/module-disable-search-engine) - Disable Elasticsearch and fulltext indexing for category search. 196 | 197 | ### CMS 198 | 199 | - [Mageplaza Blog Extension](https://github.com/mageplaza/magento-2-blog-extension) - Simple, but well working Blog 200 | Extension. 201 | - [Magento 2 Blog Extension by Magefan](https://github.com/magefan/module-blog) - Free Blog module for Magento 2 with 202 | unlimited blog posts and categories, SEO friendly, lazy load and AMP support. 203 | - [Opengento GDPR](https://github.com/opengento/magento2-gdpr) - Magento 2 GDPR module is a must have extension for the 204 | largest e-commerce CMS used in the world. The module helps to be GDPR compliant. 205 | 206 | ### Marketing 207 | 208 | - [MagePlaza Seo](https://github.com/mageplaza/magento-2-seo-extension) - Well documented multi purpose SEO Extension. 209 | - [Magento 2 PDF](https://github.com/staempfli/magento2-module-pdf) - PDF Generator based 210 | on [wkhtmltopdf](http://wkhtmltopdf.org/). 211 | - [Google Tag Manager](https://github.com/magepal/magento2-google-tag-manager) - Google Tag Manager (GTM) with Data 212 | Layer for Magento2. 213 | 214 | ### Adminhtml / Backend 215 | 216 | - [Customer Force Login](https://github.com/bitExpert/magento2-force-login) - Forces customers to log in before 217 | accessing certain pages. 218 | - [Checkout Tester](https://github.com/yireo/Yireo_CheckoutTester2) - Extension to quickly test Checkout changes. 219 | - [Preview Checkout Success Page](https://github.com/magepal/magento2-preview-checkout-success-page) - quickly and 220 | easily preview and test your order confirmation page, without the need to placing a new order each time. 221 | - [FireGento Fast Simple Import](https://github.com/firegento/FireGento_FastSimpleImport2) - Wrapper for Magento 2 222 | ImportExport functionality, which imports products and customers from arrays 223 | - [Magento 2 Import Framework](https://github.com/techdivision/import) - A library supporting generic Magento 2 import 224 | functionality 225 | - [Menu Editor](https://github.com/SnowdogApps/magento2-menu) - Provides powerful menu editor to replace category based 226 | menus in Magento 2. 227 | - [PageNotFound](https://github.com/experius/Magento-2-Module-PageNotFound) - Saves upcoming 404 in your Database with 228 | the possibility to created a redirect. 229 | - [Sentry.io](https://github.com/justbetter/magento2-sentry) - Application Monitoring and Error Tracking Software for 230 | Magento 2 231 | - [Custom SMTP](https://github.com/magepal/magento2-gmail-smtp-app) - Configure Magento 2 to send all transactional 232 | email using Google App, Gmail, Amazon Simple Email Service (SES), Microsoft Office365 and other SMTP server. 233 | - [Reset Customer Password](https://github.com/Vinai/module-customer-password-command) - Set a customer password with 234 | bin/magento by [Vinai Kopp](https://github.com/Vinai/). 235 | - [Guest to Customer](https://github.com/magepal/magento2-guest-to-customer) - Quickly and easily convert existing guest 236 | checkout customers to registered customers. 237 | - [Reset UI Bookmarks](https://github.com/magenizr/Magenizr_ResetUiBookmarks) - Reset UI Bookmarks allows admin users to 238 | reset their own UI bookmarks such as state of filters, column positions and applied sorting ( e.g Sales > Orders ). 239 | - [Clean Admin Menu](https://github.com/redchamps/clean-admin-menu) - Merges 3rd party extensions to a single menu. 240 | - [shkoliar/magento-grid-colors](https://github.com/shkoliar/magento-grid-colors) - Magento 2 Grid Colors module for 241 | colorizing admin grids. Supports saving of states with the help of grid's bookmarks. 242 | by [Dmitry Shkoliar](https://shkoliar.com/) 243 | - [extdn/extension-dashboard-m2](https://github.com/extdn/extension-dashboard-m2) - A Magento 2 dashboard to display 244 | installed extensions. by [Magento Extension Developers Network](https://extdn.org/) 245 | - [hivecommerce/magento2-content-fuzzyfyr](https://github.com/hivecommerce/magento2-content-fuzzyfyr) - The Content 246 | Fuzzyfyr module for Magento2 replaces real content with dummy content. This is for development purposes, e.g. save 247 | time to prepare test data and matching GDPR restrictions. 248 | - [Disable Stock Reservation](https://github.com/AmpersandHQ/magento2-disable-stock-reservation) - This module disables the inventory reservation logic introduced as part of MSI in Magento 2.3.3. 249 | - [Product Links Navigator](https://github.com/elninotech/ElNino_ProductLinksNavigator) - Enhances admin product-to-product navigation. Adds direct frontend/backend links to products in grids and modals, and "Parent Products" tab. 250 | 251 | ### Security 252 | 253 | - [Magento Quality Patches](https://experienceleague.adobe.com/tools/commerce-quality-patches/index.html) - Every Magento / Adobe Commerce patch you need all in one place 254 | 255 | ### Payment Service Provider 256 | 257 | - [PAYONE](https://github.com/PAYONE-GmbH/magento-2) - PAYONE Payment Integration. 258 | - [Stripe](https://github.com/pmclain/module-stripe) - Stripe Payments for Magento 2. 259 | - [Braintree Payments](https://marketplace.magento.com/paypal-module-braintree.html) - Official Braintree Integration 260 | for Magento2. 261 | 262 | ### Infrastructure 263 | 264 | - [Fastly Extension](https://github.com/fastly/fastly-magento2) - Magento 2 fastly integration. 265 | - [Ethan3600/magento2-CronjobManager](https://github.com/Ethan3600/magento2-CronjobManager) - Cron Job Manager for 266 | Magento 2. 267 | - [Magento 2 Ngrok](https://github.com/shkoliar/magento-ngrok) - Magento 2 Ngrok Integration 268 | - [Clean Media](https://github.com/sivaschenko/magento2-clean-media) - A Module that provides information about Media 269 | Files and potential removal options. 270 | - [Interceptor Optimization](https://github.com/creatuity/magento2-interceptors) - New interceptors approach for Magento 2 271 | 272 | --- 273 | 274 | ### Proprietary Extensions 275 | 276 | - [Commercebug Debugging Extension](http://store.pulsestorm.net/products/commerce-bug-3) - A Magento 2 Debug Extension. 277 | - [Magicento](http://magicento.com/) - [PHPStorm](https://www.jetbrains.com/phpstorm/) Plugin to add Magento 2 related 278 | functionality. 279 | 280 | --- 281 | 282 | #### Progressive Web Application 283 | 284 | - [ScandiPWA Theme](https://github.com/scandipwa/base-theme) - Magento 2.3+ PWA theme based on React and Redux 285 | 286 | --- 287 | 288 | ## Blogs 289 | 290 | ### Personal Blogs 291 | 292 | - [Alan Storm](http://alanstorm.com/category/magento-2/) 293 | - [Fabian Schmengler](https://www.schmengler-se.de/) 294 | - [Jigar Karangiya](https://jigarkarangiya.com/) 295 | 296 | ### Company Blogs 297 | 298 | - [Atwix](https://www.atwix.com/blog/) 299 | - [Classy Llama](https://www.classyllama.com/blog) 300 | - [dev98](https://dev98.de/) 301 | - [FireBear Studio](https://firebearstudio.com/blog) 302 | - [Fooman](http://store.fooman.co.nz/blog) 303 | - [inchoo](http://inchoo.net/category/magento-2/) 304 | - [M.academy](https://m.academy/blog/) 305 | - [integer_net blog](https://www.integer-net.com/blog/) 306 | - [MageComp](https://magecomp.com/blog/category/magento-2/) 307 | - [bitExpert AG](https://blog.bitexpert.de/blog/tags/magento) 308 | - [OneStepCheckout](https://blog.onestepcheckout.com/) 309 | 310 | ### Other 311 | 312 | - MageTalk: A Magento Community Podcast](http://magetalk.com/) - Community Podcast by [Kalen Jordan and [Phillip 313 | Jackson. 314 | 315 | ## Learning 316 | 317 | - [M.academy](https://m.academy/) - The simplest way to learn Magento 2 & Adobe Commerce, with video lessons & courses 318 | - [MageTitans Italia 2016](https://www.youtube.com/playlist?list=PLwB4Uz_0hoVP3Fm_c4HfNPK5JdRD6DIDl) 319 | - [MageTitans MCR 2016](https://www.youtube.com/playlist?list=PLwB4Uz_0hoVMOnBRS49ICbNWOU5jhNNWC) 320 | - [MageTitans USA/Texas 2016](https://www.youtube.com/playlist?list=PLwB4Uz_0hoVOLU7LPRNL4lAmJeAv7HQ-b) 321 | - [Max Bucknell Magento 2 Javascript](https://www.youtube.com/watch?v=tHxebA-jOSo) 322 | - [Max Pronko DevChannel](https://www.youtube.com/channel/UCxbWGz6h6KNQsi2ughRUV2Q) 323 | - [The Magento 2 Beginner Tutorial Class](https://www.youtube.com/playlist?list=PLtaXuX0nEZk9eL59JGE3ny-_GAU-z5X5D&utm_content=buffer797bf&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer) - Free YouTube Series for learning Magento 2. 324 | - [Vinai Kopp Mage2Katas](https://www.youtube.com/channel/UCRFDWo7jTlrpEsJxzc7WyPw) 325 | - [Mage2.tv](https://www.mage2.tv) - Magento 2 Developer Screencasts by Vinai Kopp 326 | - [magento-notes/magento2-exam-notes](https://github.com/magento-notes/magento2-exam-notes) - Preparation notes for 327 | Magento 2 Certified Professional Developer exam 328 | - [magento-notes/magento2-cloud-developer-notes](https://github.com/magento-notes/magento2-cloud-developer-notes) - 329 | Preparation notes for Magento 2 Certified Professional Cloud Developer exam 330 | - [roma-glushko/magento2-dev-plus-exam](https://github.com/roma-glushko/magento2-dev-plus-exam) - Preparation notes for 331 | Magento 2 Certified Professional Developer Plus exam 332 | - [fisheye-academy/m2cpfed-training](https://github.com/fisheye-academy/m2cpfed-training) - Resources for the Magento 2 333 | Certified Professional Front End Developer exam 334 | - [Yireo Training](https://www.yireo.com/training) - Various Magento 2 courses for backend and frontend development 335 | 336 | --- 337 | 338 | ## Platforms 339 | 340 | - [StackExchange](http://magento.stackexchange.com/) - Q/A Forum. 341 | 342 | --- 343 | 344 | ## Official Resources 345 | 346 | - [Magento Official Website](https://www.magento.com) - Magento's official Website. 347 | - [Magento Developer Documentation](http://devdocs.magento.com/) - Official Developer Documentation. 348 | - [Magento Forum](https://community.magento.com/) - Community Forum by Magento. 349 | - [Magento Github Repository](https://github.com/magento/magento2) - Github Repository. 350 | - [Magento Developer Blog](https://community.magento.com/t5/Magento-DevBlog/bg-p/devblog?nobounce=) - Developer Blog by 351 | Magento. 352 | - [Magento 2 data migration tool](https://github.com/magento/data-migration-tool) - Official Magento 1 to Magento 2 migration tool. 353 | - [Magento Coding Standards](https://github.com/magento/magento-coding-standard) - Official Magento2 Advanced Set of 354 | Rules for PHP_CodeSniffer. 355 | - [Magento 2 Architecture](https://github.com/magento/architecture) - A place where Magento architectural discussions 356 | happen. 357 | 358 | - Magento Masters 2017 359 | - [Peter Jaap Blaakmeer](https://twitter.com/PeterJaap) - CTO at [elgentos](https://www.elgentos.nl/) 360 | - Carmen Bremen - Freelancer at [neoshops](http://neoshops.de/) 361 | - Tony Brown - Technical Director at [space48](http://www.space48.com/) 362 | - Hirokazu Nishi 363 | - Brent Peterson 364 | - Sonja Riesterer 365 | - Kristof Ringleff 366 | - Alessandro Ronchi 367 | - Matthias Zeis 368 | - Kuba Zwolinski 369 | - Gabriel Guarino 370 | - Phillip Jackson 371 | - Sander Mangel 372 | - Raphael Petrini 373 | - Fabian Schmengler 374 | - Marius Strajeru 375 | - Anna Völkl 376 | - Ivan Chepurnyi 377 | - Vinai Kopp 378 | - Jisse Reitsma 379 | 380 | --- 381 | 382 | ## List of trustworthy Extension Developers 383 | 384 | - [Aheadworks](https://www.aheadworks.com/) 385 | - [Altima](https://shop.altima.net.au/) 386 | - [Blue Jalappeno](http://bluejalappeno.com/) 387 | - [CustomGento](https://www.customgento.com/extensions/) 388 | - [Dotmailer](https://www.dotmailer.com/) 389 | - [Integer-net](https://www.integer-net.com/solr-magento/) 390 | - [Genmato](https://genmato.com/) 391 | - [Fooman](http://store.fooman.co.nz/) 392 | - [Ebizmarts](https://ebizmarts.com/) 393 | - [Magemail](https://magemail.co/) 394 | - [MagePal](https://packagist.org/packages/magepal/) 395 | - [Modulwerft](https://www.modulwerft.com/) 396 | - [Paradox Labs](https://www.paradoxlabs.com/) 397 | - [The Extension Lab](https://github.com/theextensionlab/) 398 | - [Sweet Tooth](https://www.sweettoothrewards.com/) 399 | - [Rocket Web](http://rocketweb.com/) 400 | - [ProxiBlue](https://www.proxiblue.com.au/) 401 | - [Unirgy](http://www.unirgy.com/) 402 | - [WebShopApps](http://webshopapps.com/eu/) 403 | - [Yireo](https://www.yireo.com/) 404 | - [FireBear Studio](https://firebearstudio.com/) 405 | 406 | > **Magento Extension Developers Network (ExtDN)** 407 | > The Magento Extension Developers Network (ExtDN) is a vetted network of extension developers whose core business is to 408 | > develop and sell quality Magento extensions. I founded ExtDN to bring accountability and trust to the Magento extension 409 | > market. ExtDN members agree to hold themselves accountable to high standards of coding, copyright and business conduct. 410 | 411 | Explanation 412 | by [Fooman](http://store.fooman.co.nz/blog/how-to-find-trustworthy-information-about-magento-extensions.html) 413 | 414 | --- 415 | 416 | ## Other Magento 2 related Awesome Lists 417 | 418 | - [Mageres](https://github.com/aleron75/mageres) - Alessandro Ronchi's List of resources for Magento 1 and Magento 2. 419 | - [Awesome PHP](https://github.com/ziadoz/awesome-php) - A curated List of Awesome PHP Resources. 420 | - [Awesome Magento](https://github.com/sunel/awesome-magento) - An Awesome Magento List with mixed M1 and M2 Content 421 | by [sunel](https://github.com/sunel). 422 | 423 | --- 424 | 425 | ## License 426 | 427 | [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/) 428 | 429 | To the extent possible under law, David Lambauer has waived all copyright and related or neighboring rights to this 430 | work. 431 | 432 | --- 433 | 434 | Thanks [Anna Völkl](https://github.com/avoelkl) & [Sander Mangel](https://github.com/sandermangel) for collecting all 435 | the language packs! 436 | 437 | --- 438 | 439 | Thanks [MageTitans](http://www.magetitans.co.uk/) for sharing the Talks on YouTube. 440 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^8.1" 4 | }, 5 | "autoload": { 6 | "psr-4": { 7 | "AwesomeList\\": "lib/" 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "bbe2f8b08ba456d7ae784e290e862e4a", 8 | "packages": [], 9 | "packages-dev": [], 10 | "aliases": [], 11 | "minimum-stability": "stable", 12 | "stability-flags": [], 13 | "prefer-stable": false, 14 | "prefer-lowest": false, 15 | "platform": { 16 | "php": "^8.1" 17 | }, 18 | "platform-dev": [], 19 | "plugin-api-version": "2.3.0" 20 | } 21 | -------------------------------------------------------------------------------- /content/frontend.csv: -------------------------------------------------------------------------------- 1 | "Magento Luma","https://developer.adobe.com/commerce/frontend-core/guide/","This is actually a default demo theme of Magento 2 itself, which again extends from `Magento/blank` which extends from the core. But more often, the name Luma refers to the entire stack: XML layout generates a tree-structure of blocks and containers, which eventually render via PHTML templates. The server-side rendered HTML is enriched with CSS (compiled from LESS source files) and JavaScript (RequireJS, KnockoutJS, jQuery)." 2 | "Adobe PWA Studio","https://developer.adobe.com/commerce/pwa-studio/","A new headless frontend, created by Adobe/Magento, based on ReactJS. It makes GraphQL calls to the Magento GraphQL API to retrieve data. The frontend offers Venia (a demo theme and UI component library), Peregrine (React hooks), Buildpack (Webpack configuration) and UPWARD (a middleware for SSR and image optimization)." 3 | "Hyvä","https://hyva.io/","An alternative for Luma, which replaces the LESS/CSS with TailwindCSS and the JavaScript with AlpineJS. Currently, it is only available via a commercial license. But for that price, the team works hard to create compatibility modules for 3rd party modules, give support and make the entire solution more and more versatile." 4 | "Vue Storefront","","" 5 | "DEITY","","" 6 | "ScandiPWA","","" -------------------------------------------------------------------------------- /content/main.md: -------------------------------------------------------------------------------- 1 | # Awesome Magento 2 [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) 2 | 3 |
4 | 5 | Awesome 6 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 | 15 | 16 | > A curated list of awesome Magento 2 Extensions & Resources. 17 | 18 | - [What is an awesome list?](https://github.com/sindresorhus/awesome/blob/master/awesome.md) 19 | - [Contribution guide](contributing.md) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/DavidLambauer/awesome-magento2/issues) 20 | --- 21 | 22 | ## Table of Contents 23 | 24 | - [Tools](#tools) 25 | - [Open Source Extensions](#open-source-extensions) 26 | - [Blogs](#blogs) 27 | - [Education](#learning) 28 | - [Platforms](#platforms) 29 | - [Official Resources](#official-resources) 30 | --- 31 | 32 | ## Frontend 33 | 34 | {% file=frontend.csv parser="AwesomeList\Parser\GenericCsvList" %} 35 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | * Use the following format: `[Package Name](Link URL) - Description` 4 | * The link should be the name of the package or project 5 | * Keep descriptions concise, clear and simple 6 | * New categories, or improvements to the existing ones are also welcome 7 | 8 | ## General Quality Standard 9 | 10 | To get on the list, PR's should follow some quality standards. They should: 11 | 12 | * Generally useful to the community. 13 | * Actively maintained (even if that just means acknowledging open issues when they arise). 14 | * Stable. 15 | * Documented. 16 | 17 | ### Extension Quality Standard 18 | 19 | To add an awesome Magento related extension, there are some additional Quality Gates to pass: 20 | 21 | * Make sure your Extension's README explains the following parts: 22 | * General Purpose of the Extension. 23 | * How to Install. 24 | * Supported Magento Versions. 25 | * Requirements (e.g. PHP Version). 26 | * At least one stable release. 27 | 28 | If you need help to pass the quality gates, add your questions to the PR too. 29 | 30 | ## Blog Quality Standard 31 | 32 | Make sure you pass the following Quality Gates: 33 | 34 | * The Blog itself should contain posts from at least 3 Months ago. 35 | * The Blog should be focused on Magento. 36 | * There should be at least one article a month. 37 | 38 | Thanks to all contributors, you're awesome and wouldn't be possible without you! 39 | -------------------------------------------------------------------------------- /generate.php: -------------------------------------------------------------------------------- 1 | #!/usr/bin/php 2 | generate(__DIR__.'/content'); 11 | 12 | file_put_contents(__DIR__ . '/README.md.new', $contents); -------------------------------------------------------------------------------- /lib/MarkdownGenerator.php: -------------------------------------------------------------------------------- 1 | $match) { 20 | $tagData = $this->parseTag($match); 21 | if (false === $this->validateTagData($tagData, $contentDirectory)) { 22 | continue; 23 | } 24 | 25 | $file = $tagData['file']; 26 | 27 | /** @var ParserInterface $parser */ 28 | $parser = (new ParserFactory)->create($tagData['parser']); 29 | $parser->setFilename($contentDirectory . '/' . $file); 30 | $markdown = $parser->parseToMarkdown(); 31 | $mainContents = str_replace($matches[0][$matchIndex], $markdown, $mainContents); 32 | } 33 | } 34 | 35 | return $mainContents; 36 | } 37 | 38 | /** 39 | * @param string $tag 40 | * @return string[] 41 | */ 42 | private function parseTag(string $tag): array 43 | { 44 | $tagData = []; 45 | $tag = trim($tag); 46 | $tagParts = explode(' ', $tag); 47 | foreach ($tagParts as $tagPart) { 48 | $tagPart = explode('=', $tagPart); 49 | $tagPartName = trim($tagPart[0]); 50 | $tagPartValue = str_replace(['"', ' '], '', $tagPart[1]); 51 | $tagData[$tagPartName] = $tagPartValue; 52 | } 53 | 54 | return $tagData; 55 | } 56 | 57 | private function validateTagData(array $tagData, string $contentDirectory): bool 58 | { 59 | if (!isset($tagData['file'])) { 60 | throw new RuntimeException('No file set in tag data: ' . var_export($tagData, true)); 61 | } 62 | 63 | if (!file_exists($contentDirectory . '/' . $tagData['file'])) { 64 | throw new RuntimeException('File "' . $tagData['file'] . '" could not be found in "' . $contentDirectory . '"'); 65 | } 66 | 67 | return true; 68 | } 69 | } -------------------------------------------------------------------------------- /lib/Parser/GenericCsvList.php: -------------------------------------------------------------------------------- 1 | filename = $filename; 18 | } 19 | 20 | /** 21 | * @return string 22 | */ 23 | public function parseToMarkdown(): string 24 | { 25 | $file = fopen($this->filename, 'r'); 26 | $markdownLines = []; 27 | while (($line = fgetcsv($file)) !== FALSE) { 28 | $name = $line[0]; 29 | $url = $line[1]; 30 | $description = $line[2]; 31 | 32 | if (empty($name)) { 33 | throw new RuntimeException('Line should have a name'); 34 | } 35 | 36 | 37 | if ($url) { 38 | $name = "[$name]($url)"; 39 | } 40 | 41 | $markdownLine = "- $name"; 42 | 43 | if ($description) { 44 | $markdownLine .= " - $description"; 45 | } 46 | 47 | $markdownLines[] = $markdownLine; 48 | } 49 | 50 | fclose($file); 51 | return implode("\n", $markdownLines); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /lib/Parser/ParserInterface.php: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------