1

好的,我是个菜鸟,但我边走边学,希望能得到一些关于我可以检查的地方或我能做些什么来解决这个问题的建议。

问题:我在我的站点上使用 m2e-Pro 和帮助台扩展程序。我最近创建了一个简单的扩展,它使用观察者来监控销售何时完成,当销售完成时,它会创建一个帮助台工单并将工单分配给刚刚创建的订单。据我所知,该扩展程序非常有效......除了,我开始注意到 M2ePro 停止自动创建 magento 订单。M2epro 仍然与 eBay 同步,在 eBay 的 M2ePro 销售选项卡上,您可以看到 ebay 订单,但您必须手动创建订单。我删除了我的扩展程序,并且像魔术一样 m2ePro 再次开始自动创建订单。

由于我是初学者,我不确定在哪里检查,但很明显是我的扩展导致了这种情况。它也可能导致我没有看到的其他问题。

我的扩展:

应用程序/etc/modules/Trs_Orderhook.xml

<?xml version="1.0"?>
    <config>
        <modules>
            <Trs_Orderhook>
                <active>true</active>
                <codePool>local</codePool>
            </Trs_Orderhook>
        </modules>
</config>

应用程序/代码/本地/Trs/Orderhook/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Trs_Orderhook>
            <version>1.0</version>
        </Trs_Orderhook>

    </modules>

    <global>

        <models>
            <trs_orderhook>
                <class>Trs_Orderhook_Model</class>
            </trs_orderhook>
        </models>

       <events>
           <sales_order_place_after>
                <observers>
                    <trs_orderhook>
                        <class>trs_orderhook/observer</class>
                        <method>newTicket</method>
                    </trs_orderhook>
                </observers>
            </sales_order_place_after>
        </events>

    </global>

</config>

app/code/local/Trs/Orderhook/Model/Observer.php

<?php

class Trs_Orderhook_Model_Observer 
{
    public function newTicket($observer)
    {

        $order = $observer->getOrder();//get Order data
        $orderId = $order->getId(); //get the Order ID
        $orderNumber = $order->getIncrementId(); //get Order Increment ID
        $order_customer = $order->getCustomerName(); //get Customer Name
        $customer_email = $order->getCustomer()->getEmail();//get customer email
        $customer_id = $order->getCustomer()->getId();//get customer id
        $order_date = $order->getCreatedAtStoreDate()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);//Get order date

        //This is data used to create ticket from Frontend of site
        $dataFrontend = array(
                "name"=>"Ticket for order # " . $orderNumber , 
                "message"=>"Welcome Message", 
                "order_id" => $orderId,
                "f_order_number" => $orderNumber,
                "f_order_date" => $order_date,
                );

        //This is the data used to create ticket from Admin Side
        $dataAdmin = array(
                "customer_email"=>$customer_email , 
                "allowCC"=> "false", 
                "allowBCC"=> "false", 
                "customer_query" =>"", 
                "customer_id" =>  $customer_id , 
                "order_id" => $orderId , 
                "name" => "Repair Ticket for order # " . $orderNumber ,
                "status_id" =>  "1", 
                "priority_id" =>  "3", 
                "owner" =>  "2_0", 
                "reply_type" =>  "public", 
                "third_party_email" =>  "" ,
                "reply" =>  "Welcome Message" ,
                "store_id" =>  "1" ,
                "f_order_number" => $orderNumber,
                "f_order_date" => $order_date,
                "tags" =>  "" ,
                "fp_period_unit" =>  "minutes", 
                "fp_period_value" =>  "" ,
                "fp_execute_at" => "",
                "fp_is_remind" =>  "0" ,
                "fp_remind_email" =>  "",
                "fp_status_id" =>  "0" ,
                "fp_priority_id" =>  "0" ,
                "fp_owner"=>  "0_0"
                );  

         //This is to check if the order is coming from frontend or backend
        if(!empty($order->getRemoteIp())){

            //This creates the ticket for frontend based orders
            Mage::helper('helpdesk/process')->createFromPost($dataFrontend, helpDeskExtension_Helpdesk_Model_Config::CHANNEL_CONTACT_FORM);  
        }

        else{

            //This creates the ticket for backend/admin based order
            $user = Mage::getSingleton('admin/session')->getUser(); 
            $ticket = Mage::helper('helpdesk/process')->createOrUpdateFromBackendPost($dataAdmin, $user);

        }
    }
}

就像我说的那样,这段代码非常适合它应该做的事情。但它影响了我的 m2e-Pro 扩展自动创建订单的能力。我真的很感谢你的帮助!!!

4

0 回答 0