В данной статье рассмотрим основные методы по работе с корзиной.
Как при помощи API Битрикса добавить, обновить, удалить товар в корзине
Перейдем сразу к коду, а потом подробнее рассмотрим что и зачем делается:
<?require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");?> <? if (CModule::IncludeModule("catalog") && CModule::IncludeModule("sale")) { // ADD TO CART if ($_POST['add'] == 'Y' && $_POST['id']) { $propArr = array(); $count = ($_POST['count']) ? $_POST['count'] : 1; Add2BasketByProductID( $_POST['id'], $count, $propArr ); } // UPDATE QUANTITY if ($_POST['update'] == 'Y' && $_POST['id'] && $_POST['count']) { $arFields = array( "QUANTITY" => $_POST['count'], ); CSaleBasket::Update($_POST['id'], $arFields); } // DELETE PRODUCT if ($_POST['delete'] == 'Y' && $_POST['id']) { CSaleBasket::Delete($_POST['id']); } } ?>
При помощи POST запроса нам необходимо передать ID товара, только не ошибитесь – ID товара в корзине и в инфоблоке это две разные вещи. Также, мы передаем количество для обновления и добавления в корзину.
CSaleBasket::Update – метод обновления товара в корзине.
CSaleBasket::Delete – метод для удаления товара.
Add2BasketByProductID – при помощи данной функции мы добавляем товар в корзину пользователя.
В проверках присутствует переменная, которая и определяет действие. После успешно выполненного события нам нужно обновить HTML с актуальными данными о добавленных товарах. При помощи данных методов и функций достигается эффект аякс корзины в битриксе.