3

I need to create 2 widgets on the homepage (CMS Home Page -> Main Content Area).

To do that, I created 2 modules (one for each widget) and extended them from Catalog Product List to use my own template (and also to select the products from the admin in a more fancy way).

The problem is that the frontend is displaying the same widget twice (the first one, the other one doesn't appear at all).

Apparently, there is a known issue related to this, but if someone found a solution to this bug and share it, it would be greatly appreciated.

2
  • What version of magento 2 are you using? Nov 9, 2016 at 16:24
  • @AndréFerraz 2.1.1
    – pinicio
    Nov 9, 2016 at 17:56

1 Answer 1

1

I found a solution and forgot to post it here, better late than never. The issue is that the widget_id isn't stored within the cache key, so I added the getCacheKeyInfo method to the Block of my Module and set the id for the widget (note self::WIDGET_ID).

/*
 * Set widget id to prevent M2 bug
 * https://github.com/magento/magento2/issues/4389
 */
public function getCacheKeyInfo()
{
    return [
        'CATALOG_PRODUCTS_LIST_WIDGET',
        $this->_storeManager->getStore()->getId(),
        $this->_design->getDesignTheme()->getId(),
        $this->httpContext->getValue(\Magento\Customer\Model\Context::CONTEXT_GROUP),                intval($this->getRequest()->getParam($this->getData('page_var_name'), 1)),
        $this->getProductsPerPage(),
        self::WIDGET_ID,
        serialize($this->getRequest()->getParams())
    ];
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.