商品がMagentoのカートに最初に追加されたときにポップアップを表示し、商品が再追加または更新された場合にポップアップを表示したくありません。要するに、カートは最初に出現するかどうか?注文の確認にMagento製品が既にカートに追加されているかどうかを確認する方法はありますか?
答えて
答えは、親/子タイプの製品(必要な場合)に対処する方法によって大きく異なります。
あなただけのシンプルな製品でのみ扱っているか、親/子タイプの製品があり、その後、子供のidのためにテストする必要がある場合:
$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.
}
また、あなたが親/子タイプの製品を扱っている場合そしてあなただけの、親IDをテストしたい:質問だった
$productId = 1;
$quote = Mage::getSingleton('checkout/session')->getQuote();
$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
if ($item->getData('product_id') == $productId) {
$foundInCart = true;
break;
}
}
EDIT
コメントで、なぜcontroller_action_predispatch_checkout_cart_add
のレジストリ値を設定してもcart.phtmlで取得できないと尋ねられました。
基本的にレジストリ値は、checkout/cart/addに投稿してからcheckout/cart/indexにリダイレクトされるため、レジストリ値が失われます。
あなたはこれらの間で値を保持したいなら、あなたは代わりにセッションを使用することができます:あなたのオブザーバーで
を:
Mage::getSingleton('core/session')->setData('your_var', 'your_value');
値
$yourVar = Mage::getSingleton('core/session')->getData('your_var', true);
を取得するには
getDataにtrueフラグを渡すと、sessから値が削除されますあなたのためのイオン。
製品がカートに既に存在するかどう、あなたは、単に次のコードを使用することができます。
$productId = $_product->getId(); //or however you want to get product id
$quote = Mage::getSingleton('checkout/session')->getQuote();
$items = $quote->getAllVisibleItems();
$isProductInCart = false;
foreach($items as $_item) {
if($_item->getProductId() == $productId){
$isProductInCart = true;
break;
}
}
var_dump($isProductInCart);
・ホープ、このことができます!
私はこの値をショッピングカートのページに表示したいので、オブザーバーでこのロジックを使用しました。 1つのphtmlファイル内の変数値... – Tamanna
関数の引数として、関数内で上記のコードを単純に末尾に書くことができ、どこからでも呼び出すことができます。 – MagePsycho
私の答えはまた下降しました –
- 1. Magento - Querystring経由でカートに製品を追加する
- 2. Magento - 商品がカートからすでに取り外されているかどうかを確認する方法
- 3. 製品属性セットに属性が存在するかどうかを確認する方法は? Magento
- 4. ファイルが既に開いているかどうかを確認する方法はありますか?
- 5. PowerShell - SCOM PropertyBag、既に追加されているかどうかを確認する方法?
- 6. Magentoで製品にスタックラベルを追加する方法1.9
- 7. Magentoバックエンド製品ページにカスタムタブを追加する方法
- 8. オプション値を商品に追加してからMagentoでカートに追加
- 9. Magentoのカートに無料の製品を追加する際の問題
- 10. UIViewControllerが表示されているかどうかを確認する良い方法はありますか?
- 11. バッチファイルから、プログラムがインストールされているかどうかを確認する方法はありますか?
- 12. は、performSelector:withObject:afterDelay:が登録されているかどうかを確認する方法はありますか?
- 13. UDIDがビルドに含まれているかどうかを確認する方法はありますか?
- 14. Magentoに製品のサムネイルを追加するにはどうすればよいですか?
- 15. オープン・グラフ・アプリケーションが既にタイムラインにプログラムで追加されているかどうかを確認するにはどうすればよいですか?
- 16. iPhoneアプリでボタンが押されているかどうかを確認する方法はありますか?
- 17. ベロシティ:変数が定義されているかどうかを確認する方法はありますか
- 18. システムキャレットが表示されているかどうかを確認する方法はありますか?
- 19. Pythonのsetuptoolsがインストールされているかどうかを確認する方法はありますか?
- 20. フラッシュがインストールされているかどうかを確認する方法はありますか?
- 21. Primefaces RadioCheckboxがチェックされているかどうかを確認する方法はありますか?
- 22. コンボボックスのドロップダウンリストが表示されているかどうかを確認する方法はありますか?
- 23. QML要素がロードされているかどうかを確認する方法はありますか?
- 24. USERがデータベースに既に作成されているかどうかを確認する方法は?
- 25. AlarmManagerに既にアラームが設定されているかどうかを確認する方法は?
- 26. 新しいファイルが追加されているかどうかを確認するディレクトリをポーリングする方法?
- 27. Twitter-bootstrap:ポップオーバーが既に表示されているかどうかを確認する方法は?
- 28. Expression Encoder 4が既にインストールされているかどうかを確認する方法は?
- 29. Magentoの一部のページに製品オプションとカートに追加ボタンが表示されない
- 30. Magentoデータベースにどのように新製品が保存されますか?
カートに追加する前に製品IDを取得するために "controller_action_predispatch_checkout_cart_add"を使用しました。phtmlページの商品IDを取得するためにレジスタ変数を使用しました...そしてあなたが言及しているように、しかし、私はカートのページでproductidを取得することができません。レジストリでこのことを助けてください。 – Tamanna
あなたのためにこれを説明する答えが更新されました –
ドリューハンター..ありがとうございました。ご協力いただきありがとうございます...:):) – Tamanna