【问题标题】:Magento get quote id from observerMagento 从观察者那里获取报价 ID
【发布时间】:2015-05-05 07:20:55
【问题描述】:

我正在尝试从管理员创建订单(用于电话订单)。在这种情况下,我需要从观察者那里获取报价 ID。我在观察者下面试过

sales_quote_save_after
sales_model_service_quote_submit_success
sales_quote_product_add_after 

我试图用这个来获取 id,

$id = $observer->getQuoteId();

并且 我试图打印那个报价项目,但我得到的是空值。

谁能帮我解决这个问题?

【问题讨论】:

    标签: php magento observers


    【解决方案1】:

    sales_quote_product_add_after 事件中,quote_item 被传递给观察者。 要从这个观察者那里得到报价和 id:

    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 您在 app/code/core/Mage/Sales/Model/Quote.php 中通过 quote /p>

    protected $_eventObject = 'quote';
    

    然后在你的观察者中你可以得到它:

    public function yourMethod($observer)
    {
       $quote= $observer->getEvent()->getQuote();
       $id = $quote->getId();
    }
    

    【讨论】:

      【解决方案2】:

      我使用以下解决方案解决了这个问题, 我用了下面的事件

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

      【讨论】:

        猜你喜欢
        • 2020-12-15
        • 2016-09-01
        • 2019-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多