小编bah*_*hoo的帖子

创建发票和捕获货物

我们有一些API集成,会定期为订单创建货件.

我想做的是创建一个观察员,以便在创建此货件时创建适当的发票和捕获付款.我把它绑在sales_order_shipment_save_after:

public function autoInvoice($observer){

    $shipment = $observer->getEvent()->getShipment();
    $order = $shipment->getOrder();

    $items = $shipment->getItemsCollection();

    $qty = array();

    foreach($items as $item)
        $qty[$item['order_item_id']] = $item['qty'];

    $invoice = Mage::getModel('sales/order_invoice_api');

    $invoiceId = $invoice->create($order->getIncrementId(), $qty);

    $invoice->capture($invoiceId);

}
Run Code Online (Sandbox Code Playgroud)

(实际捕获的代码有些天真,但请耐心等待.)

奇怪的是,这段代码运作正常 - 货件已创建,发票已创建并标记为"付费".但是,订单本身仍处于不确定状态,并保持"待定"状态.

进一步研究,订单上的物品本身具有订购和发货的正确数量,但没有已开票的数量清单.我认为这是造成状态挂断的原因.就好像qty_invoicedsales_order_item表上的某个表格会以某种方式被还原.

同样,发票显示正确的项目,所以我在这里很困惑.

有任何想法吗?

api invoice magento observer-pattern

5
推荐指数
1
解决办法
4204
查看次数

加载数千个代码以映射到Magento中的购物车规则

我一直在看salesrule_coupon表,我发现如果规则本身是"自动"类型,我可以将许多优惠券代码映射到单个规则.这非常方便,因为我的客户需要我们定期将代码与数据源同步.

因此,在加载这些数千个代码(使用自定义模块和直接SQL调用)时,它们加载得很好,我可以测试并验证它们中的许多代码是否正常工作.

然而,在这些代码列表中,我们停止工作.前30个左右可以正常工作,但此后,Magento说代码无效.

我还在调试这个,如果我发现任何东西,我会发布更新......但是我已经尝试过并且经历了两个单独的价格规则.第31条代码中有一条规则,第39条则是第二条规则.

真正奇怪的是,如果我将这些代码更改为指向不同的规则(少于30个代码的规则),则会识别并接受它们.没有其他改变,我可以确定.

关于如何在这里进行的任何想法?有没有人尝过这个?这是一个有趣的.

magento coupon

4
推荐指数
1
解决办法
1245
查看次数

标签 统计

magento ×2

api ×1

coupon ×1

invoice ×1

observer-pattern ×1