2016-01-31 2 views
2

Я создал заказ прагматично и выставил его фактурно, чтобы завершить заказ, когда я проверяю заказ по продажам-> заказ, который показывает, что выполненный заказ, но код скидки всегда с нулевой суммой. Как показать данную скидку со скидкой по продуктам.Как установить скидку с кодом скидки при создании заказа программно?

ниже мой код работает нормально, но вам нужно добавить скидку со скидкой.

$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

Проблема, не в том, что код купона не применяется, заключается в том, что он применяется в Checkout.

В принципе, коды купонов установлены в «Корзина», а не в «Оформить заказ».

Чтобы ваш сценарий работал нормально, вам нужно выполнить дополнительные действия. 1/Добавить продукт в корзину вашего клиента. 2/Применить код купона. 3/Создать заказ из корзины, загруженной ранее с добавленным ранее кодом купона.

Надеюсь, это поможет.

Чтобы Применить код купона Корзина:

Mage::getSingleton('checkout/cart') 
->getQuote() 
->setCouponCode('YOUR COUPON CODE HERE') 
->collectTotals() 
->save(); 
Смежные вопросы