With version 2.3.0, Magento includes about 200 internal PHP packages (in the “magento” namespace) plus more than a hundred external PHP packages. These numbers have grown a lot in the last few releases, especially with several packages for the GraphQL integration and for the Multi Source Inventory. Since the average Magento 2 project doesn’t need all those modules, wouldn’t it be great to get rid of some unused modules?
I have written about how you can remove unused core modules before, including suggestions on what modules can be removed in Magento 2.2. At the recent Magento Hackathon in Bremen, Germany, one of the groups chose the topic “Make Magento small again” with the goal to reduce the number of dependencies between modules in order to be able to remove as many modules as possible.
Benefits of removing core modules
- Less code means less maintenance work
- Removed code is debugged code
- Fewer security risks
- Magento becomes faster with certain modules disabled (especially the Magento_Swatches module, see our blog post about performance improvements)
Risks of removing core modules
- Dependencies may not be declared correctly, so you might actually remove code which is needed by another module.
- You might need some of the removed functionality as it’s not always clear which module contains which functionalities.
The Approach
It’s preferred to remove modules via composer. Add a block as follows to your composer.json file:
1 2 3 4 5 6 |
"replace": { "magento/module-dhl": "*", "magento/module-fedex": "*", "magento/module-marketplace": "*", "magento/module-multishipping": "*" }, |
After that, call composer update. The modules will be removed from the code base.
Ideally, you remove modules before installing Magento in your project. Otherwise, the installation will create some module specific tables in your database which will be obsolete after removing the corresponding modules.
Selection of modules
It’s up to you which modules to remove. Here, we present a suggestion, but using it is on your own risk. Of course, you can re-add the modules you need in your project. For example:
- If you use Swatches, enable magento/module-swatches and magento/module-swatches-layered-navigation.
- If you’d like to use the Multi Source Inventory (MSI), don’t remove the modules starting with magento/module-inventory.
- If you use ImportExport for your interfaces, don’t remove magento/module-*-import-export.
Suggestion for Magento 2.3.0:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
"replace": { "magento/module-dhl": "*", "magento/module-fedex": "*", "magento/module-marketplace": "*", "magento/module-multishipping": "*", "magento/module-captcha": "*", "magento/module-persistent": "*", "magento/module-catalog-rule-configurable": "*", "magento/module-authorizenet": "*", "magento/module-google-adwords": "*", "magento/module-sample-data": "*", "magento/module-send-friend": "*", "magento/module-swagger": "*", "magento/module-swagger-webapi": "*", "magento/module-swagger-webapi-async": "*", "magento/module-swatches": "*", "magento/module-swatches-layered-navigation": "*", "magento/module-google-optimizer": "*", "magento/module-ups": "*", "magento/module-usps": "*", "magento/module-braintree": "*", "magento/module-signifyd": "*", "magento/module-release-notification": "*", "magento/module-new-relic-reporting": "*", "magento/module-version": "*", "magento/module-analytics": "*", "magento/module-catalog-analytics": "*", "magento/module-customer-analytics": "*", "magento/module-quote-analytics": "*", "magento/module-review-analytics": "*", "magento/module-sales-analytics": "*", "magento/module-wishlist-analytics": "*", "magento/module-bundle-graph-ql": "*", "magento/module-catalog-graph-ql": "*", "magento/module-catalog-inventory-graph-ql": "*", "magento/module-catalog-url-rewrite-graph-ql": "*", "magento/module-cms-graph-ql": "*", "magento/module-cms-url-rewrite-graph-ql": "*", "magento/module-inventory-graph-ql": "*", "magento/module-configurable-product-graph-ql": "*", "magento/module-customer-graph-ql": "*", "magento/module-downloadable-graph-ql": "*", "magento/module-eav-graph-ql": "*", "magento/module-graph-ql": "*", "magento/module-grouped-product-graph-ql": "*", "magento/module-quote-graph-ql": "*", "magento/module-store-graph-ql": "*", "magento/module-swatches-graph-ql": "*", "magento/module-tax-graph-ql": "*", "magento/module-url-rewrite-graph-ql": "*", "magento/module-weee-graph-ql": "*", "magento/module-advanced-pricing-import-export": "*", "magento/module-bundle-import-export": "*", "magento/module-configurable-import-export": "*", "magento/module-customer-import-export": "*", "magento/module-downloadable-import-export": "*", "magento/module-grouped-import-export": "*", "magento/module-tax-import-export": "*", "magento/module-inventory": "*", "magento/module-inventory-admin-ui": "*", "magento/module-inventory-api": "*", "magento/module-inventory-bundle-product": "*", "magento/module-inventory-bundle-product-admin-ui": "*", "magento/module-inventory-cache": "*", "magento/module-inventory-catalog": "*", "magento/module-inventory-catalog-admin-ui": "*", "magento/module-inventory-catalog-api": "*", "magento/module-inventory-catalog-search": "*", "magento/module-inventory-configurable-product": "*", "magento/module-inventory-configurable-product-admin-ui": "*", "magento/module-inventory-configurable-product-indexer": "*", "magento/module-inventory-configuration": "*", "magento/module-inventory-configuration-api": "*", "magento/module-inventory-elasticsearch": "*", "magento/module-inventory-grouped-product": "*", "magento/module-inventory-grouped-product-admin-ui": "*", "magento/module-inventory-grouped-product-indexer": "*", "magento/module-inventory-import-export": "*", "magento/module-inventory-indexer": "*", "magento/module-inventory-low-quantity-notification": "*", "magento/module-inventory-low-quantity-notification-admin-ui": "*", "magento/module-inventory-low-quantity-notification-api": "*", "magento/module-inventory-multi-dimensional-indexer-api": "*", "magento/module-inventory-product-alert": "*", "magento/module-inventory-reservations": "*", "magento/module-inventory-reservations-api": "*", "magento/module-inventory-sales": "*", "magento/module-inventory-sales-admin-ui": "*", "magento/module-inventory-sales-api": "*", "magento/module-inventory-sales-frontend-ui": "*", "magento/module-inventory-shipping": "*", "magento/module-inventory-shipping-admin-ui": "*", "magento/module-inventory-source-deduction-api": "*", "magento/module-inventory-source-selection": "*", "magento/module-inventory-source-selection-api": "*", "magento/module-inventory-distance-based-source-selection": "*", "temando/module-shipping-m2": "*", "dotmailer/dotmailer-magento2-extension": "*", "klarna/module-kp": "*", "klarna/module-ordermanagement": "*", "klarna/module-core": "*", "amzn/amazon-pay-sdk-php": "*", "amzn/amazon-pay-and-login-with-amazon-core-module": "*", "amzn/login-with-amazon-module": "*", "amzn/amazon-pay-module": "*", "vertex/module-tax": "*", "vertex/sdk": "*" }, |
Please look through the list in detail before using it.
There are no declared dependencies from any leftover core modules to the modules which are suggested to remove here, but there are dependencies between these removed modules. So if you re-add selected modules, you might need to re-add their dependencies too. Have a look at the module’s composer.json if you are unsure about their dependencies.
Work in Progress
If you look at the list above, you can see that two modules are not included:
- magento/module-import-export
- magento/module-catalog-import-export
That is because there are dependencies declared from the Magento_CatalogUrlRewrite module to those two – dependencies which shouldn’t be there in my opinion, because the Magento_CatalogUrlRewrite module will work flawlessly even without the ImportExport modules. It just adds two Observers which will never be instantiated if the ImportExport modules are not available. I have created a Pull Request to Magento about this issue – let’s see what the core engineers’ opinion is on this case.
Conclusion
If you don’t need them, you can remove up to half of the Magento 2 core modules and most external Magento 2 modules. But please take care before and during the removal – some of the code might actually be used, so test it thoroughly. Using the above suggestions is at your own risk.
Update May 2019
We removed some modules which have to do with message queues from the list as they are reported to cause problems with the REST API. Thanks Oleksandr Lyzun for reporting!

