With Magento 2.4.9, the supported caching infrastructure changes. Redis is no longer supported as a cache backend; Valkey 9 is the intended replacement. Magento can still use file-based caching, but stores currently using Redis need to review their configuration and…
Magento APSB26-146 (StyleSmuggler): Installing the CVE-2026-75650 Hotfix
On September 7, 2026, Adobe released a patch for the critical StyleSmuggler vulnerability. Installing it promptly is strongly recommended. I can help you implement the patch professionally in your Magento 2 store. Get in touch and we can make your…
Semantic AI Search for Magento 2 and Hyvä (Magento 2)
When traditional Magento search reaches its limits Traditional Magento 2 search works reasonably well when customers know exactly what they are looking for. But what happens when they describe a problem, a particular situation or simply don’t know the correct…
New EU Labeling Requirements for Online Stores from September 27, 2026 (Magento 1 / 2)
Ab dem 27.09.2026 , the EU Richtlinie 2024/825 and Implementing Regulation (EU) 2025/1960 introduce new information requirements for many online merchants. Stores selling physical goods to consumers must display a standardized EU legal guarantee label . Physical goods include almost…
Counting products per attribute set using SQL (Magento 2)
It can be useful to count how many products belong to each attribute set. The simplest approach in Magento 2 is the following SQL query:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SELECT eas.attribute_set_id, eas.attribute_set_name, COUNT(cpe.entity_id) AS product_count FROM eav_attribute_set eas LEFT JOIN catalog_product_entity cpe ON cpe.attribute_set_id = eas.attribute_set_id WHERE eas.entity_type_id = ( SELECT entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_product' ) GROUP BY eas.attribute_set_id, eas.attribute_set_name ORDER BY eas.attribute_set_name; |
The result lists the number of products assigned to each attribute set.
Setting the OpenSearch host and port via CLI (Magento 2)
To configure OpenSearch as your Magento 2 search engine from the command line (CLI), run these three commands:
|
1 2 3 |
bin/magento config:set catalog/search/opensearch_server_hostname localhost bin/magento config:set catalog/search/opensearch_server_port 9200 --> Replace 9200 with your port bin/magento config:set catalog/search/engine opensearch |
The final command is optional and only necessary if OpenSearch was not already configured as the search engine.
Manually uploaded images do not appear in the media gallery (Magento 2)
If you upload images manually via FTP, for example to the wysiwyg directory, they will not automatically appear in the Magento 2 Media Gallery. Magento has not registered them in the database yet. Run the following command to synchronize your…
Upgrading Hyvä to 1.4+: Adapting the Tailwind Structure in a Child Theme (Magento 2)
If you are upgrading a Hyvä child theme from a version earlier than 1.4, review its Tailwind structure. Hyvä 1.4 and later no longer rely on a central tailwind.config.js file. The new structure uses hyva.config.json, tailwind-source.css and generated files in…
Adding a cancellation button to Magento from June 19, 2026 (Magento 1 / 2)
Ab dem 19.06.2026 According to § 356a BGB (EU-Richtlinie 2023/2673) , most online merchants will be required to provide a prominent cancellation button labeled “Withdraw from contract” in their store. The withdrawal process must meet different requirements , including allowing…
Fixing The attribute ‘title’ is required but missing in acl.xml (Magento 2)
When creating a Magento 2 extension with an acl.xml file, you may encounter the error The attribute ‘title’ is required but missing . You can resolve it by adding a title attribute to your resource element:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd"> <acl> <resources> <resource id="Magento_Backend::admin"> <resource id="Magento_Backend::stores"> <resource id="Vendor_Whatever::config" title="Foobar" sortOrder="90" /> </resource> </resource> </resources> </acl> </config> |
In this example,…