Сумма заказов с учетом доставки.

#
Сумма заказов с учетом доставки.
Здравствуйте. Подскажите, пожалуйста.. Контроллер показа корзины может рассчитывать итоговую сумму с учетом суммы доставки или нет? Скидки же он учитывает и с их учетом есть сумма в xml. Я могу, конечно, сам в шаблоне посчитать сумму с учетом доставки, но вдруг это костыль   Тем более.. На последнем шаге оформления заказа, в результате работы обработчика оплаты, сумма чудесным образом пересчитывается с учетом суммы доставки, и это делается не в шаблоне.
Просьба тоже, рассказать каким образом учитывается сумма доставки, в обработчике указывается только шаблон, в шаблоне расчетов нет, уже берется готовый xml элемент  amount, в котором сумма с учетом доставки.. Вот как этот элемент сгенерировался?)) Откуда Shop_Payment_System_Handler знает сумму доставки и где её вычитает? В него передаются в массиве параметры заказа, но сумма доставки в массиве отсутствует.
Модератор
#
Re: Сумма заказов с учетом доставки.
prizrak067,
он ничего не знает о каких-то там доставках, его работа - товары в корзине, доставки - следующие этапы.
#
Re: Сумма заказов с учетом доставки.
Спасибо за ответ! Тем не менее... Сумма товаров с учетом доставки берется из xml в шаблоне, который указан в обработчике Shop_Payment_System_Handler, это 5 последний шаг, когда в ЦА попадает заказ. Там сумма тоже уже с учетом доставки +200р. Как-то же обработчик получает информацию о доставке..как?
Модератор
#
Re: Сумма заказов с учетом доставки.
prizrak067 писал(а):
Сумма товаров с учетом доставки берется из xml в шаблоне, который указан в обработчике Shop_Payment_System_Handler

и как это связано с
prizrak067 писал(а):
Контроллер показа корзины может рассчитывать итоговую сумму с учетом суммы доставки или нет?
#
Re: Сумма заказов с учетом доставки.
Именно поэтому и хотел узнать, есть ли механизм, вычисляющий итоговую сумму в контроллере показа корзины, ведь на последнем шаге всё считается как-то за кулисами... Или нужно всё же вручную в контроллер показа корзины добавить  сумму доставки и самому прибавлять сумму доставки к сумме товаров?
Модератор
#
Re: Сумма заказов с учетом доставки.
prizrak067,
механизмы есть и описаны они в Shop_Payment_System_Handler, в частности добавление доставки осуществляется методом _addDelivery(), метод оперирует ID способа и ID условия доставки, которые были выбраны на предыдущих этапах оформления заказа.

prizrak067 писал(а):
ведь на последнем шаге всё считается как-то за кулисами...

за кулисами чего, позвольте поинтересоваться?

Данные по товарам в корзине известны еще на первом шаге со всеми скидками, способ и условие доставки клиент выбрал после указания адреса и страны, всё.
#
Re: Сумма заказов с учетом доставки.
Цитата:
за кулисами чего, позвольте поинтересоваться?


ну вот в 5ом шаге решающий момент
Shop_Payment_System_Handler::factory(
            Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
         )
         ->orderParams($_SESSION['hostcmsOrder'])
         ->execute();

массив сессии передает информацию со всех шагов. Только я делаю, правда, в один шаг. Так вот.. Запускается обработчик, в котором только шаблон указывается, никаких  _addDelivery() и т.д. Поэтому я и сказал - за кулисами. Так как не могу найти как и где определяется сумма заказа с учетом доставки, чтобы мне также определить сумму на первом шаге и использовать её в шаблоне. Чтобы мне на первом шаге сразу определять сумму с учетом доставки. А не обращаться к модели, получать сумму доставки, добавлять ее в xml корзины  и в шаблоне прибавлять к общей сумме... Спасибо за ответы)) Но, честно говоря, так и не дошло, как сделать иначе - а именно, получить в xml корзины итоговую сумму с учетом цены за доставку. Если я глупости пытаюсь добиться, пожалуйста, объясните
#
Re: Сумма заказов с учетом доставки.
prizrak067,
если сумма доставки зависит от разных условий и выбора пользователя и если доставок более 1, то и сумма заказа с учетом доставки будет всегда разная, используйте JS реализацию, пример реализации в нашем модуле MegaPost https://xn--80aff1anfpi.xn--p1ai/shop/cart-one-step-kladr/?add=175
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Сумма заказов с учетом доставки.
Спасибо за ответ. js уже будет вторым делом. Для начала надо понять как контроллер может, если может, выполнять расчет. Предлагаете купить, чтобы ознакомиться..?
#
Re: Сумма заказов с учетом доставки.
prizrak067,
Цитата:
Для начала надо понять как контроллер может, если может, выполнять расчет.

Посмотрите Shop_Delivery_Controller_Show::show(), в нем выполняются расчеты по условиям для показа вариантов доставки, а метод Shop_Delivery_Controller_Show::setUp() рассчитывает totalAmount сумму заказа
Цитата:
Предлагаете купить, чтобы ознакомиться..?

там ничего нового, сделано через JS
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
Авторизация