[РЕШЕНО] Один товар с уникальной ценой для каждого покупателя
Приветствую, возможно заголовок не очень понятный, но я поясню. Сайт посвящен ремонту квартир и продаже товаров для ремонта. Задача в следующем: нужно сделать возможность оплаты сметы на ремонт через сайт. Смета по сути и есть товар цена на который формируется после выезда мастера на замер. То есть было бы здорово сделать так: мастер померил, зашел в свой личный кабинет внес данные о клиенте и замерах, на основании этих данных произошел расчет стоимости и дальше клиент должен эту сумму оплатить. Проблема в том, что я не представляю как это реализовать. Буду рад любым вариантам.
Поблагодарить автора
Отправить деньги
Комментарии: 6
Может так?
Делаете товар с нулевой ценой. Его можно закинуть в корзину и оформить заказ, но у заказа со статусом Новый нулевая цена и оплатить его нельзя.
Мастер устанавливает заказу цену, после чего его можно оплатить.
Ну или ваш вариант, когда цена задается товару, например через опции товара, где опция это что-то типа id пользователя, и купить можно только эту опцию. Соответственно для каждого пользователя опция уникальна и обладает своей ценой.
Делаете товар с нулевой ценой. Его можно закинуть в корзину и оформить заказ, но у заказа со статусом Новый нулевая цена и оплатить его нельзя.
Мастер устанавливает заказу цену, после чего его можно оплатить.
Ну или ваш вариант, когда цена задается товару, например через опции товара, где опция это что-то типа id пользователя, и купить можно только эту опцию. Соответственно для каждого пользователя опция уникальна и обладает своей ценой.
Спасибо, первый вариант мне нравится. Буду думать. Если у кого-то есть еще идеи предлагайте
Я так понимаю, что «товар» вам нужен только для того, чтобы его потом оплатить стандартным модулем?
Иначе я не вижу смысла привязываться к функционалу магазина, избыточно и сбоку что-то прикручивать постоянно придётся. Может правильнее сделать свой модуль ака «Сметы», заточенный под нужный функционал с нужной логикой?
Иначе я не вижу смысла привязываться к функционалу магазина, избыточно и сбоку что-то прикручивать постоянно придётся. Может правильнее сделать свой модуль ака «Сметы», заточенный под нужный функционал с нужной логикой?
Дело в том, что подкрутить и что-то простое написать я смогу, а вот полноценный модуль, да чтоб с БД работал нет((( Еще учиться и учиться
Можно, как Алексей выше писал, а саму смету хранить в кастомной табличке (можно с ней работать даже без xpdo), связанной с заказом.
Связь с заказом делайте через поле properties таблицы _ms2_orders в виде [«estimate»:«id_записи_в_кастомной_таблице»].
Внимание! Это поле json, в нём много чего может храниться. Поэтому перед сохранением нужно получать его и свои данные добавлять в полученный массив, только потом сохранять. Иначе можно затереть имеющиеся там данные.
Связь с заказом делайте через поле properties таблицы _ms2_orders в виде [«estimate»:«id_записи_в_кастомной_таблице»].
Внимание! Это поле json, в нём много чего может храниться. Поэтому перед сохранением нужно получать его и свои данные добавлять в полученный массив, только потом сохранять. Иначе можно затереть имеющиеся там данные.
Вдруг кто будет делать что-то похожее, поэтому пишу вариант, который в итоге реализовал. Во-первых без кастомных таблиц не обошлось, научился, оказалось всё не так страшно, плюс CMPGenetator помог. Сама смета это отдельный заказ, обычный заказ, услуги в нем это товары, таким образом стоимость рассчитывается автоматически и она уникальна для каждого. Потом я создал кастомный OrderHandler в нём нужную мне информацию через xPDO записываю в кастомные таблицы, пишу туда номер заказа, пользователя и менеджера, а потом получаю эти данные где надо, а с их помощью уже можно вытащить и все данные пользователя и всю информацию о заказе.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.