[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
Поддержка minishop2 2.4 будет добавлена через некоторое время, как выйдет стабильная версия. А пока на minishop2 2.4 работать не будетСейчас версия rc8, в которой вычищаются мелкие баги.
Никаких глобальных изменений в работе дополнений нет с версии beta3 и не будет. При этом верcия 2.2 в магазине уже отключена, её можно установить только из репозитория modx.com.
В общем, мне совсем непонятно, зачем присылать новое дополнение, которое работает только со старой версией компонента.
Делал компонент для магазина на версии 2.2, щас просто появилось время собрать в пакет. Протестировал на Modhost на minishop2 2.4 с последней версией RC там видимо что-то поменяно со времен 2.2 и кастомный класс по другому подключается, пока нет времена копать.
В общем для тех, кто пока не планирует обновляться до последней версии минишопа этот компонент вполне подойдет, потом появится время разберусь с последней версией минишопа и сделаю уже под неё.
Да и у последних выложенных новых компонента доставки совместимость только с новой версией минишопа, видимо не удастся сделать так, чтоб кастомный класс и на старых версиях работал и на новых, тогда напишу отдельный компонент для нового, т.к. пока еще много народу используют версию 2.2
В общем для тех, кто пока не планирует обновляться до последней версии минишопа этот компонент вполне подойдет, потом появится время разберусь с последней версией минишопа и сделаю уже под неё.
Да и у последних выложенных новых компонента доставки совместимость только с новой версией минишопа, видимо не удастся сделать так, чтоб кастомный класс и на старых версиях работал и на новых, тогда напишу отдельный компонент для нового, т.к. пока еще много народу используют версию 2.2
Да и у последних выложенных новых компонента доставки совместимость только с новой версией минишопа, видимо не удастся сделать так, чтоб кастомный класс и на старых версиях работал и на новых, тогда напишу отдельный компонент для нового, т.к. пока еще много народу используют версию 2.2да почему можно совместимость сделать, но зачем?
Для чего копать старое — когда есть лучше новое?
Спасибо за подсказку.
Скоро доделаю и обновлю компонент.
Скоро доделаю и обновлю компонент.
Василий, тогда есть вопрос: если в мнишоп 2.2 для кастомного класса можно было просто унаследовать класс msDeliveryHandler следующим образом:
Если мы добавим в код кастомного класса
Подскажи как получить тогда интерфейс msDeliveryInterface в кастомном классе?
class myDelivery extends msDeliveryHandler {здесь логика расчета}
То в версии 2.4, судя документации кастомный класс должен просто реализовывать интерфейс msDeliveryInterface следующим образом:class myDelivery implements msDeliveryInterface {}
Но в таком случае в бэкенде в редактировании способов доставки ошибка, что отсутствует в файле кастомного класса интерфейс msDeliveryInterface, а во фронденде на странице оформления заказа вся логика работает без ошибок, при этом в настройках ms2_services всё прописано.Если мы добавим в код кастомного класса
interface msDeliveryInterface
{public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0.0);}
то тогда в бэкенде кастомный класс для вариантов доставок выставляется без проблем и никаких ошибок, но во фронтенде на странице оформления заказа ошибка, что имя интерфейса msDeliveryInterface уже используется в файле кастомного класса. Подскажи как получить тогда интерфейс msDeliveryInterface в кастомном классе?
Что за бред?
msDeliveryHandler реализует msDeliveryInterface. Расширяй его как раньше.
msDeliveryHandler реализует msDeliveryInterface. Расширяй его как раньше.
Спасибо. Вчера действительно чё-то всё перепутал. Расширяется всё точно так же, как и раньше.
Теперь компонент работает и на новой версии minishop2 2.4, поддержка старых осталась. Обновил компонент в modstore, осталось дождаться модерации.
Теперь компонент работает и на новой версии minishop2 2.4, поддержка старых осталась. Обновил компонент в modstore, осталось дождаться модерации.
кстати насчет скидок на доставку — все это есть из коробки в modstore.pro/packages/ecommerce/discontrol
а теперь работает и с новым miniShop2!
ps. простите за маленькую рекламку.
а теперь работает и с новым miniShop2!
ps. простите за маленькую рекламку.
Компонент неплохой, но я бы сделал логику наоборот…
Пример: 1={6000:0};
до 1000 = стоимость доставки из настроек
от 1000 до 6000 = 500
от 6000 и выше = 0
Пример: 1={6000:0};
до 1000 = стоимость доставки из настроек
от 1000 до 6000 = 500
от 6000 и выше = 0
Упс, пример должен выглядеть вот так:
Пример: 1={1000:500,6000:0};
Пример: 1={1000:500,6000:0};
Можно ли сделать стоимость доставки 3000 руб + 10% от стоимости заказа?
Из коробки нет
Если я вывожу стоимость отдельно
{$deliveries[4].price}
в корзине, как то можно чтобы эта сумма тоже менялась на 0?
т.е. нужно чтобы сума доставки тоже изменялась, реально ли это сделать?
тоже интересует этот вопрос.
На странице раньше была выведена стоимость доставки.
Теперь же это выглядит вот так
з.ы. доставка бесплатна от 50
На странице раньше была выведена стоимость доставки.
Теперь же это выглядит вот так
з.ы. доставка бесплатна от 50
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.