如何在将产品添加到购物车后获得报价项目ID?

时间:2014-06-09 04:21:47

标签: magento checkout cart quote

每次将产品添加到购物车时,我都需要报价商品ID。我尝试了很多事件,他们返回引用项目对象但对象不包含引用项目ID,因为它仅在购物车保存到数据库时存在。那么是否有任何事件会返回引用项目对象的引用项目对象?

我使用了以下活动

checkout_cart_product_add_after
sales_quote_add_item

但它不会在

中返回quote_item_id
public function addItemToSalesModelInfo(Varien_Event_Observer $observer){
    $item = $observer->getEvent()->getQuoteItem();
}

4 个答案:

答案 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();
}