商品をカートに自動的に追加する小さなモジュールを作成しています(特定の基準に基づいて)。しかし、その後、ユーザーがその自動製品をカートから取り除く場合は、私が知る必要があるので、現在のセッションで再度追加しないようにしてください。Magento - 商品がカートからすでに取り外されているかどうかを確認する方法
カートのオブジェクトには、すでにカートから製品が取り外されたことを伝えるものがありますか?
商品をカートに自動的に追加する小さなモジュールを作成しています(特定の基準に基づいて)。しかし、その後、ユーザーがその自動製品をカートから取り除く場合は、私が知る必要があるので、現在のセッションで再度追加しないようにしてください。Magento - 商品がカートからすでに取り外されているかどうかを確認する方法
カートのオブジェクトには、すでにカートから製品が取り外されたことを伝えるものがありますか?
Magentoの項目が除去されているの記録を保持していない、あなたがする必要がありますありそれを自分でやってください。まずイベントを待ち受けます。
アプリ/ローカル/ YOURMODULEの/ etc/config.xmlに
<config>
...
<frontend>
<events>
<sales_quote_remove_item>
<observers>
<class>YOURMODULE/observer</class>
<method>removeQuoteItem</method>
</observers>
</sales_quote_remove_item>
</events>
</frontend>
...
アプリ/ローカル/ YOURMODULE /モデル/ Observer.php
<?php
class YOU_YOURMODULE_Model_Observer
{
public function removeQuoteItem(Varien_Event_Observer $observer)
{
$product = $observer->getQuoteItem()->getProduct();
// Store `$product->getId()` in a session variable
}
}
?>
拡張セッションクラスを作成します。 Mage_Core_Model_Session_Abstract
これを使用して、上記のオブザーバーで収集したプロダクトIDを保管してください。そのセッションオブジェクト(Mage::getSingleton()
が呼び出されます)を参照して、どの商品がカート内にあるかを確認できます。
はい、あなたは、このように、カート内の現在のアイテムを取得することができます: -
foreach ($session->getQuote()->getAllItems() as $item) {
$output .= $item->getSku() . "<br>";
$output .= $item->getName() . "<br>";
$output .= $item->getDescription() . "<br>";
$output .= $item->getQty() . "<br>";
$output .= $item->getBaseCalculationPrice() . "<br>";
$output .= "<br>";
}
このリンクは役に立ち http://www.magentocommerce.com/boards/viewthread/19020/
返信ありがとうございますが、アイテムがカートからある時点で削除されたかどうかはわかりません。私が何かを逃していない限り? – sulman
鮮やかなclockworkgeekちょうど私がしていたものです。非常にありがとう。私はできるときにそれを与えるだろう!ありがとう! – sulman