【发布时间】:2011-06-30 16:03:19
【问题描述】:
我实际上不明白为什么,但我的发票代码在完成时并没有显示正确的总计值。
代码是:
public function invoice($realOrderId){
$orderObj = Mage::getModel('sales/order')->loadByIncrementId($realOrderId);
$invoice = Mage::getModel('sales/service_order', $orderObj)->prepareInvoice();
$invoice->addComment('Automatic invoice', false);
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
$invoice->register();
$invoice->getOrder()->setIsInProcess(true);
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
$invoice->sendEmail();
$invoice->setEmailSent(true);
$invoice->save();
}
代码可以正常工作,但不会产生错误,但订单详细信息中的总数未显示付款已被捕获!
关于可能是什么问题的任何建议?
【问题讨论】:
-
总数有多不正确?他们是按税额计算的吗? (我想我也有类似的经历)
-
订单页面(管理员视图)中的总数没有考虑到付款已完成的事实,在“总付款”部分,他们列出了 0,00
-
抱歉,我不是这么想的。也许订单对象没有与之关联的付款。或者付款的
_canCapture是假的。或者总计没有以某种方式复制到发票中。想一想,有很多可能性。 -
我正在检查,据我所知,_canCapture 返回 true,但是,是的,似乎有人没有将总数移到发票中,表格显示专用于即使方法 register(); 发票总额为空;应该通过方法 pay() 处理它;在同一个模型中定义,可能是一些非常愚蠢和明显的东西,会阻止正确的过程