Битрикс — как добавить свойства товара в корзину

Добавление свойств в корзину нужно использовать, когда по какой-то причине функционала торговых предложений (SKU) недостаточно.

Как в битриксе добавить свойства товара в корзину и заказ

Рассмотрим, как это работает на примере самописного решения.
Add2BasketByProductID — в качестве одного из параметра принимает массив свойств, он то нам и нужен:

Add2BasketByProductID(
	$_REQUEST['id'],
	$_REQUEST['count'],
	$propArr
);

Нас в данном коде интересует $propArr. В общем-то он имеет незамысловатую структуру в виде массива:

$propArr[] = array("NAME" => "Размер", "CODE" => "SIZE_CHECK", "VALUE" => $_REQUEST['size']);

Имя, код и значение — соответственно NAME, CODE, VALUE.

Полностью страница обработчик нашего AJAX будет иметь такой вид:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

if (CModule::IncludeModule("catalog")) {
	if ($_REQUEST['id'] && $_REQUEST['count']) {
		$propArr = array();
		if (!empty($_REQUEST['size'])) {
			$propArr[] = array("NAME" => "Размер", "CODE" => "SIZE_CHECK", "VALUE" => $_REQUEST['size']);
		}

		Add2BasketByProductID(
			$_REQUEST['id'],
			$_REQUEST['count'],
			$propArr
		);
	}
}

Если $_REQUEST[‘size’] передан в запросе — добавляем свойство в корзину и оформление заказа.
Код на JS будет выглядеть так:

$(document).ready(function(){

	$('.js-ajax-prop').on('click', function(){

		let $id = $(this).data('id'),
			$count = $('#count').val(),
			$size = $('#size').val();

		$.ajax({
			url: '/include/ajax_cart.php',
			type: 'get',
			cache: false,
			data: {
				'id': $id,
				'count': $count,
				'size': $size
			}
		}).done(function(data){
			$('.column1inner').html(data);
			RSEC_BASKET_Refresh();
			return false;
		});

		return false;
	});
});

Битрикс позволяет подхватывать свойства товара передаваемые в заказ таким образом. Правда на стоимость товара это никак не влияет, лишь в качестве дополнительной информации. Данный функционал встречаю на сайтах, которые не используют логику SKU и торговых предложений, где 1 товар = 1 выбранной свойство (например, размер 42).

автор: Dmitriy

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

- Создание сайтов на 1С-Битрикс любой сложности
- Вёрстка макетов Figma, Photoshop, Zeplin
- Поддержка проектов на Битриксе
- Разработка нового функционала для сайта
- Парсинг данных
- Выгрузка \ Загрузка файлов в формате XML, YML, XLS, XLSX, CSV, JSON
- Интеграция по API со сторонними сервисами
и многое другое

E-mail: dmitriyribka@gmail.com

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

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