【问题标题】:How to add store credit to order programmatically Magento?如何添加商店信用以编程方式订购 Magento?
【发布时间】:2016-09-27 21:03:57
【问题描述】:

我正在创建一个脚本,用于从第三方获取订单数据。一切正常,问题是我无法将 storecredit 添加到订单中。有没有办法按顺序添加商店信用并从总计中减去它们。这是我的代码:

$order->setDiscountAmount($total_discount)->setBaseDiscountAmout($total_discount);
                $order->setSubtotal($total_amount)->setBaseSubtotal($total_amount);
                $order->setGrandTotal($total_amount-$total_discount)->setBaseGrandTotal($total_amount-$total_discount);
                $order->save();

【问题讨论】:

  • 太好了,那么当您运行此代码时看到的错误是什么?您能否给我们一些示例输入/输出以了解它在工作时应该如何工作:您能否让我们知道您尝试使其自己工作的内容? (包括任何非工作示例)?我们不会重复您的努力吗?
  • @TarynEast 我没有收到任何错误,订单正在完美保存,但我无法添加商店信用,我需要添加商店信用的指导,假设总计 2200 并且有人拥有商店信用 10那么它应该以 magento 管理顺序显示,总计为 2200-10
  • 然后你得到...?
  • 我认为你没有明白我的意思,我只需要在订单总额中插入商店信用。
  • 我认为你没有得到我的。对 Stack Overflow 中的问题有一个既定的期望。如果您不遵循它(或不能遵循),那么您的问题很可能得不到回答。我正在努力帮助您回答您的问题……通过遵循既定规则。如果你喜欢,这里是完整的描述:stackoverflow.com/help/how-to-ask

标签: php mysql magento magento-1.9.1


【解决方案1】:

我想做同样的事情,看着 cmets,我觉得这个线程刚刚死掉很荒谬。要么你是来帮助和协助的,要么你不是。如果线程因为您强制执行问题标准而死亡,这有帮助吗?

这里是怎么做的。

$balance = Mage::getModel('enterprise_customerbalance/balance')
            ->setWebsiteId(Mage::app()->getStore($quote->getStoreId())->getWebsiteId())
            ->setCustomerId($quote->getCustomerId())
            ->loadByCustomer();

        if ($balance && $balance >= $creditTobeUsed) {
            $quote->setUseCustomerBalance(true);
            $quote->setCustomerBalanceInstance($balance);
        }

        $quote->collectTotals();
        $quote->save();

Enterprise_CustomerBalance_Block_Checkout_Onepage_Payment_Additional 有一些您可以使用的方法

最后,当应用信用时,在结帐时确保您设置以下内容

<input type="hidden" type="text" value="1"  name="payment[use_customer_balance]" class="input-text" />

【讨论】:

    猜你喜欢
    • 2018-04-22
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2014-08-18
    相关资源
    最近更新 更多