显示购物车中相同商品的重复条目

时间:2014-11-26 07:42:09

标签: php magento

我正在写Magento电子商务门户网站,其中我允许用户购买不同尺寸的产品(如:小型,大型,xl,xxl),但我面临一个小问题,每当我为不同的项目添加相同的项目时购物车中有2种尺寸,它也显示了购物车中所有尺寸的相同商品图片。

举个例子:项目名称:杀手牛仔裤,可用尺码:32。36和40宽

现在每当我点击尺寸32时,它会显示我在购物车中的杀手牛仔裤图像,我选择尺码,再次选择尺码36它显示我在购物车中你选择尺寸为32和36的杀手牛仔裤,这正是我需要的,但问题是杀手牛仔裤图像显示两次是不对的。

那可能是什么原因?

请查看以下php脚本:

<?php
    $categoryIds = array(17);//category id

    $collection = Mage::getModel('catalog/product')
                                 ->getCollection()
                                 ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
                                 ->addAttributeToSelect('*')
                                 ->addAttributeToFilter('category_id', array('in' => $categoryIds)) 
?>

<?php $_collectionSize = $collection->count() ?>
    <?php // $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; $j=1; foreach ($collection as $product): ?>
        <?php if($j>3) break; ?>
        <?php if ($i++%3==0): ?>
        <ul class="products-grid">
        <?php endif ?>
            <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
                <a href="<?php echo $product->getProductUrl()?>" title="<?php echo $product->getName()?>">
                        <img src="<?php echo Mage::helper('catalog/image')->init($product, 'small_image')->resize(197, 167); ?>" alt="<?php echo $product->getName()?>" border="0" />
                    </a>
                <h2 class="product-name"><a href="<?php echo $product->getProductUrl()?>" title="<?php echo $product->getName()?>"><?php echo $product->getName() ?></a></h2>
               <div class="price-box">
               <?php echo Mage::helper('core')->currency($product->getPrice(),true,false);?>
               </div>
                <div class="actions">
                    <?php if($product->isSaleable()): ?>
                        <button class="button" onclick="setLocation('<?php echo Mage::getUrl('checkout/cart/add/')?>product/<?php echo $product->getId() ?>/')" title="<?php echo $this->__('Buy');?>" type="submit"><span><span><?php echo $this->__('Buy');?></span></span></button>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>

                </div>
            </li>
        <?php if ($i%$_columnCount==0): ?>
        </ul>
        <?php endif ?>
        <?php $j++ ?>
    <?php endforeach ?>

<?php // endif; ?>  
</div>

1 个答案:

答案 0 :(得分:0)

我不知道我是否理解正确 - 但我认为你想在购物车中只显示一张SIMPLE产品的图片,即使是同一个配置中的另一个SIMPLE产品被添加到购物车中?

如果是 - 那么你应该只修改你在购物车中显示数据的方式,而不是将产品添加到购物车的方式。