2016-04-14 7 views
0

カートに商品が既に存在する場合は、その商品を新しい行に追加したいのですが、それが存在するかどうかは以下のコードで確認できます。私はあなたがカスタムオプションを使用しない場合既にマガジンにカートに入っている場合は、新しい行に商品を追加してください

$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. 
} 
+0

重複:http://magento.stackexchange.com/questions/14174/how-can-i-show-the-same-product-multiple-times-in-the-shopping-cart – muhammedv

+0

私はそれをチェックしました。戻り値はfalseです。それは追加から項目を停止するだけですが、私はそれを新しい行に追加したいのです。 – Keith

+0

これを試すことができます:http://magento.stackexchange.com/questions/46604/same-product-added-to-cart-different-line-itemsこれは少し違うアプローチです。 – muhammedv

答えて

0

新しい行で、あなたはカートで貴社の製品を差別化する他のオプションを持っていないことを追加します。だから、オーバーロードする必要がありますMage_Sales_Model_Quote_Itemクラスの製品のクラスを書き換えます。

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); 
} 

、どの製品がカートに追加されcart-や新製品として評価することで、既に - つまり他の製品を表すものではありません。

+0

ありがとうございますそれはすべての製品で動作しますが、私たちは関連するまたはすべての子製品のためにそれを動作させたい場合。 – Keith

+0

これは、構成可能な製品にリンクされている単純な製品にのみ適用しますか? – muhammedv

関連する問題