Можно ли просчитать скидки по купону, не создавая ни заказ, ни корзину в базе данных?
Можно ли просчитать скидки по купону, не создавая ни заказ, ни корзину в базе, чтобы сформировать массив $order, готовый к передаче в shopWorkflowCreateAction для создания полноценного заказа?
- Т.е. у нас есть стандартный массив $order, мы наполняем его товарами, данными клиента, сведениями о доставке, данными о купоне, дающем скидку на что-то (заранее не известно на что).
- Далее, используя искомые методы, заложенные разработчиками SS, просчитываем скидки на товары и заказ.
- Далее, используя искомые методы, заложенные разработчиками SS, применяем скидки к суммам доставки, товарам и заказу.
И в итоге, имеем массив $order с новыми ценами по всем позициям, и сведениями о применённых скидках в полях discount, discount_description, coupon_discount и total_discount.
Указанный массив мы сможем использовать, как для создания заказа (сохранения его в БД), так и для отображения посчитанных скидок в каком-либо интерфейсе.
Короче говоря, я ищу нативные публичные (а не приватные) методы и примеры их использования, для реализации вышеобозначенных целей.
Область применения искомых методов: stateless api.
Прошу разработчиков, либо тех, кто знает исходный код лучше всех, подсказать, какие классы, модели и методы нужно применить, чтобы добиться описанного выше. Я пока отказываюсь верить, что здесь всё настолько плохо, что даже такая базовая вещь не реализована в базовых моделях и классах.
P.S. В интернетах часто пишут, что исходный код прекрасно написан и документирован и можно легко разобраться - нагло врут. Полноценной документации нет даже по базовым методам (те ошмётки, что находятся на официальном сайте, не дают никакого представления ни о доступных методах, ни о параметрах, ни о требованиях). PHPDoc встречается крайне редко и скорее призван помочь какому-то разработчику SS использовать IntelliSense, чем описать параметры для простых. В общем, документации нет. Код иногда сводит с ума, из-за разной реализации одной и той же логики в разных местах.
Пока нет ответов. Ответьте на этот вопрос первым!