Этот код создает новый заказ с тестовым товаром, автоматически обрабатывая как авторизованных, так и неавторизованных пользователей.
| Код |
|---|
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
if (CModule::IncludeModule("sale")) {
$siteId = Bitrix\Main\Context::getCurrent()->getSite();
// Проверяем авторизацию пользователя
global $USER;
$userId = null;
if ($USER && $USER->IsAuthorized()) {
$userId = $USER->GetID();
}
// Создание корзины
$basket = Bitrix\Sale\Basket::create($siteId);
$item = $basket->createItem('catalog', 123);
$item->setFields([
'QUANTITY' => 2,
'CURRENCY' => 'RUB',
'PRICE' => 5000,
'NAME' => 'Тестовый товар'
]);
// Создание заказа
$order = Bitrix\Sale\Order::create($siteId, $userId);
$order->setBasket($basket);
$order->setPersonTypeId(1);
// Добавление доставки
$shipmentCollection = $order->getShipmentCollection();
$shipment = $shipmentCollection->createItem();
$shipment->setField('DELIVERY_ID', 1);
// Добавление оплаты
$paymentCollection = $order->getPaymentCollection();
$payment = $paymentCollection->createItem();
$payment->setField('PAY_SYSTEM_ID', 1);
// Сохранение
$result = $order->save();
if ($result->isSuccess()) {
echo 'Заказ #' . $order->getId() . ' успешно создан';
} else {
print_r($result->getErrors());
}
} else {
echo "Модуль sale не установлен";
}
?> |