Magento 从观察者处获取报价 ID
Magento get quote id from observer
我正在尝试从管理员创建订单(用于电话订单)。在这种情况下,我需要从观察者那里获取报价 ID。我试过下面的观察者
sales_quote_save_after
sales_model_service_quote_submit_success
sales_quote_product_add_after
我试图用这个获取 id,
$id = $observer->getQuoteId();
还有
我尝试打印该报价项目,但我得到的是空值。
谁能帮我解决这个问题?
在事件 sales_quote_product_add_after 中,quote_item 被传递给观察者。
要从这个 Observer 和 id 中获取报价:
public function yourMethod($observer)
{
$quoteItem = $observer->getEvent()->getQuoteItem();
$quote = $quoteItem->getQuote();
$id = $quote->getId();
}
如果 sales_model_service_quote_submit_success 您已经通过了 order 和 quote
public function yourMethod($observer)
{
$order= $observer->getEvent()->getOrder();
$quote= $observer->getEvent()->getQuote();
$id = $quote->getId();
}
如果 sales_quote_save_after 你在 app/code/core/Mage/Sales/Model/Quote 中通过了 quote。 php
protected $_eventObject = 'quote';
然后在你的观察者中你可以得到它:
public function yourMethod($observer)
{
$quote= $observer->getEvent()->getQuote();
$id = $quote->getId();
}
我使用以下解决方案解决了这个问题,
我使用了下面的事件
sales_quote_item_set_product
实际上我尝试为可配置产品设置价格对应关联产品的价格。我的观察者是,
$event = $observer->getEvent();
$quote_item = $event->getQuoteItem();
$storeId = $quote_item->getStoreId();
if(Mage::app()->getStore()->isAdmin()) {
$item = $observer->getQuoteItem();
$product = $observer->getProduct();
$sku = $product->getSku();
$productDetails = Mage::getModel('catalog/product')
->setStoreId($storeId)
->loadByAttribute('sku',$sku);
$price = $productDetails->getPrice();
$sprice = $productDetails->getFinalPrice();
$item->setOriginalCustomPrice($sprice);
$item->setOriginalPrice($price);
}
$quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
我正在尝试从管理员创建订单(用于电话订单)。在这种情况下,我需要从观察者那里获取报价 ID。我试过下面的观察者
sales_quote_save_after
sales_model_service_quote_submit_success
sales_quote_product_add_after
我试图用这个获取 id,
$id = $observer->getQuoteId();
还有 我尝试打印该报价项目,但我得到的是空值。
谁能帮我解决这个问题?
在事件 sales_quote_product_add_after 中,quote_item 被传递给观察者。 要从这个 Observer 和 id 中获取报价:
public function yourMethod($observer)
{
$quoteItem = $observer->getEvent()->getQuoteItem();
$quote = $quoteItem->getQuote();
$id = $quote->getId();
}
如果 sales_model_service_quote_submit_success 您已经通过了 order 和 quote
public function yourMethod($observer)
{
$order= $observer->getEvent()->getOrder();
$quote= $observer->getEvent()->getQuote();
$id = $quote->getId();
}
如果 sales_quote_save_after 你在 app/code/core/Mage/Sales/Model/Quote 中通过了 quote。 php
protected $_eventObject = 'quote';
然后在你的观察者中你可以得到它:
public function yourMethod($observer)
{
$quote= $observer->getEvent()->getQuote();
$id = $quote->getId();
}
我使用以下解决方案解决了这个问题, 我使用了下面的事件
sales_quote_item_set_product
实际上我尝试为可配置产品设置价格对应关联产品的价格。我的观察者是,
$event = $observer->getEvent();
$quote_item = $event->getQuoteItem();
$storeId = $quote_item->getStoreId();
if(Mage::app()->getStore()->isAdmin()) {
$item = $observer->getQuoteItem();
$product = $observer->getProduct();
$sku = $product->getSku();
$productDetails = Mage::getModel('catalog/product')
->setStoreId($storeId)
->loadByAttribute('sku',$sku);
$price = $productDetails->getPrice();
$sprice = $productDetails->getFinalPrice();
$item->setOriginalCustomPrice($sprice);
$item->setOriginalPrice($price);
}
$quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();