如何在主页中显示可配置样本Magento 1.9

时间:2016-10-12 04:13:12

标签: magento magento-1.9 configurable-product

我的主页上有一个产品列表,我很难在主页上的产品上显示可配置/颜色样本。我的目录列表上的可配置/颜色样本工作正常。我猜我只需要配置我的布局,但我不知道该怎么做。我使用的是RWD主题和Magento 1.9。

任何人,请帮助我。谢谢!

UPDATE !!

所以我发现了这个



<script type="text/javascript">
    $j(document).on('product-media-loaded', function() {
        ConfigurableMediaImages.init('<?php echo $this->getImageType(); ?>');
        <?php foreach ($this->getProductImageFallbacks() as $imageFallback): ?>
        ConfigurableMediaImages.setImageFallback(<?php echo $imageFallback['product']->getId(); ?>, $j.parseJSON('<?php echo $imageFallback['image_fallback']; ?>'));
        <?php endforeach; ?>
        $j(document).trigger('configurable-media-images-init', ConfigurableMediaImages);
    });
</script>
&#13;
&#13;
&#13;

app / design / frontend中的

// default / configurableswatches / catalog / media / js.phtml

是问题的原因。

但在此之前,我将其粘贴到我的local.xml

<cms_index_index translate="label">
    <update handle="product_list"/> 
    <reference name="content">
         <block type="configurableswatches/catalog_media_js_list" name="configurableswatches.media.js.list" />
     </reference>
</cms_index_index>

然后我发现产品不会填充其小图像。 如果您注意到,上面的javascript中有一个for循环,但它不起作用,因为 getProductImageFallbacks()返回NULL。

这是我在CMS内容(主页)

上的内容
{{block type="catalog/product_list" column_count="5" category_id="21" template="catalog/product/homepage-list.phtml"}}

公共函数getProductImageFallbacks($ keepFrame = null) 中的app / code / local / Mage / ConfigurableSwatches / Block / Catalog / Media / Js / Abstract.php第69行

这个$products = $this->getProducts();给了我NULL。这就是为什么它无法提供正确的图像后备。

仍在等待答案。请帮我。

2 个答案:

答案 0 :(得分:0)

请尝试以下代码:

<?php
$categoryId = 3 //your category id's;
$collection = Mage::getSingleton('catalog/category')->load($categoryId)
->getProductCollection()->addAttributeToFilter('visibility', 4)
->addAttributeToSelect('*')->addAttributeToFilter('status',1);

foreach($collection as $pro):
$productAttributeOptions =
$pro->getTypeInstance(true)->getConfigurableAttributesAsArray($pro);
?>
<h3 class="product-name"><?php  echo $pro->getName(); ?></h3>

<?php

//提供额外的块来挂起产品中的某些功能 列表

//将显示提供以此块为目标的UI元素的功能 直接位于产品名称下方

if ($this->getChild('name.after')) {
$_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
foreach ($_nameAfterChildren as $_nameAfterChildName) {
$_nameAfterChild =
$this->getChild('name.after')->getChild($_nameAfterChildName);
$_nameAfterChild->setProduct($_product);
echo $_nameAfterChild->toHtml();
}
}
?>
<?php endforeach; ?>

答案 1 :(得分:0)

要在功能产品列表中的主页上显示可配置样本,请按照以下步骤操作:

为自定义产品列表制作您自己的list.phtml文件 在list.phtml文件中,选择要显示可配置样本的位置,然后粘贴到代码下方:     

    $_nameAfterChild = $this->getLayout()->getBlock('product_list.swatches');
    $_nameAfterChild->setProduct($_product);
    echo $_nameAfterChild->toHtml();
使用以下代码将此文件包含在CMS的主页中:

{{block type="catalog/product_list" column_count="5" category_id="21" template="catalog/product/homepage-list.phtml"}}

在主题代码中的local.xml文件中代码:

    cms_index_index
         update handle="product_list"/
    /cms_index_index