0

直接リンクを使用して製品をカートに追加する場合、製品がすでにカートに入っているかどうかを確認する機会はありますか? たとえば、顧客にリンクを送信し、顧客はそれを 1 回クリックしてから、もう一度クリックします。その結果、カートには 2 倍のピースが入っています。

注文/顧客ごとに一意の (この例では options[8]=AX587AD9) 1 つの製品オプション、テキスト フィールドを使用します。API 経由でこれを確認する方法があるかもしれません。

また、任意のメカニズムを使用して Magento フロントエンドの前にチェックし、カートにリダイレクトするか、リンクを使用して製品をカートに追加することもできます...

直接リンクの例: http://www.example.com/checkout/cart/add?product=161&qty=1&options[8]=AX587AD9

あらゆる提案をありがとう、イゴール

4

1 に答える 1

1

イベントオブザーバーを使用して、商品がカートに入っているかどうかを確認できます。

イベントを使用checkout_cart_product_add_beforeして、この商品がすでにカートに入っているかどうかを確認できます。設定ファイルは次のようになります

<config>
...
<frontend>
    ...
    <events>
        <checkout_cart_product_add_after>
            <observers>
                <unique_event_name>
                    <class>{{modulename}}/observer</class>
                    <method>CheckItem</method>
                </unique_event_name>
            </observers>
        </checkout_cart_product_add_after>
    </events>
    ...
</frontend>
...

そして、オブザーバーで、何かがカートに入っているかどうかをロジックで確認します

 class <namespace>_<modulename>_Model_Observer
{

        public function CheckItem(Varien_Event_Observer $obs)
        {
            // Get the quote item
            $item = $obs->getQuoteItem();
            //and put your logic here
            // condition matched then redirect back customer with some message

        }



    }
于 2013-05-21T08:40:43.750 に答える