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 您已经通过了 orderquote

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();