2015-01-16 3 views
0

, относящимся к этому руководству я updgraded нашего магазина Magento 1.9.1:
Configurable Swatches Guide for Magento...Настраиваемый Swatches Magento не работает

Проблема заключается в том, что эскизы и образцы цвета не посев до. В system.log есть эта ошибка:

2015-01-16T16:56:39+00:00 ERR (3): Notice: Undefined index: product_id in /magento/app/code/core/Mage/ConfigurableSwatches/Helper/Mediafallback.php on line 281 

Это фрагмент кода:

foreach ($mediaGallery['images'] as $mediaGalleryImage) { 
     if ($mediaGalleryImage['product_id'] == $product->getId()) { 
      $newMediaGalleryImages[] = $mediaGalleryImage; 
     } else { 
      $configurableImages[] = $mediaGalleryImage; 
     } 
    } 

Когда я проверить массив я не могу найти $ mediaGalleryImage [ 'product_id']. Я не уверен, что что-то случилось с обновлением или если это ошибка пурпурного цвета. Я тестирую его с помощью rwd-темы.

ответ

3

Я столкнулся с этой проблемой, в моем случае это было стороннее расширение под названием MageWorx SeoSuite (версия 3.13.0). Проблема, с которой я столкнулся, была связана с тем, что изображения галереи не показывались в деталях продукта, когда настраиваемые образцы были включены. Обновление до последней версии на этом посту (3.14.2) все еще не исправило.

Я отслеживал его вниз к методу «loadGallery» в классе MageWorx_XSitemap_Model_Catalog_Resource_Eav_Mysql4_Product_Attribute_Backend_Media в модуле MageWorx_XSitemap. Это нарушает функцию настраиваемых образцов.

я должен был прокомментировать его на некоторое время в config.xml модулей:

 <catalog_resource_eav_mysql4> 
      <rewrite> 
       <!-- <product_attribute_backend_media>MageWorx_XSitemap_Model_Catalog_Resource_Eav_Mysql4_Product_Attribute_Backend_Media</product_attribute_backend_media> --> 
      </rewrite> 
     </catalog_resource_eav_mysql4> 

Таким образом, проверить любой класс переписывает.

Надеюсь, что это поможет.

+0

Эй, благодарю вас за это. Я проверю его как можно скорее и даю обратную связь. – grindking

+0

1 за ваш большой намек, спасибо :) – rramiii

0

как то, что сказал MageMechanic.com, если вы используете xsitemap и у вас есть следующие рерайт:

<catalog_resource_eav_mysql4> 
      <rewrite> 
       <product_attribute_backend_media>MageWorx_XSitemap_Model_Catalog_Resource_Eav_Mysql4_Product_Attribute_Backend_Media</product_attribute_backend_media> 
      </rewrite> 
     </catalog_resource_eav_mysql4> 

идти к классу MageWorx_XSitemap_Model_Catalog_Resource_Eav_Mysql4_Product_Attribute_Backend_Media и обновлять loadGalary функцию, чтобы быть следующим:

public function loadGallery($product, $object) 
{ 
    $eventObjectWrapper = new Varien_Object(
     array(
      'product' => $product, 
      'backend_attribute' => $object 
     ) 
    ); 
    Mage::dispatchEvent(
     $this->_eventPrefix . '_load_gallery_before', 
     array('event_object_wrapper' => $eventObjectWrapper) 
    ); 

    if ($eventObjectWrapper->hasProductIdsOverride()) { 
     $productIds = $eventObjectWrapper->getProductIdsOverride(); 
    } else { 
     $productIds = array($product->getId()); 
    } 

    $connection = Mage::getSingleton('core/resource')->getConnection('core_write'); 
    $tablePrefix = (string) Mage::getConfig()->getTablePrefix(); 
    $result  = $connection->fetchAll(" 
       SELECT `main`.`value_id`, `main`.`value` AS `file`, `main`.`entity_id` AS `product_id`, `value`.`label`, `value`.`position`, 
        `value`.`disabled`, `default_value`.`label` AS `label_default`, `default_value`.`position` AS `position_default`, 
        `default_value`.`disabled` AS `disabled_default` 
       FROM `" . $tablePrefix . "catalog_product_entity_media_gallery` AS `main` 
       LEFT JOIN `" . $this->getTable(self::GALLERY_VALUE_TABLE) . "` AS `value` 
        ON main.value_id=value.value_id 
        AND value.store_id=" . (int) $product->getStoreId() . " 
       LEFT JOIN `" . $this->getTable(self::GALLERY_VALUE_TABLE) . "` AS `default_value` 
        ON main.value_id=default_value.value_id AND default_value.store_id=0 
       WHERE (main.attribute_id = '" . $object->getAttribute()->getId() . "') 
        AND (main.entity_id in ('" . implode("','", $productIds). "')) 
       ORDER BY IF(value.position IS NULL, default_value.position, value.position) ASC"); 

    $this->_removeDuplicates($result); 
    return $result; 
} 

Таким образом, вы сохраните выгоду от этого плагина, и в то же время получите цветной swatcher цвета magento :) engoy coding;)

Смежные вопросы