Бесплатная доставка при заказе от $property
#11
Отправлено 25 September 2015 - 13:57
Данные файлы должны подойти и для версии 2.2.1
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#12
Отправлено 28 September 2015 - 15:27
Для rev2942 не подошли.
В админке, при заходе на страницу "Электронная коммерция" ругается:
Fatal error: Call to undefined method JBCartElementShippingCourier::isValid() in /var/www/expadmin/data/www/vtaigu.ru/media/zoo/applications/jbuniversal/cart-elements/shipping/courier/courier.php on line 79
#13
Отправлено 01 November 2015 - 09:57
Да, на 2997 не работает.
Хотелось бы получить какое то решение
#14
Отправлено 01 November 2015 - 11:51
Да, поддерживаю. Был бы рад, чтобы подкорректировали элемент под последнюю версию
#15
Отправлено 01 November 2015 - 13:00
Выкладываю рецепт. На скорую руку сбахал по аналогии по быстрому.
Задача стояла так. Необходимо сделать расчет доставки курьером по городу до 1000 рублей 500 рублей доставка. Свыше 1000 бесплатно.
Делал только для произвольной доставки (manual), но думаю по аналогии и с остальными.
Файл manual.xml
Добавляем между <params> и </params>:
<param name="rate2" type="text" default="0" label="Стоимость после границы" description="JBZOO_ELEMENT_SHIPPING_MANUAL_DESC"/> <param name="stop" type="text" default="0" label="Граница доставки" description="JBZOO_ELEMENT_SHIPPING_MANUAL_DESC"/>
Тут мы добавили две опции. rate2 - стоимость доставки после суммы корзины и stop - граница доставки
Файл manual.php
Между class JBCartElementShippingManual extends JBCartElementShipping { и }
public function hasValue($params = array()) { return true; } public function getRate() { $orderSum = $this->_order->getTotalForItems(); // получили сумму за все товары (без доставки и прочего) $stop = $this->config->get('stop', '1000rub'); // здесь 1000 - это значение по умолчанию if ($orderSum->compare($stop, '<=')) { // сравниваем c границе return $this->_order->val($this->config->get('rate', 0)); // доставка до границы } else { return $this->_order->val($this->config->get('rate2', 0)); // доставка от суммы свыше границы. } }
Как результат. Если человек заказывает меньше 1000 рублей, то ему доставка 500 рублей. Если больше, то бесплатно. В корзине величина доставки считается.
Единственное не отказался бы от подсказки. Как сделать так, что сумма корзины допустим меньше 1000 рублей, то этот вид доставки бы вообще не выводился.
Работает на Joomla: 3.4.5 JBZoo: 2.2.2 Pro rev2997 Zoo: 3.3.9
Сообщение отредактировал Михаил: 01 November 2015 - 13:15
#16
Отправлено 02 November 2015 - 10:14
public function hasValue($params = array()) { return true; }Единственное не отказался бы от подсказки. Как сделать так, что сумма корзины допустим меньше 1000 рублей, то этот вид доставки бы вообще не выводился.
Работает на Joomla: 3.4.5 JBZoo: 2.2.2 Pro rev2997 Zoo: 3.3.9
Здравствуйте. Проверяйте сумму корзины в методе hasValue и возвращайте true/false.
Если hasValue возвращает false, метод render у элемента не вызывается.
Сообщение отредактировал tapakan: 02 November 2015 - 10:14
#17
Отправлено 02 November 2015 - 10:34
Здравствуйте. Проверяйте сумму корзины в методе hasValue и возвращайте true/false.
Если hasValue возвращает false, метод render у элемента не вызывается.
Все таки коллективный разум это очень хорошая вещь. Ходил около этого варианта и сам не додумался. Видимо со скидками сильно заморочился.
Спасибо.
#18
Отправлено 02 November 2015 - 11:03
Одно лишь пожелание - хотелось бы видеть этот функционал в коробке в ближайшем обновлении.
Спасибо.
#20
Отправлено 03 November 2015 - 13:10
Также присоединяюсь к Ursa. Ребят, спасибо за доработку, очень нужная вещь.