Я создаю новый заказ программно. Я хочу добавить новый пользовательский параметр
при создании нового заказа, но я понятия не имею. Как создать кастом
вариант и как добавить пользовательский вариант в коде ниже, пожалуйста, помогите мне.
<?php
require_once ‘app/Mage.php’;Mage::app();
$quote = Mage::getModel(‘sales/quote’)
->setStoreId(Mage::app()->getStore(‘default’)->getId());
if ('existing') {
// for customer orders:
$customer = Mage::getModel(‘customer/customer’)
->setWebsiteId(1)
->loadByEmail(‘[email protected]’);
$quote->assignCustomer($customer);
} else {
// for guest orders only:
$quote->setCustomerEmail(‘[email protected]’);
}
// add product(s)
$product = Mage::getModel(‘catalog/product’)->load(4);
$buyInfo = array(
‘qty’ => 1,
// custom option id => value id
// or
// configurable attribute id => value id
);
$quote->addProduct($product, new Varien_Object($buyInfo));
$addressData = array(
‘firstname’ => ‘Test’,
‘lastname’ => ‘Test’,
‘street’ => ‘Sample Street 10′,
‘city’ => ‘Somewhere’,
‘postcode’ => ’123456′,
‘telephone’ => ’123456′,
‘country_id’ => ‘US’,
‘region_id’ => 12, // id from directory_country_region table
);
$billingAddress = $quote->getBillingAddress()->addData($addressData);
$shippingAddress = $quote->getShippingAddress()->addData($addressData);
$shippingAddress->setCollectShippingRates(true)->collectShippingRates()
->setShippingMethod(‘flatrate_flatrate’)
->setPaymentMethod(‘checkmo’);
$quote->getPayment()->importData(array(‘method’ => ‘checkmo’));
$quote->collectTotals()->save();
$service = Mage::getModel(‘sales/service_quote’, $quote);
$service->submitAll();
$order = $service->getOrder();
printf(“Created order %s\n”, $order->getIncrementId());
?>
Я не уверен, что вы на самом деле хотите сделать … но я думаю, вы ищете что-то подобное
вместо этого…
$product = Mage::getModel(‘catalog/product’)->load(4);
$buyInfo = array(
‘qty’ => 1,
// custom option id => value id
// or
// configurable attribute id => value id
);
ИСПОЛЬЗУЙТЕ И ИСПОЛЬЗУЙТЕ ЭТОТ КОД С САЙТА INCHOO
безусловно, вам нужно настроить его в соответствии с вашими потребностями …
$item = $this->_getOrderCreateModel()->getQuote()->getItemByProduct($this->_product);$item->addOption(new Varien_Object(
array(
'product' => $this->_product,
'code' => 'option_ids',
'value' => '5' /* Option id goes here. If more options, then comma separate */
)
));
надеется, что это даст вам направление двигаться дальше …
Других решений пока нет …