[msDifferentPricesDelivery] - Разные цены доставки
msDifferentPricesDelivery — разные цены доставки в зависимости от общей суммы заказа для miniShop2
ОБНОВЛЕНО до версии 1.1.1-pl [21.07.16]
Пофиксена цена доставки на странице информации о доставке
В версии 1.1.0-pl
Добавлена поддержка minishop2 2.4 от 20.07.16!

Компонент реализует разную цену для определённой доставки (или нескольких) в зависимости от суммы заказа, так же компонент реализует бесплатную доставку от определенной суммы заказа.
Видео примера работы компонента
ОСОБЕННОСТИ:
ОПИСАНИЕ РАБОТЫ КОМПОНЕНТА:
К примеру, для доставки «Доставка по городу» можно сделать, если сумма заказа меньше 1000 руб, то стоимость доставки будет 500 руб, при этом, если сумма заказа больше 1000 руб, но меньше 2000 руб, то стоимость доставки будет 300 руб, так же при этом, если сумма заказа будет больше 2000 руб, то стоимость доставки будет бесплатная или любая другая стоимость, таких промежутков можно сделать неограниченно. Либо можно сделать, что при сумме заказа до 1000 руб доставка к примеру 300 руб, а при сумме заказа больше 1000 руб доставка будет бесплатная.
Разные стоимости доставки можно выставлять не только для одного варианта доставки, а хоть для всех, и для каждого из них можно прописать свои зависимости стоимости доставки от суммы заказа, стоит только нужным вариантам доставки выставить класс-обработчик msDifferentPricesDelivery и прописать для их id параметры.
ИНСТРУКЦИЯ:
Для того, чтоб использовать разные цены в зависимости от общей суммы в корзине
нужно:
1={1000:500,2000:0};
Получается, что мы можем создать неограниченное число способов доставки и для тех, для которых
нам нужны разные цены в зависимости от общей суммы заказа, мы выставляем Класс-обработчик msDifferentPricesDelivery и в системных настройках для каждого способа доставки (по id) прописываем параметры суммы заказа и стоимости доставки.
Компонент можно приобрести в магазине modstore.pro
ОБНОВЛЕНО до версии 1.1.1-pl [21.07.16]
Пофиксена цена доставки на странице информации о доставке
В версии 1.1.0-pl
Добавлена поддержка minishop2 2.4 от 20.07.16!

