Этот код демонстрирует создание нового заказа в интернет-магазине на платформе 1С-Битрикс с использованием D7 API, включая инициализацию корзины, добавление товара, установку свойств заказа и обработку результата сохранения.
Код |
---|
<?php
// Подключаем пролог Битрикс для инициализации среды
require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php';
use Bitrix\Main\Loader;
// Проверяем подключение модуля sale
if (Loader::includeModule('sale')) {
// Создаем объект корзины для текущего сайта (s1)
$basket = Bitrix\Sale\Basket::create('s1');
// Добавляем товар в корзину (ID товара = 1)
$item = $basket->createItem('catalog', 1);
$item->setFields([
'QUANTITY' => 1, // Количество товара
'CURRENCY' => Bitrix\Currency\CurrencyManager::getBaseCurrency(), // Валюта по умолчанию
'LID' => Bitrix\Main\Context::getCurrent()->getSite(), // ID текущего сайта
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider', // Класс для работы с товарами
]);
// Получаем ID текущего пользователя
$userId = $GLOBALS['USER']->GetID();
// Создаем заказ с указанием сайта и пользователя
$order = Bitrix\Sale\Order::create('s1', $userId);
$order->setBasket($basket); // Привязываем корзину к заказу
$order->setPersonTypeId(1); // Устанавливаем тип плательщика (физическое лицо)
// Работаем со свойствами заказа
$propertyCollection = $order->getPropertyCollection();
$emailProp = $propertyCollection->getUserEmail(); // Получаем свойство "Email"
if ($emailProp) {
$emailProp->setValue('test@example.com'); // Устанавливаем значение email
}
// Сохраняем заказ и проверяем результат
$result = $order->save();
if ($result->isSuccess()) {
echo "Создан заказ #" . $order->getId(); // Выводим номер заказа
} else {
print_r($result->getErrors()); // Выводим ошибки если есть
}
} else {
echo "Модуль Интернет-магазина не установлен";
} |