2 корзины на одном сайте
Всем привет.
Суть — есть сайт, с двумя разными каталогами товаров.Клиент хочет чтобы -
- Товары из этих каталогов добавлялись в одну корзину
- Уже в корзине товары должны разделятся визуально — допустим на 2 столбца
- Должна быть отдельно сумма по первому каталогу, отсдельно сумма по второму каталогу, и общая сумма всего заказа
- И чтобы в процессе оформления заказа — заказ разделялся на 2 части, и оплачивался на 2 разных счета, с помощью robokassa или иного сервиса.
Пояснения -
Сайт один, соучредителя два.
Логичный и простой вариант с разделением каталогов и созданием второго сайта — клиент отмёл.
Принципиально чтобы оба каталога были на одном сайте и конечный заказ полностью выводился на одной странице.
Вопросы —
- как это можно (и можно ли вообще) реализовать на modx revo + minishop2?
- B как вообще это лучше реализовать? Возможен вариант с двумя корзинами — на одной странице.
- Или нужный функционал есть у других cms/фрэймворков?
- Или забить и написать свой компонент под эту задачу?
- Думали в сторону контекстов modx — тут решается вопрос раздельных каталогов, корзин и заказа. Но как вывести две корзины из двух контекстов на одной странице, с сохранением функционала?
Комментарии: 10
Помоему многое придется переписывать в miniShop2.
По половине пунктов поможет расширение классов.
А вот с оплатой через 2 разных счета, скорее всего, придется помучиться и править ядро.
А вот с оплатой через 2 разных счета, скорее всего, придется помучиться и править ядро.
Gracias за подсказку. Касательно счетов — еще раз обговорили с клиентом этот момент — он согласился чтобы пользователь оформлял (оплачивал) обе части заказа онлайн, по-очереди — сначала первый, потом второй. Да, я понимаю что это не комильфо с точки зрения юзабилити)
К слову, у каждого товара есть параметр контекста, откуда он был добавлен => первым шагом будет разделение 2 раздела каталога по двум контекстам — так товары по умолчанию будут попадать в отдельные контексты (вызывать и отображать их не будет большой проблемой, т.к. у большинства сниппетов есть параметр, указывающий из каких контекстов брать данные). Ну и чуть-чуть придется подправить javascript корзины для динамичного обновления данных.
тоже рою в эту сторону, пока кажется реальным только дублировать minishop
Об этом варианте думал, но это решение кажется слишком грубым, или костыльным… Хотя с другой стороны — как клонировать, ведь minishop2 — это же готовый класс, а значит его можно наследовать и на его основе дописать расширенную корзину) И это вероятно относится к комментарию Максима.
На вскидку, нужно написать свою корзину, остальное можно не трогать. Ведь корзина это что? Это просто массив товаров, с которым можно работать. Реализовать не сложно.
Единственное что нужно, это у товаров указывать принадлежность к счету, счет 1 и счет 2, а уже по этим двум счетам строить таблицу товаров 1 и таблицу товаров 2
Да, вариант написать свою корзину на данный момент кажется самым адекватным.
В классе корзины переопредели 3 метода: get(), status(), clean(). Сниппет вывода корзины сделай свой, удобнее всего скопировать msCart и его изменить.
Сохранение принадлежности товара к определенному контексту в оформленном заказе — самое простое, достаточно при добавлении в корзину передавать эту информацию в options товара, дальше справится штатный механизм.
Фактически, задача решается за несколько часов.
Сохранение принадлежности товара к определенному контексту в оформленном заказе — самое простое, достаточно при добавлении в корзину передавать эту информацию в options товара, дальше справится штатный механизм.
Фактически, задача решается за несколько часов.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.