miniShop2
miniShop2 copied to clipboard
Добавить DeliveryCost в сниппет msCart
Запрос функции / Feature request
Резюме / Summary
Сниппет msCart выводит сводную информацию по заказу в блоке $total На удивление там нет информации по стоимости доставки.
Зачем это нужно / Why is it needed?
Для полноты картины
сводную информацию по заказу
А если точнее: сводную информацию по корзине (количество товаров, общий вес, общая стоимость). Что логично вроде. Информацию именно по заказу выдает msOrder (доставка и т.п.). Что тоже логично))
На удивление там нет информации по стоимости доставки.
скорей всего потому что доставка выбирается в другом сниппете и поэтому информацию брать неоткуда, только если назначать какую-то доставку по умолчанию.
а может объединить все 3 сниппета в один со всем набором переменных? И не будет msCart/msOrder/msGetOrder - а какой-то общий. Оставить возможность вызывать его сколько угодно раз на странице и тогда можно будет избавиться еще от нескольких чанков
а может объединить все 3 сниппета в один со всем набором переменных? И не будет msCart/msOrder/msGetOrder - а какой-то общий. Оставить возможность вызывать его сколько угодно раз на странице и тогда можно будет избавиться еще от нескольких чанков
Смотря как это будет реализовано.
Для меня лучше сделать несколько простых сниппетов, чем один большой (пихать всё в кучу). Плюс я за более понятный и семантический подход. Для меня удобнее и понятнее вызвать msDisplayCart (из названия понятно что делает сниппет, соответственно потом легче отлаживать), чем, например, ms2, ['get'=>'cart'].
(П.С. вообще я за то, чтобы ввести в русскоязычное сообщество MODX какой-нибудь стандарт или рекомендации по именованию сниппетов, плагинов, чанков, плэйсхолдеров, классов, структуры папок и в целом подхода к разработке).
Собственно по этой же причине, считаю, не стоит пихать в снипппет msCart информацию о стоимости доставки. Это не логично. Условно, "корзина" не должна знать о "доставке" ничего. За это отвечает "заказ", который как раз зависит от "доставки".
Вообще, как мне кажется, если и делать что-то в данном направлении, то лучше добавить еще один сниппет msOrderSummary, который и будет выводить всю информацию о заказе (стоимость корзины, стоимость скидки, стоимость доставки, общая стоимость и т.д.). Собственно на последних проектах как раз и пользуюсь таким самописным сниппетом и вывожу всю инфу в отдельном блоке справа ("корзина" и "оформление заказа" - это две разные страницы у меня, на них и выводится этот блок справа).
Собственно по этой же причине, считаю, не стоит пихать в снипппет msCart информацию о стоимости доставки. Это не логично.
Тут проблема немного в возникающих часто кейсах, когда дизайнер так перекручивает вид корзины, что приходится городить массу костылей. Если не собирать все сниппеты в один, то хотя бы на каждый чих вызывать колбэки, чтобы можно было обновлять данные в каких угодно блоках. Думаю из-за этого и написана данная исушка.
Тут проблема немного в возникающих часто кейсах, когда дизайнер так перекручивает вид корзины, что приходится городить массу костылей. Если не собирать все сниппеты в один, то хотя бы на каждый чих вызывать колбэки, чтобы можно было обновлять данные в каких угодно блоках. Думаю из-за этого и написана данная исушка.
А можно реальный пример из жизни? Интересно просто.
А можно реальный пример? Интересно просто.
Из последнего. Попало ко мне с готовой версткой.

Из последнего. Попало ко мне с готовой версткой.
И в чем была сложность? И как объединение сниппетов, или добавление стоимости доставки в msCart помогло бы решить эту проблему?
Из последнего. Попало ко мне с готовой версткой.
И в чем была сложность? И как объединение сниппетов, или добавление стоимости доставки в msCart помогло бы решить эту проблему?
у нас каждый сниппет идет со своим тегом формы. У корзины форма идет на изменение количества и на удаление товара из корзины. У оформления заказа своя форма. По текущему дизайну все должно было быть в 1-й форме. Задача решаемая, но будь это одним сниппетом, было бы проще
Да, тоже часто такое встречалось, где корзина и заказ были на 1 странице. А если объединять сниппеты, то не будет ли проблем с обновлением? Это как-то вообще запрещать обновление, или некоторое время в miniShop будет и старые сниппеты, и 1 новый, объединяющий старые.
А если объединять сниппеты, то не будет ли проблем с обновлением? Это как-то вообще запрещать обновление, или некоторое время в miniShop будет и старые сниппеты, и 1 новый, объединяющий старые.
Пока это идея на уровне обсуждения, вообще в другой иссушке)) Надо понять кому это надо и надо ли вообще. Наверное создам другую исушку
Кажется понял в чем суть. И выход, на первый взгляд, - это атрибут from для input и для button[type="submit"]. Таким образом форма оформления заказа будет одна. Остальное - можно вынести за пределы формы.
Но это теория. На практике я только кнопку "отправить" выносил за пределы формы, но пришлось править js файл минишопа, который жестко требует наличие такой кнопки внутри формы (делал даже PR с этим исправлением).
В данной задаче изначально, на мой взгляд, не правильно сделан дизайн (для меня НЕ логично выбирать способ доставки и метод оплаты в боковой панели, а данные покупателя вводить в центральной части слева). Понятно, что с заказчиком спорить дело такое... И если с дизайнером контакта нет... Но суть в том, что писать "костыли" (в моем представлении это выглядит именно так) для ms2, чтобы решить другие дизайнерские "костыли-хотелки" (часто необоснованные) ... как-то странно.