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

В интерет магазинах есть свои компоненты, которые прекрасно себя зарекомендовали, такие как bitrix:catalog, bitrix:catalog.top, bitrix:eshopapp.top и другие. Их и рекомендуется кастомизировать, но как добавить товар используя API Битрикса?

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

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

Итак наша задача: в небольшой форме вы просите выбрать количество товаров, которые добавятся к текущей корзине пользователя, и кнопка «Купить» или «Добавить в корзину».

Наш HTML:

<form action="" method="POST">
	<input type="text" value="1" class="order-input order-input-small" name="order-count">
	<input type="submit" value="Заказать" class="order-btn-small">
</form>

Небольшая форма, без обработчика, которая сформирует массив $_POST, после отправки. Обязательно указываем name, в моем случае это order-count.
И наш код:

<?
$PRODUCT_ID = 19103;
if (CModule::IncludeModule("catalog")) {
	if ($_POST['order-count']) {
		Add2BasketByProductID(
			$PRODUCT_ID,
			$_POST['order-count'],
			false
		);

		LocalRedirect("/personal/order/make/");
	}
}
?>

Итак, если в массиве $_POST есть order-count, то мы добавляем товар в корзину по ID (переменная $PRODUCT_ID), и переходим сразу на страницу оформления, не заходя в корзину.

ID товара можно также передать в форме, тогда наш код будет выглядеть так:

<form action="" method="POST">
	<input type="text" value="1" class="order-input order-input-small" name="order-count">
	<input type="hidden" value="19103" name="order-id">
	<input type="submit" value="Заказать" class="order-btn-small">
</form>

<?
$PRODUCT_ID = $_POST['order-id'];
$PRODUCT_COUNT = $_POST['order-count'];

if (CModule::IncludeModule("catalog")) {
	if ($PRODUCT_ID && $PRODUCT_COUNT) {
		Add2BasketByProductID(
			$PRODUCT_ID,
			$PRODUCT_COUNT,
			false
		);

		LocalRedirect("/personal/order/make/");
	}
}
?>

Это лишь один из вариантов и он просто быстрее, чем переделывать шаблон компонента catalog.top или любой другой из этого семейства. Я бы рекомендовал его использовать на продающих страницах (лендинг пейдж), т.к. не вижу смысла писать новый компонент ради 1 товара.

автор: Dmitriy

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

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

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

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

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