Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

SOLVED: Magento1.9.3.3 Configurable Product Swatch bug

Igor Revenko:

We just upgraded our site from Magento 1.9.1.1 to Magento 1.9.3.3.

Unfortunately, our site is broken, so I have investigated the issue. The error notification are as follow.



Fatal error: Uncaught Error: Call to undefined method

Mage_ConfigurableSwatches_Helper_Mediafallback::attachProductChildrenAttributeMapping() in /var/www/html/source/app/code/core/Mage/ConfigurableSwatches/Model/Observer.php:59 Stack trace: #0 /var/www/html/source/app/code/core/Mage/Core/Model/App.php(1358): Mage_ConfigurableSwatches_Model_Observer-productListCollectionLoadAfter(Object(Varien_Event_Observer)) #1 /var/www/html/source/app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App-_callObserverMethod(Object(Mage_ConfigurableSwatches_Model_Observer), 'productListColl...', Object(Varien_Event_Observer)) #2 /var/www/html/source/app/Mage.php(448): Mage_Core_Model_App-dispatchEvent('catalog_block_p...', Array) #3 /var/www/html/source/app/code/core/Mage/Catalog/Block/Product/List.php(160): Mage::dispatchEvent('catalog_block_p...', Array) #4 /var/www/html/source/app/code/core/Mage/Core/Block/Abstract.php(922): Mage_Catalog_Block_Product_Li in /var/www/html/source/app/code/core/Mage/ConfigurableSwatches/Model/Observer.php on line 59


That code block is as follow.


public function productListCollectionLoadAfter(Varien_Event_Observer $observer)
{
if (!Mage::helper('configurableswatches')->isEnabled()) { // check if functionality disabled
return; // exit without loading swatch functionality
}

/* @var $mediaHelper Mage_ConfigurableSwatches_Helper_Mediafallback */
$mediaHelper = Mage::helper('configurableswatches/mediafallback');

/** @var $priceHelper Mage_ConfigurableSwatches_Helper_List_Price */
$priceHelper = Mage::helper('configurableswatches/list_price');

/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
$collection = $observer->getCollection();

if ($collection
instanceof Mage_ConfigurableSwatches_Model_Resource_Catalog_Product_Type_Configurable_Product_Collection) {
// avoid recursion
return;
}

$products = $collection->getItems();

$mediaHelper->attachChildrenProducts($products, $collection->getStoreId());

$mediaHelper->attachProductChildrenAttributeMapping($products, $collection->getStoreId());

if ($priceHelper->isEnabled()) {
$priceHelper->attachConfigurableProductChildrenPricesMapping($products, $collection->getStoreId());
}

$mediaHelper->attachGallerySetToCollection($products, $collection->getStoreId());

/* @var $product Mage_Catalog_Model_Product */
foreach ($products as $product) {
$mediaHelper->groupMediaGalleryImages($product);
Mage::helper('configurableswatches/productimg')
->indexProductImages($product, $product->getListSwatchAttrValues());
}

}

The old block (Magento1.9.1.0) is follow.


public function productListCollectionLoadAfter(Varien_Event_Observer $observer)
{
if (!Mage::helper('configurableswatches')->isEnabled()) { // check if functionality disabled
return; // exit without loading swatch functionality
}

/* @var $helper Mage_ConfigurableSwatches_Helper_Mediafallback */
$helper = Mage::helper('configurableswatches/mediafallback');

/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
$collection = $observer->getCollection();

if ($collection
instanceof Mage_ConfigurableSwatches_Model_Resource_Catalog_Product_Type_Configurable_Product_Collection) {
// avoid recursion
return;
}

$products = $collection->getItems();

$helper->attachChildrenProducts($products, $collection->getStoreId());

$helper->attachConfigurableProductChildrenAttributeMapping($products, $collection->getStoreId());

$helper->attachGallerySetToCollection($products, $collection->getStoreId());

/* @var $product Mage_Catalog_Model_Product */
foreach ($products as $product) {
$helper->groupMediaGalleryImages($product);
Mage::helper('configurableswatches/productimg')
->indexProductImages($product, $product->getListSwatchAttrValues());
}

}

To fix the site broken issue, I disabled the color swatch setting on System/Catalog/Configurable Swatches/General Settings.

Then, our site was retrieved. But, of course, color swatch functions didn't work anymore.

To ensure whether this issue is core bug or not, I installed raw Magento 1.9.3.3 on local server. But, the same issue.

Is there any solution?



Posted in S.E.F
via StackOverflow & StackExchange Atomic Web Robots
This Question have been answered
HERE


This post first appeared on Stack Solved, please read the originial post: here

Share the post

SOLVED: Magento1.9.3.3 Configurable Product Swatch bug

×

Subscribe to Stack Solved

Get updates delivered right to your inbox!

Thank you for your subscription

×