Drupal → Программно создать заказ

16.12.2014

Пример программного создания заказа с одним товаров

$uid = 1;
$product_id = 1;

// Создаём заказ
$order = commerce_order_new($uid, 'completed');
commerce_order_save($order);

// Создаём line item
$product = commerce_product_load($product_id);
$line_item = commerce_product_line_item_new($product, 1, $order->order_id);
commerce_line_item_save($line_item);

// Прикрепляем line item к заказу
$order->commerce_line_items['und'][] = (array)$line_item;
commerce_order_save($order);
Написанное актуально для
Commerce 1
Похожие записи

Комментарии

Я понимаю, что это мелочи, но почему бы не писать LANGUAGE_NONE вместо 'und'?

Гость
19.04.2015, 20:09

Для особо недалеких объясните, куда этот код вставлять, что бы работало?
В свой модуль?
Или внедрять в код модуля commerce_cart?
Или куда-то еще?
Объясните пожалуйста

туда, где вы хотите создать заказ

Гость
19.04.2015, 20:24

То есть я могу использовать этот код в своем модуле?

задавая такие вопросы я сомневаюсь :)

Гость
28.11.2017, 16:34

Доброго дня!

Код отлично работает, но как сделать все тоже самое, но с учетом скидки. Т.е. Чтобы цена в заказе оставалась с учетом скидок на товар

Гость
28.11.2017, 16:57

Вроде нашел:

rules_invoke_event('commerce_product_calculate_sell_price', $line_item);

Работает, но не уверен насколько правильно...

Можно вместо последнего commerce_order_save() вызвать commerce_cart_order_refresh()

Тихон
29.05.2019, 08:06

Может кому еще пригодится
Версия commerce 7.x-1.15
Создал заказ:

$order = commerce_cart_order_new($user->uid);

Добавить комментарий