Magento 1.9.1.1からMagento 1.9.3.3にサイトをアップグレードしました。Magento1.9.3.3設定可能な製品スウォッチバグ
残念ながら、私たちのサイトは壊れているため、問題を調査しました。 エラー通知は次のとおりです。
Fatal error: Uncaught Error: Call to undefined method
Mage_ConfigurableSwatches_Helper_Mediafallback :: attachProductChildrenAttributeMapping() /var/www/html/source/app/code/core/Mage/ConfigurableSwatches/Model/Observer.php:59スタックトレースで:#0/#1/var/www/html/source/app/code/var/www/html/source/app/code/core/Mage/Core/Model/App.php(1358):Mage_ConfigurableSwatches_Model_Observer-productListCollectionLoadAfter(オブジェクト(Varien_Event_Observer) #2/var/www/html/source/app /(/)/ CORE/Mage/Core/Application.php(1337):Mage_Core_Model_App-_callObserverMethod(オブジェクト(Mage_ConfigurableSwatches_Model_Observer)、 'productListColl ...'、オブジェクト(Varien_Event_Observer) 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/var/www/html/source/app/code/coreコードブロックは、以下の通りであることをライン59
に/Mage/ConfigurableSwatches/Model/Observer.php。
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());
}
}
古いブロック(Magento1.9.1.0)が続きます。
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());
}
}
サイト壊れた問題を解決するには、私は、System /カタログ/設定可能スウォッチ/一般設定を上の設定色見本を無効に。
次に、私たちのサイトが取得されました。もちろん、カラースウォッチ機能はもはや機能しませんでした。
この問題がコアバグかどうかを確認するために、ローカルサーバーに未処理のMagento 1.9.3.3をインストールしました。しかし、同じ問題です。
解決策はありますか?
申し訳ありませんが、ハズレ。同じエラーが発生しました。何か考えていますか? –
最近、色見本に同じ問題があり、product_options.jsを追加して問題が解決しました。 – hardik
上記を確認してくださいJSはあなたのプロジェクトに含まれていますか? – hardik