Я пытаюсь создать заказ от администратора (для телефонного заказа). В этой ситуации мне нужно получить идентификатор цитаты от наблюдателя. Я попробовал ниже наблюдателя (ей)
sales_quote_save_after
sales_model_service_quote_submit_success
sales_quote_product_add_after
Я пытался получить идентификатор с помощью этого,
$id = $observer->getQuoteId();
А также
Я пытался напечатать эти элементы цитаты, но я получаю пустые значения.
Может ли кто-нибудь помочь мне разобраться с этим?
В случае sales_quote_product_add_after quote_item передается Наблюдателю.
Чтобы получить цитату из этого Обозревателя и идентификатор:
public function yourMethod($observer)
{
$quoteItem = $observer->getEvent()->getQuoteItem();
$quote = $quoteItem->getQuote();
$id = $quote->getId();
}
В случае sales_model_service_quote_submit_success Вы прошли порядок и котировка
public function yourMethod($observer)
{
$order= $observer->getEvent()->getOrder();
$quote= $observer->getEvent()->getQuote();
$id = $quote->getId();
}
В случае sales_quote_save_after ты прошел котировка так как в Приложение / код / ядро / Mage / Продажа / Модель / 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();