Как поменять свойство товара в корзине

2k
Алексей,
Как поменять свойство товара в корзине
Как поменять свойство товара в корзине

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

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

Как сделать?

1. Включаем в настройках каталога передачу нужно параметра в корзину.
2. Даем возможность выбрать нужный параметр на странице товара (если необходимо) или передайте любое значение (можно добавить к ссылке добавления в корзину строку &prop%5BSIZE%5D=<?=current($arResult['PROPERTIES']['SIZE']['VALUE'])?>)
3. В корзине, у каждого товара будет массив с ключем PROPS, в нем будет хранится выбранное на шаге 2 значение.
4. Добавляем выпадающий список и при его изменении отправляем ajax запрос на файл с таким кодом:
define('STOP_STATISTICS', true);
define('PUBLIC_AJAX_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

global $APPLICATION;
CModule::IncludeModule('sale');

$arFields = array(
	"PROPS" => array(
   		array(
   			"NAME"  => "Размер",
			"CODE"  => "SIZE",
			"VALUE" => htmlspecialcharsbx($_REQUEST['size']),
			"SORT"  => "100"
		),
	),
);

$APPLICATION->RestartBuffer();

if (CSaleBasket::Update(IntVal($_REQUEST['id']), $arFields)) {
	echo 'OK';
} else {
	echo $APPLICATION->GetException()->GetString();
}

require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php');

Извиняюсь, что не расписываю все 4 пункта, но там уж у каждого проекта по своему.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 15 июня 2018 | Обновлено 6 апреля 2020
Поделиться
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Немного "плохого" кода для выбора параметра товара в корзине. Например когда Вы не хотите использовать торговые предложения, но Вам нужно знать какой именно товар нужен покупателю (например какого цвета или размера)