Меню
Не дать пользователю купить больше одного товара, в Битрикс

Иногда нужно и такое: Например: на одном из разрабатываемых сайтов, мне нужно было создать всего 4 товара. при этом покупателю не доступна возможность купить два товара, только один. Но у него должна остаться возможность "передумать".
Вариант без передачи параметра в  ссылке.
Смысл заключается в том что: получаем всю корзину пользователя, выделяем из нее самый свежий товар (из добавленных в корзину).
Очищаем и снова наполняем корзину этим, одним товаром.

Код
<?
// подключаем ядро
require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");

// подключаем модули
Bitrix\Main\Loader::includeModule("sale");
Bitrix\Main\Loader::includeModule("catalog");

$arBasketItems = array();
$dbBasketItems = CSaleBasket::GetList(
    // Сортируем состав корзины по ID что бы самый новый, добавленный товар
    // Оказался в конце массива
    array("ID" => "ASC"),
    array(
        "FUSER_ID" => CSaleBasket::GetBasketUserID(),
        "LID" => SITE_ID,
        "ORDER_ID" => "NULL"
    ),
    false,
    false,
    array("PRODUCT_ID", 'ID')
);
while ($arItems = $dbBasketItems->Fetch())
{
    // В этой переменной последний добавленный товар
    $arToCart = $arItems['PRODUCT_ID'];
}

// очищаем корзину
CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID());

// Добавляем товар в корзину
$fields = [
    'PRODUCT_ID' => $arToCart, // ID самого свежего добавленного товара
    'QUANTITY' => 1,
];
$r = Bitrix\Catalog\Product\Basket::addProduct($fields);

//Отправляем в оформление или корзину
header('Location: /personal/order/index.php', true, 301);
exit();
?>
Михаил, приветствую.

Подскажите по немного схожей теме пожалуйста.

Как не дать пользователю купить товар со склада, если количество товара на данном складе к примеру 2, а на другом складе 5?

То есть имеем 2 склада с разным количеством товара, при этом когда выбран склад с количеством 2, в нём спокойно можно оформить 7 (общее количество со всех складов).

Как запретить покупать больше чем на текущем складе и выводить пользователю предупреждение, что на текущем складе количество товара только 2, а на другом 5.

Буду очень благодарен.

Количественный учёт включен.
Покупка при отсутствии выключена.
Тут только копать в сторону метода CCatalogStoreProduct::GetList
Получать остатки товара на каждом складе, проверять сколько товара набросано в корзину.
И если превышает количество выдавать предупреждение

В общем, направление такое. А что бы конкретно описать, мне нужно самому с таким столкнуться и познать.)
опечатка - (размещае): "В index.php раздела /newitem/ размещае вот"
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Вывести информацию, только на первом уровне раздела каталога, в 1С-Битрикс

Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента подключены в файле section.php к...

Увидеть файл заказов который передаст Битрикс в 1С

Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей, нужно увидеть xml файл с зака...

Вывод элементов с помощью API битрикс

Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Например, если нужно вывести элем...

Настройка push уведомлений через Firebase в приложении Apache Cordova

Задача: Apache Cordova предоставляет удобный способ разработки кроссплатформенных мобильных приложений. В данной статье ...

GIT-репозиторий на собственном сервере с веб-интерфейсом: Gitea - аналог GitHub

Задача: Развернуть git-репозиторий на собственном сервере с помощью Gitea — для ведения проектов, с веб-интерфейсом и по...

Удалить все картинки элементов инфоблока: анонс, детальную и дополнительные картинки (MORE_PHOTO)

Задача: В инфоблоке 10 000 элементов, нужно удалить картинки анонса, детальные и дополнительные картинки из свойства MOR...

Создание блога с комментариями, оценками и просмотрами на сайте с 1С-Битрикс

Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в которых, посетители смогу ста...

Подключение jquery из ядра битрикс и объединение своих скриптов в один файл

Если используете большое количество js скриптов на сайте. Например: фансибокс, всяческие галереи и прочее- то таких внеш...

Как вывести картинки к разделам на базе _ext меню

Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. Достаточно популярный метод, э...