[Magento 2] Adding product attributes to quote items getProduct function

When calling the function $block->getProduct() in a quote item in the cart page, Magento 2 will return the product and its basic attributes. The attributes that can be retrieved from the product when calling this function in a quote_item page can be found in the file vendor/magento/module-sales/etc/catalog_attributes.xml. From your own module, you can create the file Vendor/Module/etc/catalog_attributes.xml and add the attributes you need:

[Magento 2] Create Multiselect Product Attribute Programmatically

It might be tricky if you want to create a multiselect product attribute in Magento 2. For that, it’s necessary to pass the correct backend model: if you don’t do it your attribute will be created but the values won’t be saved. Taking this Inchoo article as a basis, you just need to know the fields you should pass to your attribute. The 3 important values here are: Type and Input: these 2 values have Read more…

[Magento 2] Display category image in navigation menu

[Edited] I’ve updated the article to do this in a better way Recently I had to do something I thought it was simple to do: add the category images to the navigation menu. However, Magento doesn’t use a template to draw the whole menu but a function that will retrieve all categories and generate the ul/li tree. In Magento 2.1.X you can do this rewriting the _getHtml() function from the class Magento\Theme\Block\Html\Topmenu. This is a Read more…

[Magento 2] Get current product

Getting the “current product” in Magento 2 is trickier than it was in Magento 1. However, it is like that for a reason: Mage:: is a thing from the past, no more accessing to everything from everywhere (someone I know would say: “this is not logic at all”). That’s the reason why, in order to get the current product in a product page, you’ll need to use the class Magento\Framework\Registry in your block and add the Read more…

[Forms] Remove a field from a Form

Recently I wanted to remove a field from a form object. It was easy, we need to know 2 things: Fieldset name (‘main’ by default) Field name With this information we can just update the form object with:     <?php $this->getForm()->removeField(‘password_fieldset’); ?>

Filter a collection when the attribute value is not set

Since the very first time I started working with collections in Magento I run into situations where I needed to filter a collection by an attribute whose value is not set yet (for example, when the attribute is of the type ‘yes/no’, values 0/1). If I wanted to filter by all the products with a value ‘1’, that was easy, but when I was on the case of filtering by ‘0’, then the collection filter Read more…

Some thoughts about Magento 2

During the past 5 years I have been working on eCommerce and always with Magento. Magento “1”. Magento 1 has become the natural option to recommend to anyone who wants to implement a secure, complete, extensible ecommerce site. I have learned a lot while developing on Magento, but also when discussing functional specifications with our clients, finding out what can be done and what is not a good idea to do. When it comes to Read more…

[New Relic] One of the best tools to monitor your Magento shop

At my company we’ve been using tools like Munin to monitor the server. Munin is a great tool that shows all type of graphs of what’s going on in the server: Apache processes, Varnish memory, Database performance, Server load, Disk usage, Memcache performance… and a lot more. Basically, you can configure any service you have so that Munin can generate graphs. But Munin only informs us about server stuff. It doesn’t really provide any type Read more…

Press Ctrl+C to copy the following code.
"