早安,斯塔克斯,
几天以来,我们一直在一个现有的网上商店(openart 1.5.6)内的dropshipping服务工作。我已经准备好了在商店中使用的soap请求(dropshipping),唯一不确定的是所需方法的位置。因为在确认订单之前你需要完成付款,所以我们似乎需要调整
catalog/controller/checkout/confirm.php
然而,当我查找这个文件的代码时,我找不到任何线索在哪里放置方法。在catalog/model/checkout/order.php
中,我们可以找到addOrder()方法,看起来这是一个临时订单,直到您成功完成付款并按下确认按钮。
谁能告诉我openart处理订单的方式以及如何在正确的位置以正确的方式调整代码?
我自己刚刚这样做了,虽然我知道这个问题是一段时间以前的问题,但我认为发布我的方法会有所帮助。
我使用的方法是在一个单独的文件中执行一个函数,并从catalog/controller/checkout/success.php
有两种方法可以做到这一点,要么通过直接更新文件,要么使用vQmod。我不打算在这里详细介绍vQmod,因为它在其他地方有广泛的介绍(https://code.google.com/p/vqmod/)。我更喜欢后者,因为它不需要修改原始文件,但我将讨论这两种方法。
要直接修改文件,只需打开它,在第7行您将看到if (isset($this->session->data['order_id'])) {
在这行之后,您可以立即添加钩子。我用了
include("catalog/controller/checkout/dropship_order.php");
sendOrderToDropship($this->session->data);
2)或者,使用以下vQmod代码在动态
上执行相同的操作<file name="catalog/controller/checkout/success.php" error="log">
<operation error="skip">
<search position="after"><![CDATA[if (isset($this->session->data['order_id'])) {]]></search>
<add><![CDATA[
include("catalog/controller/checkout/dropship_order.php");
sendOrderToDropship($this->session->data);
]]></add>
</operation>
</file>
这两种方法都将导致在加载成功页面时调用sendOrderToDropship
函数;在那个函数中,你可以执行任何你需要的动作。通过发送data
数组,您还可以访问订单信息(关键是订单id),这样您就可以执行所需的任何处理。
希望有帮助!