Ручное создание заказа magento - цена товара оригинальная и конвертированная в валюту магазина - PullRequest
0 голосов
/ 28 июля 2011

Я использую приведенный ниже код для создания заказа в magento:

 $quote = Mage::getModel('sales/quote');
 $quote->setCheckoutMethod('guest')->save();
 $quote->setStore($store);
 $quote->setForcedCurrency(Mage::getModel('directory/currency')->load($storeCurrency));
 foreach ($productInCardList as $productItem) {
    $product = Mage::getModel('catalog/product')->load($productItem['id']);
    $product->setPrice($productItem['price']);
    $request = new Varien_Object();
    $request->setQty($productItem['qty']);
    $quote->addProduct($product, $request);
 }

 $quote->collectTotals();

 $quote->reserveOrderId();
 $quote->save();
 $service = Mage::getModel('sales/service_quote', $quote); 
 $service->submitAll();
 $orderObj = $service->getOrder();
 // ... code setting billing, shipping address, payment and shipping method.

Заказ создан, но он отображается в сетке продаж-> заказов с неверной ценой покупки GT (сумма в долларах США и евроодинаковы) same USD and EUR price on order view

Заказы, размещенные через интерфейс magento, имеют правильную GT Покупная цена, начальная цена в долларах США (92 доллара США) и конвертированная цена для магазина в евро (66 евро).Но заказы, созданные с использованием кода, показывают одинаковую сумму, конвертированную в евро (66 евро) и долларах США (66 долларов США).Буду очень признателен, если вы поможете мне правильно указать цену, указанную в заказе.

Спасибо за помощь

1 Ответ

0 голосов
/ 07 августа 2012

Чтобы преобразовать цену из валюты представления магазина, в которой размещен заказ, в базовую валюту (с которой настроен Magento и которая отображается в админке), используйте следующий код:

$basePrice = Mage::app()->getStore()->convertPrice($price, false, false);
...