Author: Andreas von Studnitz
Andreas von Studnitz is a Magento developer and one of the Managing Directors at integer_net. His main areas of interest are backend development, Magento consulting and giving developer trainings. He is a Magento 2 Certified Professional Developer Plus and holds several other Magento certifications for both Magento 1 and Magento 2. Andreas was selected as a Magento Master in 2019 and 2020.
For 2.3.1, add:
magento/module-wishlist-graph-ql
magento/module-sales-graph-ql
magento/module-send-friend-graph-ql
magento/module-directory-graph-ql
@Erfan
Replacing those modules in 2.3.1 only caused error messages for me.
Hello,
I have added the “replace” block to the composer.json file located in the main magento directory.
I tried to do a “bin/magento setup:upgrade” from SSH but nothing seems to have been uninstalled. Could you help me? Maybe it’s not the right command.
Thanks
Try to call
composer update
after removing the lines from composer.json.Adding some logic to the line items would be great – even better
For instance we aim to use MSI … but dont know all those subsub modules and what they do starting with inventory*
After deletion via json file I ran composer update then magento setup upgrade.
1 exception(s):
Exception #0 (Magento\Framework\Exception\FileSystemException): The contents from the “vendor/klarna/module-core/etc/module.xml” file can’t be read. Warning!file_get_contents(/vendor/klarna/module-core/etc/module.xml): failed to open stream: No such file or directory
After I get this warning for almost every module: what do I need to do? Did I forget a command?
Please call
composer update
after removing the modules from composer.json. Also, remove the entries fromapp/etc/config.php
.Ideally, you remove the module before they are being installed for the first time.
Some additional thoughts on this approach after having used it for a while: https://twitter.com/erfanimani/status/1153940381773393922
Hi Andreas,
thank you for this great approach. We are using Magento 2.3.2 – could you confirm that this approach is working there, too?
I found somebody talking about issues with using this and Magento 2.3.2
In general, this approach will work on Magento 2.3.2 too. There might be additional modules which should be removed because they depend on other removed modules though. And again: everything is on your own risk and should be tested thorougly as not all dependencies are declared correctly.
Hallo Andreas,
Die Module werden trotzdem noch unter “bin/magento module:status” aufgelistet.
Kann ich das ignorieren?
MfG Mike
Once the modules are installed in the Magento system, it’s the best approach to uninstall the module at first with:
php bin/magento module:uninstall
After that it can be removed/replaced by composer
When upgrading from 2.3.1 to 2.3.2 we had to add the following modules to the replace section to get setup:di:compile to finish:
magento/module-graph-ql-cache
magento/module-directory-graph-ql
magento/module-inventory-export-stock
magento/module-inventory-reservation-cli
Would be amazing to see a break down of 2.3 minor releases similar to your 2.2 blog post
Cant get this to work on 2.3.3 unfortunately, not even when adding the extra modules as mentioned by Dorieke above. I would indeed like to see a break down for the Magento 2.3.x branche as mentioned by Dominic.
For Magento 2.3.3 I had to enable again by removing from the above list:
"magento/module-captcha"
and I had to additionally disable:
"magento/module-graph-ql-cache": "*",
"magento/module-authorizenet-graph-ql": "*",
"magento/module-braintree-graph-ql": "*",
"magento/module-directory-graph-ql": "*",
"magento/module-paypal-graph-ql": "*",
"magento/module-related-product-graph-ql": "*",
"magento/module-send-friend-graph-ql": "*",
"magento/module-wishlist-graph-ql": "*",
"magento/module-inventory-export-stock": "*",
"magento/module-inventory-reservation-cli": "*",
"magento/google-shopping-ads": "*",
"magento/module-inventory-advanced-checkout": "*",
"magento/module-inventory-requisition-list": "*",
"magento/module-admin-analytics": "*"
Thanks for this suggestion.
I just ran some benchmarks locally and found that disabling the unnecessary extensions made pages load ~10% faster (testing with full_page and block_html caches disabled). Details here: https://gist.github.com/erikhansen/822e211c8eaf3123b160066f4c0acc55 I’m going to run with this approach and report back on issues I find.
Looks like https://github.com/yireo/magento2-replace-all is a potentially simpler way to apply these “replace” commands.
“I have created a Pull Request to Magento about this issue – let’s see what the core engineers’ opinion is on this case.”
they dropped it because you didn’t care.
I’d recommend *not* disabling the magento/module-persistent module, at least until this issue is verified to be fixed: https://github.com/magento/magento2/issues/21614 I ran into that issue after removing the magento/module-persistent module.
Magento 2.3.4
“magento/module-adobe-ims”: “*”,
“magento/module-adobe-ims-api”: “*”,
“magento/module-adobe-stock-admin-ui”: “*”,
“magento/module-adobe-stock-asset”: “*”,
“magento/module-adobe-stock-asset-api”: “*”,
“magento/module-adobe-stock-client”: “*”,
“magento/module-adobe-stock-client-api”: “*”,
“magento/module-adobe-stock-image”: “*”,
“magento/module-adobe-stock-image-admin-ui”: “*”,
“magento/module-adobe-stock-image-api”: “*”
Thank you very much. This was incredibly helpful.
This is CRAZY! We need to Fork/Branch and offer a Magento Lite, all the core functions without the bloatware. I could see MOST ISPs wanting to take part or even sponsor this! I want Magento, not Adobe Stock, not Yotpo, not Someone else’s BS… I want core eCommerce and the ability to install the Extensions, Theme, Modules that I want.
What would it take to Fork and do this? (Ok, I have to admit, I’m not a hardcore dev and know just enough to get myself in a jam, but this bloatware is going to get out of hand quickly!)
For anyone looking for a list of valid extensions for Magento 2.3.5, Jisse Reitsma looks like he’s continuing to maintain the repositories listed here (switch to the 2.3.5 tags of each repo): https://github.com/yireo/magento2-replace-all
I am using Magento 2.3.5-p1, so how do I install this module (specifically 2.3.5 branch) using composer? He updated 2.3.5 10 days ago, so I want the latest one, whereas others were updated 20-month ago.
okay got it, how dumb of me.
composer require yireo/magento2-replace-all:2.3.1
2.3.5 I had to re-enable module-captcha due to a dependency introduced on module-wishlist
Also added the following:
“dotmailer/dotmailer-magento2-extension-chat”: “*”,
“magento/module-authorizenet-graph-ql”: “*”,
“magento/module-braintree-graph-ql”: “*”,
“magento/module-checkout-agreements-graph-ql”: “*”,
“magento/module-related-product-graph-ql”: “*”,
“magento/module-paypal-graph-ql”: “*”,
“magento/module-directory-graph-ql”: “*”,
“magento/module-theme-graph-ql”: “*”,
“magento/module-sales-graph-ql”: “*”,
“magento/module-send-friend-graph-ql”: “*”,
“magento/module-wishlist-graph-ql”: “*”
For 2.3.5 I had to add the following,
“dotmailer/dotmailer-magento2-extension-chat”: “*”,
“magento/module-authorizenet-graph-ql”: “*”,
“magento/module-braintree-graph-ql”: “*”,
“magento/module-checkout-agreements-graph-ql”: “*”,
“magento/module-related-product-graph-ql”: “*”,
“magento/module-paypal-graph-ql”: “*”,
“magento/module-directory-graph-ql”: “*”,
“magento/module-theme-graph-ql”: “*”,
“magento/module-sales-graph-ql”: “*”,
“magento/module-send-friend-graph-ql”: “*”,
“magento/module-wishlist-graph-ql”: “*”,
“magento/module-adobe-ims”: “*”,
“magento/module-adobe-ims-api”: “*”,
“magento/module-adobe-stock-admin-ui”: “*”,
“magento/module-adobe-stock-asset”: “*”,
“magento/module-adobe-stock-asset-api”: “*”,
“magento/module-adobe-stock-client”: “*”,
“magento/module-adobe-stock-client-api”: “*”,
“magento/module-adobe-stock-image”: “*”,
“magento/module-adobe-stock-image-admin-ui”: “*”,
“magento/module-adobe-stock-image-api”: “*”,
“magento/module-google-shopping-ads”: “*”,
“magento/module-inventory-advanced-checkout”: “*”,
“magento/module-inventory-requisition-list”: “*”,
“magento/module-inventory-reservation-cli”: “*”,
“magento/module-inventory-export-stock”: “*”,
“vertex/module-address-validation”: “*”,
“magento/module-admin-analytics”: “*”,
“magento/module-catalog-cms-graph-ql”: “*”,
“magento/module-catalog-customer-graph-ql”: “*”,
“magento/module-customer-downloadable-graph-ql”: “*”,
“magento/module-graph-ql-cache”: “*”
and also remove magento/module-captcha as wishlist has unfortunately introduced a dependency on that. I did not end to end test this yet, this is just to get DI compiled properly and the cms page loading!
pls help
[root@ns3 a.siteco.uk]# bin/magento setup:di:compile
Compilation was started.
Interceptors generation… 4/7 [================>———–] 57% 8 secs 239.0 MiB
In Generator.php line 139:
Class Magento\AdobeImsApi\Api\ConfigInterface does not exist
Class Magento\AdobeStockAdminUi\Controller\Adminhtml\System\Config\TestConnection\Interceptor generation error: The
requested class did not generate properly, because the ‘generated’ directory permission is read-only. If — after
running the ‘bin/magento setup:di:compile’ CLI command when the ‘generated’ directory permission is set to write –
— the requested class did not generate properly, then you must add the generated class object to the signature of
the related construct method, only.
setup:di:compile
[root@ns3 a.siteco.uk]#
Sorry, we can’t give free support, especially if so many details (like what you did before, which Magento version you use etc.) are missing. Our examples assume Magento 2.3.0, not 2.3.4 or 2.3.5. Things have changed in between – this is no fire&forget solution.
How do you re-install modules ?
bin/magento module:enable MODULE_NAME –clear-static-content
If you want to enable/re-install all modules then i would suggest a reinstallation
Hi, I need a list for 2.3.5-p1, please update if someone of you has.
I have removed the msi modules using replace in composer.json. How can i reinstall these modules ? Please share the steps.
Is there a Gist where we could work on this together out there?
Is there a version for Magento 2.4.1?
I suggest to use https://github.com/yireo/magento2-replace-tools from now on instead. It’s well maintained.
updated list for Magento 2.4.4, again use at your own risk
I have noticed that Magento 2.4.3 has a number of GraphQl core extensions. In which case those extensions can be disabled? Will the disabling of them have some noticeable performance gain?
Magento_BundleGraphQl
Magento_CatalogCmsGraphQl
Magento_CatalogCustomerGraphQl
Magento_CatalogGraphQl
Magento_CatalogInventoryGraphQl
Magento_CatalogRuleGraphQl
Magento_CatalogUrlRewriteGraphQl
Magento_CheckoutAgreementsGraphQl
Magento_CmsGraphQl
Magento_CmsUrlRewriteGraphQl
Magento_CompareListGraphQl
Magento_ConfigurableProductGraphQl
Magento_CustomerDownloadableGraphQl
Magento_CustomerGraphQl
Magento_DirectoryGraphQl
Magento_DownloadableGraphQl
Magento_EavGraphQl
Magento_GiftMessageGraphQl
Magento_GraphQl
Magento_GraphQlCache
Magento_GroupedProductGraphQl
Magento_InventoryGraphQl
Magento_InventoryInStorePickupGraphQl
Magento_InventoryInStorePickupQuoteGraphQl
Magento_InventoryQuoteGraphQl
Magento_LoginAsCustomerGraphQl
Magento_NewsletterGraphQl
Magento_PaypalGraphQl
Magento_QuoteGraphQl
Magento_ReCaptchaWebapiGraphQl
Magento_RelatedProductGraphQl
Magento_ReviewGraphQl
Magento_SalesGraphQl
Magento_StoreGraphQl
Magento_TaxGraphQl
Magento_ThemeGraphQl
Magento_UrlRewriteGraphQl
Magento_VaultGraphQl
Magento_WishlistGraphQlMagento_BundleGraphQl
Magento_CatalogCmsGraphQl
Magento_CatalogCustomerGraphQl
Magento_CatalogGraphQl
Magento_CatalogInventoryGraphQl
Magento_CatalogRuleGraphQl
Magento_CatalogUrlRewriteGraphQl
Magento_CheckoutAgreementsGraphQl
Magento_CmsGraphQl
Magento_CmsUrlRewriteGraphQl
Magento_CompareListGraphQl
Magento_ConfigurableProductGraphQl
Magento_CustomerDownloadableGraphQl
Magento_CustomerGraphQl
Magento_DirectoryGraphQl
Magento_DownloadableGraphQl
Magento_EavGraphQl
Magento_GiftMessageGraphQl
Magento_GraphQl
Magento_GraphQlCache
Magento_GroupedProductGraphQl
Magento_InventoryGraphQl
Magento_InventoryInStorePickupGraphQl
Magento_InventoryInStorePickupQuoteGraphQl
Magento_InventoryQuoteGraphQl
Magento_LoginAsCustomerGraphQl
Magento_NewsletterGraphQl
Magento_PaypalGraphQl
Magento_QuoteGraphQl
Magento_ReCaptchaWebapiGraphQl
Magento_RelatedProductGraphQl
Magento_ReviewGraphQl
Magento_SalesGraphQl
Magento_StoreGraphQl
Magento_TaxGraphQl
Magento_ThemeGraphQl
Magento_UrlRewriteGraphQl
Magento_VaultGraphQl
Magento_WishlistGraphQl
I have disabled all these. Lets see how this works!
Magento_GoogleAdwords Magento_GoogleOptimizer Magento_GoogleAnalytics Magento_GoogleGtag Magento_CardinalCommerce Magento_SampleData Magento_Persistent Magento_Multishipping
Magento_LoginAsCustomerGraphQl Magento_LoginAsCustomerAssistance Magento_LoginAsCustomerLog Magento_LoginAsCustomerPageCache Magento_LoginAsCustomerQuote
Magento_LoginAsCustomerSales Magento_LoginAsCustomerAdminUi Magento_LoginAsCustomerFrontendUi Magento_LoginAsCustomer Magento_LoginAsCustomerApi
Magento_WishlistAnalytics Magento_WishlistGraphQl Magento_SendFriend Magento_SendFriendGraphQl Magento_CheckoutAgreements
Magento_Marketplace Magento_AwsS3 Magento_Ups Magento_Usps Magento_Dhl Magento_Fedex
Magento_GroupedImportExport Magento_GroupedCatalogInventory Magento_MsrpGroupedProduct Magento_GroupedProduct Magento_DownloadableImportExport Magento_ConfigurableImportExport
Magento_BundleImportExport Magento_QuoteDownloadableLinks Magento_QuoteConfigurableOptions Magento_QuoteBundleOptions Magento_QuoteAnalytics Magento_ReviewAnalytics Magento_CustomerAnalytics
Magento_AdvancedPricingImportExport Magento_CatalogRuleConfigurable Magento_MsrpConfigurableProduct
Magento_WeeeGraphQl Magento_VaultGraphQl Magento_CatalogInventoryGraphQl Magento_CatalogUrlRewriteGraphQl Magento_ThemeGraphQl Magento_CompareListGraphQl Magento_TaxGraphQl
Magento_SwatchesGraphQl Magento_CmsUrlRewriteGraphQl Magento_UrlRewriteGraphQl Magento_SalesGraphQl Magento_ReviewGraphQl Magento_RelatedProductGraphQl Magento_ConfigurableProductGraphQl
Magento_PaypalGraphQl Magento_PaymentGraphQl Magento_NewsletterGraphQl Magento_CatalogCmsGraphQl Magento_GiftMessageGraphQl Magento_CustomerDownloadableGraphQl Magento_DownloadableGraphQl
Magento_DirectoryGraphQl Magento_CatalogCustomerGraphQl Magento_QuoteGraphQl Magento_CustomerGraphQl Magento_CatalogGraphQl Magento_CmsGraphQl Magento_CheckoutAgreementsGraphQl
Magento_BundleGraphQl Magento_GroupedProductGraphQl Magento_EavGraphQl Magento_CatalogRuleGraphQl Magento_StoreGraphQl Magento_GraphQlCache Magento_GraphQl Magento_NewRelicReporting
Magento_CustomerImportExport Magento_TaxImportExport Magento_SwaggerWebapiAsync Magento_SwaggerWebapi Magento_Swagger Magento_JwtUserToken Magento_JwtFrameworkAdapter
Magento_CatalogAnalytics Magento_AdminAnalytics Magento_ConfigurableProductSales Magento_ProductVideo Magento_EncryptionKey
Magento_PaypalCaptcha Magento_Weee Magento_CatalogWidget Magento_RemoteStorage Magento_Amqp Magento_Version
Magento_SwatchesLayeredNavigation Magento_Swatches Magento_ConfigurableProduct Magento_WebapiSecurity