如果已存在于magento的购物车中,则在新行中添加产品

时间:2016-04-14 09:40:46

标签: magento cart

我想在新行中添加子产品,如果它已经存在于购物车中,我可以使用以下代码检查它是否存在但是如何使用新行添加该产品

$productId = 1;
$quote = Mage::getSingleton('checkout/session')->getQuote();
if (! $quote->hasProductId($productId)) {
    // Product is not in the shopping cart so 
    // go head and show the popup.
}

1 个答案:

答案 0 :(得分:0)

如果您不想使用自定义选项,则无法在购物车中区分您的产品。因此,您需要重载 Mage_Sales_Model_Quote_Item 类并重写 representProduct 函数。

Create a custom moduleoverload sales/quote_item model并重写representFunction,如下所示:

/**
 * Check product representation in item
 *
 * @param   Mage_Catalog_Model_Product $product
 * @return  bool
 */
public function representProduct($product)
{
    //You can check here if the product is the one that you need to add as a new line or not.
    if(/* some checks with $product */) {
        return false;
    }

    //run parent function as default
    return parent::representProduct($product);
}

因此,添加到购物车的任何产品都不会代表另一种产品 - 已经在购物车中 - 并被评估为新产品。