Задать вопрос

Как в интернет-магазине битрикса сделать разные оплаты к разным товарам?

В одном магазине - 2 вида товаров, и нужно чтобы они не пересекались в одном заказе. Как это сделать?

Например:
1. Сувениры
2. Услуги

Правила корзины:
- Если пользователь положит в корзину только "Сувениры", то на последнем Шаге будет предложено оплатить через онлайн (эквайринг банка), сумма корзины на шаге оплаты соответствует сумме корзины.

- Если пользователь положит в корзину только "Услуги", то на последнем Шаге будет предложено перейти к оплате в другой онлайн (адрес в URL ссылке), заявка соответственно из корзины отправляется менеджеру, для ручного контроля статуса оплаты.... ну или как то так...

- Если пользователь положит в корзину "Сувениры" и "Услуги", то отправить и оплатить заявку из корзины НЕ получится и например выводится сообщение, типа... "Сувениры" и "Услуги" не могут быть в одном заказе, сформируйте два разных заказа.

Пробовал создать альтернативу, ограничить тип оплаты по сумме заказа. Сувенирка обычно дешевле услуги... и если в корзину попадала услуга, то заказ можно было оформить без оплаты и только наличными... но этот вариант не подходит, так как товары тоже могут накидать на большую сумму...

Подскажите, есть ли решение как разделить оплату типов товаров, но чтобы история заказа у пользователя сохранялась?
  • Вопрос задан
  • 859 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
Вячеслав, решение тут простое,
задайте каждому товару раздел.
создайте два типа доставки, в ограничениях укажите раздел для конкретной доставки
(формально доставки могут не отличаться, важно именно привязка раздела к типу доставки)
--
Создайте Оплаты, а уже в них можно сделать ограничение на тип доставки.
Т.е. к оплате станут доступны только те товары, которые являются Сувенирами (потому что они относятся к своему типу доставки). Тоже будет и для других разделов, типа Услуг.

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

Теперь чтобы купить разные товары и совершить разные оплаты, нужно делать отдельные заказы, история будет в профиле, как вы хотели....
Ну, и несколько скринов на примере Почты России и платежной системы Пэйпэл
spoiler
5fdcda94b14ca636103535.jpeg
5fdcda9b1efcb095842378.jpeg

На скрине видно, что отдельные товары из раздела Аксессуары привязаны к доставке Почта, А в платежных системах установлена оплата только для товаров, чья доставка входит в тип Почты.
--
Корзину текущего пользователя можно получить так:
use Bitrix\Sale;
$basket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite());

Что может быть проще?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы