miniShop2 icon indicating copy to clipboard operation
miniShop2 copied to clipboard

Добавить DeliveryCost в сниппет msCart

Open biz87 opened this issue 4 years ago • 12 comments

Запрос функции / Feature request

Резюме / Summary

Сниппет msCart выводит сводную информацию по заказу в блоке $total На удивление там нет информации по стоимости доставки.

Зачем это нужно / Why is it needed?

Для полноты картины

biz87 avatar Oct 31 '21 06:10 biz87

сводную информацию по заказу

А если точнее: сводную информацию по корзине (количество товаров, общий вес, общая стоимость). Что логично вроде. Информацию именно по заказу выдает msOrder (доставка и т.п.). Что тоже логично))

EMDM45 avatar Nov 16 '21 16:11 EMDM45

На удивление там нет информации по стоимости доставки.

скорей всего потому что доставка выбирается в другом сниппете и поэтому информацию брать неоткуда, только если назначать какую-то доставку по умолчанию.

webinmd avatar Dec 07 '21 16:12 webinmd

а может объединить все 3 сниппета в один со всем набором переменных? И не будет msCart/msOrder/msGetOrder - а какой-то общий. Оставить возможность вызывать его сколько угодно раз на странице и тогда можно будет избавиться еще от нескольких чанков

webinmd avatar Dec 09 '21 21:12 webinmd

а может объединить все 3 сниппета в один со всем набором переменных? И не будет msCart/msOrder/msGetOrder - а какой-то общий. Оставить возможность вызывать его сколько угодно раз на странице и тогда можно будет избавиться еще от нескольких чанков

Смотря как это будет реализовано.

Для меня лучше сделать несколько простых сниппетов, чем один большой (пихать всё в кучу). Плюс я за более понятный и семантический подход. Для меня удобнее и понятнее вызвать msDisplayCart (из названия понятно что делает сниппет, соответственно потом легче отлаживать), чем, например, ms2, ['get'=>'cart']. (П.С. вообще я за то, чтобы ввести в русскоязычное сообщество MODX какой-нибудь стандарт или рекомендации по именованию сниппетов, плагинов, чанков, плэйсхолдеров, классов, структуры папок и в целом подхода к разработке).

Собственно по этой же причине, считаю, не стоит пихать в снипппет msCart информацию о стоимости доставки. Это не логично. Условно, "корзина" не должна знать о "доставке" ничего. За это отвечает "заказ", который как раз зависит от "доставки".

Вообще, как мне кажется, если и делать что-то в данном направлении, то лучше добавить еще один сниппет msOrderSummary, который и будет выводить всю информацию о заказе (стоимость корзины, стоимость скидки, стоимость доставки, общая стоимость и т.д.). Собственно на последних проектах как раз и пользуюсь таким самописным сниппетом и вывожу всю инфу в отдельном блоке справа ("корзина" и "оформление заказа" - это две разные страницы у меня, на них и выводится этот блок справа).

EMDM45 avatar Dec 10 '21 05:12 EMDM45

Собственно по этой же причине, считаю, не стоит пихать в снипппет msCart информацию о стоимости доставки. Это не логично.

Тут проблема немного в возникающих часто кейсах, когда дизайнер так перекручивает вид корзины, что приходится городить массу костылей. Если не собирать все сниппеты в один, то хотя бы на каждый чих вызывать колбэки, чтобы можно было обновлять данные в каких угодно блоках. Думаю из-за этого и написана данная исушка.

webinmd avatar Dec 10 '21 08:12 webinmd

Тут проблема немного в возникающих часто кейсах, когда дизайнер так перекручивает вид корзины, что приходится городить массу костылей. Если не собирать все сниппеты в один, то хотя бы на каждый чих вызывать колбэки, чтобы можно было обновлять данные в каких угодно блоках. Думаю из-за этого и написана данная исушка.

А можно реальный пример из жизни? Интересно просто.

EMDM45 avatar Dec 10 '21 10:12 EMDM45

А можно реальный пример? Интересно просто.

Из последнего. Попало ко мне с готовой версткой.

image

webinmd avatar Dec 10 '21 10:12 webinmd

Из последнего. Попало ко мне с готовой версткой.

И в чем была сложность? И как объединение сниппетов, или добавление стоимости доставки в msCart помогло бы решить эту проблему?

EMDM45 avatar Dec 10 '21 10:12 EMDM45

Из последнего. Попало ко мне с готовой версткой.

И в чем была сложность? И как объединение сниппетов, или добавление стоимости доставки в msCart помогло бы решить эту проблему?

у нас каждый сниппет идет со своим тегом формы. У корзины форма идет на изменение количества и на удаление товара из корзины. У оформления заказа своя форма. По текущему дизайну все должно было быть в 1-й форме. Задача решаемая, но будь это одним сниппетом, было бы проще

webinmd avatar Dec 10 '21 10:12 webinmd

Да, тоже часто такое встречалось, где корзина и заказ были на 1 странице. А если объединять сниппеты, то не будет ли проблем с обновлением? Это как-то вообще запрещать обновление, или некоторое время в miniShop будет и старые сниппеты, и 1 новый, объединяющий старые.

Ruslan-Aleev avatar Dec 10 '21 10:12 Ruslan-Aleev

А если объединять сниппеты, то не будет ли проблем с обновлением? Это как-то вообще запрещать обновление, или некоторое время в miniShop будет и старые сниппеты, и 1 новый, объединяющий старые.

Пока это идея на уровне обсуждения, вообще в другой иссушке)) Надо понять кому это надо и надо ли вообще. Наверное создам другую исушку

webinmd avatar Dec 10 '21 10:12 webinmd

Кажется понял в чем суть. И выход, на первый взгляд, - это атрибут from для input и для button[type="submit"]. Таким образом форма оформления заказа будет одна. Остальное - можно вынести за пределы формы.

Но это теория. На практике я только кнопку "отправить" выносил за пределы формы, но пришлось править js файл минишопа, который жестко требует наличие такой кнопки внутри формы (делал даже PR с этим исправлением).

В данной задаче изначально, на мой взгляд, не правильно сделан дизайн (для меня НЕ логично выбирать способ доставки и метод оплаты в боковой панели, а данные покупателя вводить в центральной части слева). Понятно, что с заказчиком спорить дело такое... И если с дизайнером контакта нет... Но суть в том, что писать "костыли" (в моем представлении это выглядит именно так) для ms2, чтобы решить другие дизайнерские "костыли-хотелки" (часто необоснованные) ... как-то странно.

EMDM45 avatar Dec 10 '21 11:12 EMDM45