Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Выбор типа цены для покупки

00 голосов
9
Здравствуйте!
Есть задача, в каталоге у каждого товара должно быть 3 типа цены: розничная, оптовая и крупно-оптовая - пользователь сам выбирает по какой цене покупать. Для этого рядом с каждой ценой должна стоять кнопка КУПИТЬ.
Сейчас у одной позиции товара выводится три типа цены и одна кнопка КУПИТЬ, которая отправляет в корзину ту цену, которая в настройках магазина указана как базовая.
Как реализовать возможность выбора цены, которая будет отправляться в корзину?
спросил 08 Май, 13 от Nyra (200 баллов)

9 Ответы

00 голосов
Как вариант с помощью SKU. Основной инфоблок – информация о товаре, второй инфоблок — три «модификации» товара. Пользователю дать возможность покупать по всем 3 типам цен. У каждой модифификации задается только один тип цены.
ответил 08 Май, 13 от unik (2,560 баллов)
00 голосов
Тоже интересует данный вопрос. Пытаюсь решить задачу через функцию add2basket, там один из параметров идентификатор цены. Но пока никак не получается.
ответил 08 Май, 13 от KOPOLEBA (180 баллов)
00 голосов
Цитата
tmkazan пишет:
Тоже интересует данный вопрос. Пытаюсь решить задачу через функцию add2basket, там один из параметров идентификатор цены. Но пока никак не получается.

Как вариант решается кастомизацией компонента "Корзина" и написанием собственной процедуры добавления товара в корзину.
Пример работы: http://lubomir.ru
ответил 12 Июль, 13 от Oggi (520 баллов)
00 голосов
Николай, спасибо, но ведь в примере нет возможности выбора цены, чтобы купить не через сайт. А если тип цены "Продажа через сайт" ниже розничной - то товар и так продастся по более низкой цене. Вопрос, что если клиент захочет купить в розницу? как выбрать другой тип цен в корзину?
ответил 16 Окт, 13 от KOPOLEBA (180 баллов)
00 голосов
Цитата
tmkazan пишет:
Николай, спасибо, но ведь в примере нет возможности выбора цены, чтобы купить не через сайт. А если тип цены "Продажа через сайт" ниже розничной - то товар и так продастся по более низкой цене. Вопрос, что если клиент захочет купить в розницу? как выбрать другой тип цен в корзину?

Видимо клиент еще не до конца заполнил базу.
Рассказываю основную суть реализации:
Клиент хотел, чтобы покупатель мог приобрести товар по одной из двух цен на выбор (или дороже но сейчас, или дешевле - но с удаленного склада).
Также товары с разными типами цен не должны были попадать в один заказ.
Решение было следующее:
1. В шаблон компонента каталога были внесены изменения - в ссылку "Купить" добавлялся идентификатор типа цены по которой производится заказ
2. Создан файл обработки заказов и добавления в корзину, который в зависимости от типа цены принудительно добавляет заказ в корзину с необходимым типом цены
3. Изменен компонент "Корзина", чтобы заказы разного типа не перемешивались.
PS: В вашем случае можно обойтись п.1 и п.2
ответил 18 Янв, 14 от Oggi (520 баллов)
00 голосов
При такой реализации придется дорабатывать учет различных факторов, влияющих на цену, например, скидок, и писать функции для поддержки актуальности корзины
ответил 06 Май, 14 от unik (2,560 баллов)
00 голосов
Спасибо Николай. а пример файла обработки не можете выложить? с ссылкой и идентификатором вроде понятно, а вот обработка вызывает затруднения.
Спасибо.
ответил 02 Сен, 14 от KOPOLEBA (180 баллов)
00 голосов
Сам файл обработки очень большой, в нем много других нужных проекту вещей выполняется.
Но за добавление товара в корщину с нужной ценой отвечает функция: CSaleBasket::Add
ответил 08 Янв, 15 от Oggi (520 баллов)
00 голосов
Николай, а каким образом подключается в работу файл обработки? Вызывать функцию CSaleBasket::Add в нем нужно?
ответил 26 Апр, 15 от Nyra (200 баллов)

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

0 голосов
4 ответов
спросил 17 Март, 13 от Shadsi (200 баллов)
0 голосов
1 ответ
0 голосов
4 ответов
спросил 09 Ноя, 13 от XpoHo3aBp (860 баллов)