每次将产品添加到购物车时,我都需要报价商品ID。我尝试了很多事件,他们返回引用项目对象但对象不包含引用项目ID,因为它仅在购物车保存到数据库时存在。那么是否有任何事件会返回引用项目对象的引用项目对象?
我使用了以下活动
checkout_cart_product_add_after
sales_quote_add_item
但它不会在
中返回quote_item_idpublic function addItemToSalesModelInfo(Varien_Event_Observer $observer){
$item = $observer->getEvent()->getQuoteItem();
}
答案 0 :(得分:3)
您正在使用正确的事件,即
checkout_cart_product_add_after
要访问报价项ID,您需要使用,
$item = $observer->getQuoteItem()
您可以访问所有引用项目信息,如
$item->getProductId()
等。
答案 1 :(得分:2)
如果购物车中已存在合适的商品,则商品ID仅可用checkout_cart_product_add_after
。你实际上必须分两步完成。收听checkout_cart_product_add_after
并在项目中添加标记。
$item = $observer->getQuoteItem();
$item->setLastAdded(true);
然后听sales_quote_item_save_after
并在设置标志时将id添加到会话中(或做任何事情)。
$item = $observer->getItem();
if ($item->getLastAdded()) {
Mage::getSingleton('checkout/session')->setLastAddedItemId($item->getId());
}
答案 2 :(得分:0)
将商品添加到购物车后获取报价和商品数量。
//Save your cart
$cart->save();
//use checkout/session
$cart1=Mage::getSingleton('checkout/session');
$cart1->setCartWasUpdated(true);
// Quote ID
$result_array["quoteid"]=$quoteid=$cart1->getQuoteId();
// Items count
$result_array["items_count"]=Mage::helper('checkout/cart')->getCart()->getItemsCount();
答案 3 :(得分:-1)
要获取报价ID和报价的商品ID,您可以使用以下代码。
$currentcart = Mage::getModel('checkout/cart');
$quote = $currentcart->getQuote();
$quoteItemId = $quote->getEntityId();
获取报价的商品ID
$quoteItems = $quote->getAllVisibleItems();
foreach ($quoteItems as $item) {
$ItemId = $item->getId();
}