0

我已经在我的 Magento 商店中实现了 Google Content API,并且到目前为止它运行良好,但我需要解决一个简单的产品需要使用它的父图像的问题。

这是 GoogleShopping 模块的 ImageLink.php 中的函数:

    public function convertAttribute($product, $entry)
{
            $url = Mage::helper('catalog/product')->getImageUrl($product);
            if ($product->getImage() && $product->getImage() != 'no_selection' && $url) {
                    $this->_setAttribute($entry, 'image_link', self::ATTRIBUTE_TYPE_URL, $url);
                } 
    return $entry;
}

然后我尝试修改它以在有父对象时获取父图像,如下所示:

    public function convertAttribute($product, $entry)
{
            $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product);
            if ($parentIds[0] != '') {
                $product = $parentIds[0]; 
            }
            $url = Mage::helper('catalog/product')->getImageUrl($product);
            if ($product->getImage() && $product->getImage() != 'no_selection' && $url) {
                    $this->_setAttribute($entry, 'image_link', self::ATTRIBUTE_TYPE_URL, $url);
                } 
    return $entry;
}

但这似乎失败了。我认为原因是我不知道变量 $product 实际上是什么。我尝试将其写入文件但没有得到任何输出..

有没有人解决过这个问题或知道如何解决它?

谢谢,

4

2 回答 2

1

破解它。我的代码有点不对劲。

这应该可以帮助很多其他需要帮助的人在 magento 中调整 google api 功能所以这就是我所做的让这个工作:

    public function convertAttribute($product, $entry)
{
            $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
            if ($parentIds[0] != '') {
                $product = Mage::getModel('catalog/product')->load($parentIds[0]); 
            }
            $url = Mage::helper('catalog/product')->getImageUrl($product);
            if ($product->getImage() && $product->getImage() != 'no_selection' && $url) {
                    $this->_setAttribute($entry, 'image_link', self::ATTRIBUTE_TYPE_URL, $url);
                }  
    return $entry;
}

例如,您应该能够使用类似的修改来获取 URL 的其他父项。

干杯!

于 2013-06-18T10:29:24.103 回答
0
 public function convertAttribute($product, $entry)
{
        $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
        if ($parentIds[0] != '' && $product->getImage() == 'no_selection') {
            $product = Mage::getModel('catalog/product')->load($parentIds[0]); 
        }
        $url = Mage::helper('catalog/product')->getImageUrl($product);
        if ($product->getImage() && $product->getImage() != 'no_selection' && $url) {
                $this->_setAttribute($entry, 'image_link', self::ATTRIBUTE_TYPE_URL, $url);
            }  
return $entry;
}

我稍微修改了一下。我想检查简单产品是否有图像以及是否可以继续使用它,所以我添加了 && $product->getImage() == 'no_selection' 如果图像丢失,那么我想要可配置的图像。我不确定是否有更好的方法来做到这一点,但这似乎目前正在奏效。希望这可以帮助某人。我使用 Magento Enterprise 1.12。

于 2014-02-26T01:41:23.227 回答