[Magento 2] GDPR – Cookie Consent for Europe Extension

Default Magento 2 cookie consent functionality has a couple of issues: First of all: it is not compatible with the European Law. This law actually asks for validation regarding all the type of cookies a website has. We need to differentiate which cookies are mandatory for the website functionality and which ones are not. Secondly: it is buggy! It seems the selected option is not correctly saved and customers need to accept once and again Read more…

Shopify shops Scam

I’m writing this because I’ve been stupid enough to buy some clothes in a shopify store after an ad I saw on Facebook. Basically: I saw the ad on Facebook, there was a beautiful and warm legging I wanted to buy for my wife I entered the site and I really liked the way it was designed: clean, clear, beautiful photos. I was stupid enough to not: Check the terms and conditions Check whether there Read more…

Catalog URL Indexing Issues in Magento 2

If you develop for Magento 2, you might have run into Catalog URL indexing issues like duplicated urls and constraints. There are many posts and answers about it on the net. After trying many free modules, this was the good one: https://github.com/karliuka/m2.IndexerUrlRewrite It adds Product, Category and Catalog reindex to indexes When reindexing from terminal you’ll see that it reindex these three models You can also reindex separately: This just saved my day 🙂

[Magento 2] Move billing address to shipping step (Magento >= 2.3)

I’ve been looking for a solution that works fine in Magento 2.3 to move billing address to shipping step in Magento 2.3. There aren’t many available solution online but I’ve found one that works fine with a couple of modifications. Pull request haven’t been accepted in the original repo, but I’ve created a fork with the modifications to: Make this module work with Magento > 2.3 Remove completely the billing address from the payment step Read more…

[Magento 2] Error: Uncaught TypeError: Argument 1 passed to Magento\Catalog\Model\ProductRepository::prepareSku()

The error: Is related to a product which doesn’t have a SKU. This might cause different issues: Indexation problems » URL Rewrites not created Product Grid sorting issues: can’t sort by sku The solution should be easy. Go to your database and check which products don’t have an SKU: Once you have found the products, you can just manually add the SKU: You can now check that indexation works fine and you can also sort Read more…

[Magento 2] Migration errors: unserialize

One of the trickiest errors I’ve found when Migrating Magento 1 to Magento 2 (2.3) has been an issue related to unserialization. There are 2 types of messages I received: Reason: in both cases, the reason is that some data that was stored serialized in the Magento 1 database, had been serialized incorrectly. In this particular case, the issue was related to the item product_options value (there is where custom options selected by the customer Read more…

[Magento 2] Migration errors: Data Integrity Step

Noting down the errors and possible solutions I get while migrating data from Magento 1 to Magento 2. In the data integrity step we can find many type of errors. Here you have some of them, explanation and solution: Error Foreign key (FK_CATALOG_EAV_ATTRIBUTE_ATTRIBUTE_ID_EAV_ATTRIBUTE_ATTRIBUTE_ID) constraint fails on source database. Orphan records id: 121,182 from catalog_eav_attribute.attribute_id has no referenced records in `eav_attribute Explanation A catalog eav attribute (product attribute or category attribute) was created in the past Read more…

[Magento 2] Add require fields dynamically in a form

Recently I had to modify the customer registration form from one of the websites I manage. VAT ID had to be included but only for professional customers. This meant that when a customer clicked on the «I’m a professional» field, new fields should show up and, the most important, the TAXVAT field had to become required (when in Magento is not required). This solution is not perfect because it uses just the javascript validation. But Read more…