Есть стандартный компонент битрикса корзины. Но оформление заказа написано полностью на API.(То есть начиная с кнопки оформить заказ внутренности компонента не используются)
Соответственно создаётся объект $order в него передаётся текущая корзина пользователя $basket
Далее в зависимости от того что выбрал пользователь создаётся доставка, а именно вот так:
if (($delivery == 2) or ($delivery == 3)) {
$service = Delivery\Services\Manager::getById($delivery);
$shipment->setFields(array(
"DELIVERY_ID" => $service["ID"],
"DELIVERY_NAME" => $service["NAME"],
));
$shipment->setBasePriceDelivery($deliveryCost);
} else {// Иначе создаём служебную доставку
$service = Delivery\Services\Manager::getById(Delivery\Services\EmptyDeliveryService::getEmptyDeliveryServiceId());
$shipment->setFields(array(
"DELIVERY_ID" => $service["ID"],
"DELIVERY_NAME" => $service["NAME"],
));
}
Как мне передать и каким способом адрес доставки? Сейчас он не фиксируется в заказе и следовательно не виден в заказе из админки.
Поддержка битрикс пока что ответила так:
"Адрес доставки" это свойство заказа, его название можно получить и обновить $propertyValue->setField();
https://dev.1c-bitrix.ru/api_d7/bitrix/sale/techni...
https://dev.1c-bitrix.ru/api_d7/bitrix/sale/techni...
Толкьо не понятно к чему применить setField и какой ключь в него передавать чтобы установить именно адрес доставки.