如何以编程方式创建订单时使用折扣代码设置折扣金额?

时间:2016-01-31 12:09:00

标签: magento magento-1.7

我已经实际创建了一个订单并且在我检查销售下的订单时强行开具订单以完成订单 - >订单显示订单已完成但折扣代码始终为零金额。如何以产品的折扣价格显示给定折扣。

下面是我的代码工作正常,但需要添加折扣价格和折扣代码。

$customer = Mage::getModel('customer/customer');
    $customer->setStore($store);
    $quote = Mage::getModel('sales/quote');
    $quote->setStore($store);

     $quote->setCustomerEmail($_REQUEST['customerEmail']);
         $addressData = array(
        'firstname' => ' ',
        'lastname' => ' ',
        'street' => ' ',
        'city' => 'NULL',
        'postcode' => 'NULL',
        'telephone' => '123456',
        'country_id' => 'US',
        'region_id' => 12,  );
        $billingAddress = $quote->getBillingAddress()->addData($addressData);
        $shippingAddress = $quote->getShippingAddress()->addData($addressData);



    $productIds=array();
    $products=$_REQUEST['productIds'];
    $products=str_replace(array( '[', ']' ), '',$products);
    $productIds=explode(',',$products);
    $quant=$_REQUEST['quantity'];
    $quant=str_replace(array( '[', ']' ), '',$quant);
    $quantities=explode(',',$quant);
    $salesReport=array_combine($productIds,$quantities);

    foreach($salesReport as $ids=>$qty)
    {
        $product1 = Mage::getModel('catalog/product')->load($ids); /* HTC Touch Diamond */
        $buyInfo1 = array('qty' => $qty);
        $quoteItem=$quote->addProduct($product1, new Varien_Object($buyInfo1));
     }
    $shippingAddress->setCollectShippingRates(true)->collectShippingRates()
        ->setShippingMethod('freeshipping_freeshipping')
        ->setPaymentMethod('ebs');

    $quote->getPayment()->importData(array('method' => 'ebs'));
    $quote->setDiscountAmount('5');
    $quote->setCouponCode("SALE");
    $quote->collectTotals()->save();
    $service = Mage::getModel('sales/service_quote', $quote);
    $service->submitAll();
    $order = $service->getOrder();

1 个答案:

答案 0 :(得分:1)

问题,不是优惠券代码未应用,是否在Checkout上应用。

基本上,优惠券代码在“购物车”中设置,而不是在“结帐”中设置。

要使脚本正常运行,您必须继续执行更多步骤。 1 /将产品添加到客户的购物车中。 2 /申请优惠券代码。 3 /之前加载的购物车创建订单,之前添加了优惠券代码。

希望它有所帮助。

在购物车上申请优惠券代码:

Mage::getSingleton('checkout/cart')
->getQuote()
->setCouponCode('YOUR COUPON CODE HERE')
->collectTotals()
->save();