Php 导致M2ePro问题的自定义扩展
好的,我是一个非常好的noob,但我在学习的过程中,我会喜欢一些建议,我可以在哪里检查或我可以做什么来解决这个问题 问题:我在我的网站上使用m2e Pro和帮助台扩展。我最近创建了一个简单的扩展,它使用observer来监控销售何时完成,销售完成后,它会创建一个帮助台记录单,并将记录单分配给刚刚创建的订单。据我所知,扩展工作得很好。。。除此之外,我开始注意到M2ePro停止自动创建magento订单。M2epro仍与易趣同步,在易趣的M2epro销售选项卡上,您可以看到易趣订单,但您必须手动创建订单。我删除了我的扩展,像魔术一样,m2ePro再次开始自动创建订单 由于我是一个初学者,我不确定去哪里检查,但很明显,我的扩展导致了这一点。它也可能导致其他我没有看到的问题 我的分机号码: app/etc/modules/Trs\u Orderhook.xmlPhp 导致M2ePro问题的自定义扩展,php,magento,magento-1.9,m2e-pro,Php,Magento,Magento 1.9,M2e Pro,好的,我是一个非常好的noob,但我在学习的过程中,我会喜欢一些建议,我可以在哪里检查或我可以做什么来解决这个问题 问题:我在我的网站上使用m2e Pro和帮助台扩展。我最近创建了一个简单的扩展,它使用observer来监控销售何时完成,销售完成后,它会创建一个帮助台记录单,并将记录单分配给刚刚创建的订单。据我所知,扩展工作得很好。。。除此之外,我开始注意到M2ePro停止自动创建magento订单。M2epro仍与易趣同步,在易趣的M2epro销售选项卡上,您可以看到易趣订单,但您必须手动创建
<?xml version="1.0"?>
<config>
<modules>
<Trs_Orderhook>
<active>true</active>
<codePool>local</codePool>
</Trs_Orderhook>
</modules>
</config>
真的
地方的
app/code/local/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>
1
Trs_Orderhook_模型
trs_orderhook/观察员
纽蒂克特
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);
}
}
}
尝试将您的observer方法包装在一个Try-catch中,并在magentos日志文件中记录所有异常,并检查php日志中是否存在任何错误。好的,所以我不确定Try-catch是什么,所以我用谷歌搜索了它。。。似乎我需要一些测试来使用它。我看到的每个例子本质上都在说:这是exception的值。现在尝试一些东西,如果它符合条件,抛出异常,否则继续。。。所以我不确定我测试它是为了触发一个异常。我的困惑有什么意义吗?试着把你的observer方法包装在一个Try-catch中,在magentos日志文件中记录任何异常,并检查php日志中是否有任何错误。好的,所以我不确定Try-catch是什么,所以我用谷歌搜索了它。。。似乎我需要一些测试来使用它。我看到的每个例子本质上都在说:这是exception的值。现在尝试一些东西,如果它符合条件,抛出异常,否则继续。。。所以我不确定我测试它是为了触发一个异常。我的困惑有什么意义吗?