Разработка на 1С-Битрикс Михаил Базаров
Блог-note

Добавление не существующего товара в корзину и заказ, 1С-Битрикс

Просмотров: 6056
Задача: нужно добавить в корзину товар, которого не существует в каталоге, с возможностью задать ему произвольные название и цену.

Все просто: так как методу CSaleBasket::Add нужно обязательно передать ID товара, мы можем сгенерировать случайное число с помощью PHP и использовать его в качестве ID.

CSaleBasket::Add не требуется наличие товара с таким ID в базе сайта. Если не хотите, чтобы сгенерированный ID совпал с уже существующим в базе, можно задать диапазон, который не будет использоваться. Например, от 10 до 11 миллиардов.

Добавление товара в корзину.

Теперь: там где вам нужно, на любом шаге или в любом обработчике добавляем код:


$pseudoId = rand(10000000000, 11000000000);
$arFields = array(
    "PRODUCT_ID" => $pseudoId,
    "PRODUCT_PRICE_ID" => '1',
    "PRICE" =>  '1000',
    "CURRENCY" => "RUB",
    "WEIGHT" => '',
    "QUANTITY" => 1,
    "LID" => LANG,
    "DELAY" => "N",
    "CAN_BUY" => "Y",
    "NAME" => "Абракадабра " . $pseudoId,
    "CALLBACK_FUNC" => "",
    "MODULE" => "",
    "NOTES" => "",
    "ORDER_CALLBACK_FUNC" => "",
    "DETAIL_PAGE_URL" => "",
    "VAT_INCLUDED" -> "N" // Не добавляем НДС
);
$arProps = array();
$arFields["PROPS"] = $arProps;
CSaleBasket::Add($arFields);

Здесь я добавил в название псевдотовара сгенерированный ID, чтобы проверить работоспособность и убедиться, что при каждом добавлении создается новый товар. Я запустил скрипт три раза, в результате в корзине появились три разных товара (цену и количество менял вручную).

Добавление в корзину и заказ не существующего товара в 1С-Битрикс 2

Заказ тоже оформился правильно, с содержимым, включающим несуществующие товары:

Добавление в корзину и заказ не существующего товара в 1С-Битрикс 1
Услуги

Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.

Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.

Включено в стоимость разработки

В цену уже заложено всё, что нужно для легального и быстрого запуска. Доплачивать за базовые вещи не придётся.

  • Лицензия и модули

    Лицензия на «1С-Битрикс» нужной редакции, дополнительные модули и видео-инструкции по работе с готовым проектом.

  • Скорость и SEO

    Оптимизация кода и сервера под быструю загрузку, базовая SEO-оптимизация и добавление сайта в поисковые системы.

Блог-note

Заметки по 1С-Битрикс