【问题标题】:Configurable Swatches Magento not working可配置色板 Magento 不工作
【发布时间】:2015-06-18 16:07:45
【问题描述】:

与本指南相关,我已将我们的商店升级到 Magento 1.9.1:
Configurable Swatches Guide for 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

这是代码sn-p:

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

当我检查数组时,我找不到 $mediaGalleryImage['product_id']。我不确定升级是否出了问题,或者它是否是一个 magento 错误。我用 rwd 主题对其进行测试。

【问题讨论】:

    标签: magento


    【解决方案1】:

    我遇到了这个确切的问题,在我的情况下,它是一个名为 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>
    

    所以,检查任何类重写。

    希望对您有所帮助。

    【讨论】:

    • 嘿,谢谢你。我会尽快检查并提供反馈。
    【解决方案2】:

    正如 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;
    }
    

    这样你将保持从这个插件的好处,同时将获得默认的 magento 颜色swatcher :) 进行编码;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      相关资源
      最近更新 更多