我有一个现场 Magento 1.5.0.1 网店,但存在以下问题:
我们收到了一个订单,该订单已通过 iDEAL(荷兰在线支付服务)付款,付款成功后会自动生成发票。我们也收到了我们银行账户上的金额。
唯一的问题是,我们无法完成订单,因为“应付总额”字段的金额高于 0(零)。这一定是我们的 iDEAL 模块中的一个错误(稍后会处理)。
有没有办法“强制”这个特定的订单是“完整的”,总到期字段设置为 0?
显然,这样做的 PHP 代码示例非常受欢迎(我自己也是一名程序员)。
这可能会帮助你。
我们的模块之一的示例:
$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 张发票。