【问题标题】:Add cash on delivery price while creating the order programatically in magento在 magento 中以编程方式创建订单时添加货到付款价格
【发布时间】:2014-07-01 05:20:11
【问题描述】:

我创建了一个在 magento 中创建订单的模块。一切正常。现在我想在订单中添加货到付款价格。当我通过 magento 默认模块创建订单时,它会在管理面板的订单详细信息页面的订单总计列中添加一行。我可以找到管理员设置的货到付款价格并将其添加到总计中。但目前没有显示额外金额是货到付款。谁能告诉我在管理面板订单详细信息页面中添加此选项的功能。

我发现当 sales_flat_order 表的 cod_fee 列中有值时,它会显示 COD 费用。有没有插入 cod_fee 值的函数。

【问题讨论】:

  • Magento 不允许在付款时收费,但有办法解决,请参阅此扩展程序 magentocommerce.com/magento-connect/payment-method-charge.html
  • @KrishnaSunuwar 默认 magento 模块提供此功能。当我通过 magento 默认模块创建订单时,它会在管理面板的订单详细信息页面的订单总计列中添加一行。我只想知道magento是如何做到的。他们有任何可用的功能吗?
  • 所以你的问题有所不同。而是货到付款方式的价格,您想保存付款方式为货到付款方式的订单吗?
  • @KrishnaSunuwar 订单已成功保存。它还将付款方式显示为货到付款,但未在总计中添加 COD 价格。
  • 在这种情况下,您可能正在使用自定义模块来收取支付模块的费用。

标签: php magento


【解决方案1】:

我发现 cod_fee 是 sales_flat_order 表中的自定义列。在创建订单时,我无法找到将数据插入此列的任何函数或方法。所以我在创建订单后更新该行。我用于此的代码是

if($paymentMethodId == "cashondelivery") {
            $data = array('cod_fee'=>$cashOnDeliveryRate,'base_cod_fee' => $cashOnDeliveryRate);
            $myOrder = Mage::getModel('sales/order')->loadByIncrementId($reservedOrderId);
            $myOrder->addData($data);
            try {
                $myOrder->save();

            } catch (Exception $e){
                echo $e->getMessage();
            }
        } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多