我们有一个每 4 小时生成一次发货的流程。只有运送的物品才应开具发票,因此发票创建是此过程的一部分。
此过程在加载 Magento 环境的外部 PHP 脚本中运行,然后处理挂单。
创建发票时,创建时间会关闭 4 小时,因此看起来它没有使用存储时间。我已经查看了 Magento 代码并搜索了网络,但是,我没有看到任何迹象表明您应该在创建发票时设置正确的存储时间。
在脚本顶部的时区到商店的时区 -
date_default_timezone_set('America/Boston');
基于订单商店 ID 的 magento 环境 -
//Start environment emulation of the specified store
$storeId = $order->getStoreId();
$initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
稍后,为订购该货物,创建发票 -
// create an invoice for the invoiceable items
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice($toInvoice);
if (!$invoice->getTotalQty()) {
Mage::throwException(Mage::helper('core')->__('Invoice generation failed - no items to invoice.'));
}
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
$invoice->register();
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
$invoiceID = $invoice->getIncrementId();
有什么建议应该做不同的事情吗?
谢谢!