1

我有一个现场 Magento 1.5.0.1 网店,但存在以下问题:

我们收到了一个订单,该订单已通过 iDEAL(荷兰在线支付服务)付款,付款成功后会自动生成发票。我们也收到了我们银行账户上的金额。

唯一的问题是,我们无法完成订单,因为“应付总额”字段的金额高于 0(零)。这一定是我们的 iDEAL 模块中的一个错误(稍后会处理)。

有没有办法“强制”这个特定的订单是“完整的”,总到期字段设置为 0?

显然,这样做的 PHP 代码示例非常受欢迎(我自己也是一名程序员)。

4

1 回答 1

2

这可能会帮助你。

我们的模块之一的示例:

$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
if ($order->getTotalPaid() == 0) {
    $invoice = $order->prepareInvoice();
    $invoice->register()->capture();
    Mage::getModel('core/resource_transaction')
        ->addObject($invoice)
        ->addObject($invoice->getOrder())
        ->save();
    $order->save();

这将检查付款是否尚未注册(用户可以通过多次单击发送多个成功的请求)然后创建发票,注册它,捕获并保存发票和订单。

编辑 1

private function markOrderPayd($incrementId, $status) {
        $order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
        if ($order->getTotalPaid() == 0) {
            ... 
            $order->save();
            $invoice = $order->prepareInvoice();
            $invoice->register()->capture();
            ...
            Mage::getModel('core/resource_transaction')
                ->addObject($invoice)
                ->addObject($invoice->getOrder())
                ->save();
            $order->save();
            ...

        } else {
            ...
            $order->save();
        }
}

我猜你没有任何支票,所以生成了 2 张发票。

于 2012-03-16T07:58:19.313 回答