PHP Opencart-编辑订单

PHP Opencart-编辑订单,php,opencart,Php,Opencart,早上好 几天以来,我们一直在一家现有的webshop(opencart 1.5.6)中开发dropshipping服务。我已经准备好了SOAP请求(dropshipping),以便在存储中使用,唯一不确定的是所需方法的位置。由于您需要在确认订单之前完成付款,我们似乎需要调整价格 catalog/controller/checkout/confirm.php 然而,当我查找这个文件的代码时,我找不到任何线索来放置这个方法。 在目录/model/checkout/order.php中,我们可以找到

早上好

几天以来,我们一直在一家现有的webshop(opencart 1.5.6)中开发dropshipping服务。我已经准备好了SOAP请求(dropshipping),以便在存储中使用,唯一不确定的是所需方法的位置。由于您需要在确认订单之前完成付款,我们似乎需要调整价格

catalog/controller/checkout/confirm.php
然而,当我查找这个文件的代码时,我找不到任何线索来放置这个方法。 在
目录/model/checkout/order.php
中,我们可以找到addOrder()方法,看起来这是一个临时订单,直到您成功完成付款并按下确认按钮


有人能告诉我Opencart处理订单的方式以及如何在正确的位置以正确的方式调整代码吗?

我自己刚刚做了这件事,虽然我知道这个问题是很久以前提出来的,但我认为发布我的方法会有所帮助

我使用的方法是在一个单独的文件中执行一个函数,并从
catalog/controller/checkout/success.php

有两种方法可以做到这一点,要么直接更新文件,要么使用vQmod。我不打算在这里详细介绍vQmod,因为它在其他地方有广泛的介绍()。 后者是我的首选,因为它不需要修改原始文件,但我将涵盖两者

1) 要直接修改文件,只需打开它,在第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>

会话->数据['order_id']){]>
会话->数据);
]]>
加载成功页面时,这两种方法都会导致调用您的
sendOrderToDropship
函数;在该函数中,您可以执行所需的任何操作。通过发送
数据
数组,您还可以访问订单信息(关键是订单id)因此,您可以执行所需的任何处理


希望这能有所帮助!

你到底需要实现什么?在哪一点上你需要调用soap服务?我们有六个步骤,在步骤5中,你也需要选择付款选项。在步骤6之后,你必须完成付款,然后才能选择订单确认按钮。我需要在确认之后立即调用soap请求在这种情况下,您可以在会话中存储的所有订单数据未设置之前,将SOAP回调添加到
目录/controller/checkout/success.php
,以便您仍然可以访问它们。回调完成后,会话变量未设置,签出成功消息会像往常一样显示。很好,请尝试一下:)!在前一种情况下,我将我的方法放在步骤5的末尾,但这是一个相当大的错误。在您调用SOAP回调的地方,您可以访问订购的产品-获取它们的ID并按ID加载每个产品的详细信息。没有什么复杂的。。。