Битрикс D7 — как добавить товар с произвольной ценой

Нам понадобится параметр CUSTOM_PRICE = 'Y', при помощи этого, наш PRICE теперь можно делать каким угодно, какая бы стоимость у вас не была в каталоге.

Код выглядит так:

//ID товара
$productId = 111;
$quantity = 1;

$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
   \Bitrix\Sale\Fuser::getId(), 
   \Bitrix\Main\Context::getCurrent()->getSite()
);

if ($item = $basket->getExistsItem('catalog', $productId)){
   $item->setField('QUANTITY', $item->getQuantity() + $quantity);
}else{
   $item = $basket->createItem('catalog', $productId);
   $item->setFields([
      'QUANTITY' => $quantity,
      'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
      'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
      'PRICE' => 123, // цена
      'CUSTOM_PRICE' => 'Y',
      'NAME' => 'Общая стоимость за услуги'
   ]);
}

$basket->save();

Вот и всё, товар добавлен в корзину. Удобно применять данный код при «кастомном» оформлении заказа через API.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Один комментарий

  1. Комментарий про то как выводить комментарий 🙂
    Перед
    $r = $order->save();
    Добавить
    $order->setField(‘USER_DESCRIPTION’, $_REQUEST[‘comment’]);
    где $_REQUEST[‘comment’] — ваш комментарий

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *