1

わかりました、私は非常に初心者ですが、私は進んで学んでおり、この問題を解決するためにどこで確認できるか、または何ができるかについてアドバイスをいただければ幸いです。

問題: サイトで m2e-Pro とヘルプ デスク拡張機能を使用しています。私は最近、オブザーバーを使用して販売がいつ完了したかを監視する単純な拡張機能を作成しました。販売が完了すると、ヘルプ デスク チケットが作成され、作成されたばかりの注文にチケットが割り当てられます。私が知る限り、拡張機能はうまく機能します...例外として、M2eProがmagento注文の自動作成を停止したことに気付き始めました。M2epro は引き続き eBay と同期し、eBay の M2ePro 販売タブで eBay の注文を確認できますが、手動で注文を作成する必要があります。拡張機能を削除すると、魔法のように m2ePro が自動的に注文を作成し始めました。

私は初心者なので、どこを確認すればよいかわかりませんが、拡張機能が原因であることは明らかです。また、私が見ていない他の問題を引き起こしている可能性もあります。

私の拡張子:

app/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>

アプリ/コード/ローカル/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