这是否违反了Magento订单处理的逻辑,我还没有完全解决...

客户接收许多电话订单,并通过第三方门户或通过手持PDQ终端付款。随后,这些订单在不付款方式的情况下在Magento中提高。

没有付款方式的订单,似乎无法为...生成发票吗?

实施这些类型订单的发票能力的推荐方法是什么。使用的付款网关提供的扩展名无法处理这些类型的订单。

试图有任何范围 自动生成发票 对于未选择付款方式的订单,这可能会起作用吗?

还是可以实现一种方法,使您可以随时手动创建发票?

提前致谢。

有帮助吗?

解决方案

因此,如果我正确地提出了您的问题,则该订单是通过管理界面在Magento中手动创建的吗?

我自己没有做这个,所以不能提供确切的细节,但是我认为您需要进行“离线捕获”

请参阅此页面: http://www.magentocommerce.com/wiki/welcome_to_the_magento_user_ser_s_guide/chapter_8

从给定的页面:

捕获离线 - 提交发票时,系统将不会捕获付款。可以假定付款将直接通过网关捕获,您将不再可以选择通过Magento捕获这笔付款。您将有能力创建信用备忘录,但是您将无法选择发票(即使订单使用在线付款,该发票本质上是脱机发票)。

添加, 这篇博客文章 从Inchoo显示如何通过代码进行操作:

为了完整性(由于链接消失(gasp)),这是他们的代码:

(请注意,这是Inchoo的博客条目,对我自己没有荣誉)

也许您想通过某些自定义脚本或CRON脚本创建发票。这是代码的一个非常有用的示例。首先,我们必须在模型“销售/订单”上加载一些订单,这非常容易。

try {
if(!$order->canInvoice())
{
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice.'));
}
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
if (!$invoice->getTotalQty()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.'));
}
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
$invoice->register();
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
}
catch (Mage_Core_Exception $e) {
}

您会注意到,我们设定了在线捕获的选项。此选项取决于付款方式。一些付款方式支持在线捕获,有些则不支持捕获。如果要设置离线捕获,则可以使用下一行代码来执行此操作:

$invoice->setRequestedCaptureCase(
Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE
);
许可以下: CC-BY-SA归因
scroll top