【问题标题】:Magento 1.9 observer check if customer has at least order with complete statusMagento 1.9 观察者检查客户是否至少有完整状态的订单
【发布时间】:2018-09-30 12:20:23
【问题描述】:

我想使用观察者检查客户是否至少完成了一个订单以将订单状态更改为处理中(因此当客户按下下订单然后检查是否有任何订单完成然后将状态从待处理更改为处理) 这是我的代码,但此编辑状态为先前订单而不是现有订单

类 ChangeOrder_Observerstatus_Model_Observer {

public function autoOrderevent(Varien_Event_Observer $observer)
{


     $order = $observer->getEvent()->getOrder();

     $orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();

     $custAdmin = Mage::getSingleton('customer/session')->getCustomer(); 
     $custAdminId = $custAdmin->getId();

         $order_collection = Mage::getModel('sales/order')->getCollection()
           ->addFieldToSelect('*')
           ->addFieldToFilter('customer_id', $custAdminId)
           ;

            foreach($order_collection as $order)
            {
            if ($order->getState() == "complete") {

            $Is_Complet = true;

       }

            }
             if($Is_Complet)
       {
                   if(!Mage::registry('prevent_observer')):
                     Mage::register('prevent_observer',true);
                     $orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
                     $order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
                     $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, 'Payment Complete.');
                     $order->save();
               endif;

       }

}

}

【问题讨论】:

    标签: magento-1.9 observer-pattern


    【解决方案1】:

    使用事件“sales_order_place_after”。与其他结帐事件相比,它在任何情况下都会在下订单时触发。

    您描述的逻辑必须在观察者方法体中实现。

    【讨论】:

    • 这是我的代码,但最后一个订单的编辑不是现有订单
    • 如何获取客户订单数量。例如。如果客户在下订单之前尝试下第二个订单事件观察者显示第二个订单,如果客户下第二个订单,我需要给予折扣。
    • @Gem 您是想在结帐评论页面中向您的客户展示潜在的折扣,还是之后再应用?在任何情况下,您都应该将此作为一个单独的问题发布。告诉我,我很乐意回答。
    • 我的帐户出现意外错误,我无法发布任何新帖子,我应该在 Magento 社区或 Reddit 上发布吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多