Доброго времени суток уважаемые форумчане. opencart 2.0.3.1 Собственно дано несколько городов в одном регионе, в которые возможна бесплатная доставка, при условии покупки на определенную сумму. 1 город от 1000р бесплатно, 2ой город от 2500р доставка бесплатно. Суть в том что стандартными средствами можно реализовать лишь целиком для региона бесплатную доставку. А требуется именно задать разные суммы для городов (несколько крупных городов по остальной области не планируется бесплатная доставка). Кто знает как реализовать? Заранее благодарен.
Если городов не много, то можно модифицировать какой нибудь модуль и вручную прописать соответствия. Проблема в том, что в названии города могут допустить ошибку, тогда не появится бесплатная доставка.
Городов всего 3, причем для двух из них одинаковые условия бесплатной доставки. Собственно Иркутск бесплатная доставка от 1000р, Ангарск и Шелехов при покупке от 2500 р. Если же будет допущена ошибка в названии города и не будет бесплатной доставки.... Такова судьба. Можно по подробнее про необходимые манипуляции?
в файле\catalog\model\shipping\free.php перед if ($status) { вставим PHP: $city = $this->session->data['shipping_address']['city']; $summa = $this->cart->getSubTotal(); $status = ($city =='Ялта' && $summa > 1000 ) ? true : false; При адресе доставки город Ялта и сумме больше 1000, будет бесплатная доставка.
$method_data = array(); $city = $this->session->data['shipping_address']['city']; $summa = $this->cart->getSubTotal(); $status = ($city =='Город 1' && $summa > 1000 ) ? true : false; $city = $this->session->data['shipping_address']['city']; $summa = $this->cart->getSubTotal(); $status = ($city =='Город 2' && $summa > 2500 ) ? true : false; $city = $this->session->data['shipping_address']['city']; $summa = $this->cart->getSubTotal(); $status = ($city =='Город 3' && $summa > 2500 ) ? true : false; if ($status) { Попробовал не выходит. Геозоны ставил разные, по региону не появляется бесплатная доставка. Или для 3х городов другой код?
1. Код на форум вставляйте в соответствии с рекомендациями http://forum.opencart-russia.ru/threads/rekomendacii-po-oformleniju-koda-i-voprosov.460/ 2. Вашем случаи должно быть как то так PHP: $city = $this->session->data['shipping_address']['city']; $summa = $this->cart->getSubTotal(); if ($city =='Город 1' && $summa > 1000) { $status = true;} elseif ($city =='Город 2' && $summa > 2500) { $status = true;} elseif ($city =='Город 3' && $summa > 2500) { $status = true;} else { $status = false;}
К сожалению не работает, ссылка на сайт... . Не селен я в пунктуации хоть и понял суть цикла, может есть еще что то?
А сам модуль бесплатной доставки в админке имеет какие настройки? может в этом дело... но вроде все попробовал и не появляется бесплатной доставки.
PHP: $city = $this->session->data['shipping_address']['city'];$summa = $this->cart->getSubTotal();if ($city =='Шелехов' && $summa > 2500) { $status = true;} else { $status = false;} Даже эта часть не работает..... Точнее сказать не появляется бесплатная доставка вообще.
может и совпадать. Я проверял на настройки Все зоны. значит или город не совпадает или сумма заказа не больше положенного. По другому не знаю. Я проверял у себя. Решение рабочее.