Компонент реализует разную цену для определённой доставки (или нескольких) в зависимости от суммы заказа, так же компонент реализует бесплатную доставку от определенной суммы заказа.
Видео примера работы компонента
ОСОБЕННОСТИ:
- Поддерживает как и новую версию minishop2 2.4, так и старые версии <= 2.2
- Поддерживаемые версии php >=5.3, в т.ч. и 7.0
ОПИСАНИЕ РАБОТЫ КОМПОНЕНТА:
К примеру, для доставки «Доставка по городу» можно сделать, если сумма заказа меньше 1000 руб, то стоимость доставки будет 500 руб, при этом, если сумма заказа больше 1000 руб, но меньше 2000 руб, то стоимость доставки будет 300 руб, так же при этом, если сумма заказа будет больше 2000 руб, то стоимость доставки будет бесплатная или любая другая стоимость, таких промежутков можно сделать неограниченно. Либо можно сделать, что при сумме заказа до 1000 руб доставка к примеру 300 руб, а при сумме заказа больше 1000 руб доставка будет бесплатная.
Разные стоимости доставки можно выставлять не только для одного варианта доставки, а хоть для всех, и для каждого из них можно прописать свои зависимости стоимости доставки от суммы заказа, стоит только нужным вариантам доставки выставить класс-обработчик msDifferentPricesDelivery и прописать для их id параметры.
ИНСТРУКЦИЯ:
Для того, чтоб использовать разные цены в зависимости от общей суммы в корзине
нужно:
- установить компонент и в настройках вариантов доставки для нужных доставок выставить Класс-обработчик msDifferentPricesDelivery (вместе с компонентом автоматически устанавливается «Доставка по городу», для minishop2 >= 2.4 чтоб она заработала, нужно не забыть выбрать для неё хотя бы один способ оплаты!)
- Далее нужно зайти в «системные настройки -> minishop2 -> корзина» и прописать
для параметра «ms2_cart_dpd_param» «Опции цен доставки в зависимости от общей суммы заказа» опции по следующему шаблону:
id_доставки_для_которой_будут_применяться_следующие_условия={Сумма_до_которой_действует_цена: Сама_цена_для_этой_суммы,
Сумма_до_которой_действует_цена: Сама_цена_для_этой_суммы,
Сумма_до_которой_действует_цена: Сама_цена_для_этой_суммы};
Пример:1={1000:500,2000:400,3000:300,4000:200,5000:100,6000:0};
2={500:1500,1000:1000,1500:500,2000:0}; Символы ={:,}; ставятся обязательно, и никаких отступов!
- если сумма до 999 руб включительно, то цена доставки будет 500 руб;
- если сумма начинается с 1000 и до 1999, то цена доставки будет 400 руб;
- если сумма начинается с 2000 и до 2999, то цена доставки будет 300 руб и т.д.
- Последнее значение «6000:0» (всегда!) говорит о том, что если сумма будет начинается от прошлой суммы «5000» руб, то если сумма заказа будет начинаться с 5000 руб до 6000 руб и больше, то доставка будет бесплатной, если выставить не 0, а другую цену, то эта цена будет действовать с 5000 руб, до 6000 и больше.
- Дальше так же, только для способа доставки с id 2.
1={1000:500,2000:0};
Получается, что мы можем создать неограниченное число способов доставки и для тех, для которых
нам нужны разные цены в зависимости от общей суммы заказа, мы выставляем Класс-обработчик msDifferentPricesDelivery и в системных настройках для каждого способа доставки (по id) прописываем параметры суммы заказа и стоимости доставки.
Компонент можно приобрести в магазине modstore.pro
Комментарии: 16
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Никаких глобальных изменений в работе дополнений нет с версии beta3 и не будет. При этом верcия 2.2 в магазине уже отключена, её можно установить только из репозитория modx.com.
В общем, мне совсем непонятно, зачем присылать новое дополнение, которое работает только со старой версией компонента.
В общем для тех, кто пока не планирует обновляться до последней версии минишопа этот компонент вполне подойдет, потом появится время разберусь с последней версией минишопа и сделаю уже под неё.
Да и у последних выложенных новых компонента доставки совместимость только с новой версией минишопа, видимо не удастся сделать так, чтоб кастомный класс и на старых версиях работал и на новых, тогда напишу отдельный компонент для нового, т.к. пока еще много народу используют версию 2.2
Для чего копать старое — когда есть лучше новое?
Скоро доделаю и обновлю компонент.
То в версии 2.4, судя документации кастомный класс должен просто реализовывать интерфейс msDeliveryInterface следующим образом:
Но в таком случае в бэкенде в редактировании способов доставки ошибка, что отсутствует в файле кастомного класса интерфейс msDeliveryInterface, а во фронденде на странице оформления заказа вся логика работает без ошибок, при этом в настройках ms2_services всё прописано.
Если мы добавим в код кастомного класса то тогда в бэкенде кастомный класс для вариантов доставок выставляется без проблем и никаких ошибок, но во фронтенде на странице оформления заказа ошибка, что имя интерфейса msDeliveryInterface уже используется в файле кастомного класса.
Подскажи как получить тогда интерфейс msDeliveryInterface в кастомном классе?
msDeliveryHandler реализует msDeliveryInterface. Расширяй его как раньше.
Теперь компонент работает и на новой версии minishop2 2.4, поддержка старых осталась. Обновил компонент в modstore, осталось дождаться модерации.
а теперь работает и с новым miniShop2!
ps. простите за маленькую рекламку.
Пример: 1={6000:0};
до 1000 = стоимость доставки из настроек
от 1000 до 6000 = 500
от 6000 и выше = 0
Пример: 1={1000:500,6000:0};
На странице раньше была выведена стоимость доставки.
Теперь же это выглядит вот так
з.ы. доставка бесплатна от 50