fantats
Постоялец
- Регистрация
- 30 Ноя 2014
- Сообщения
- 330
- Реакции
- 195
- Автор темы
- #1
Может кто сталкивался с установкой тарифов в одной стране через присвоении областям(states) разных зон?
Как поправит?
Тоесть сейчас выбирая одну страну подтягивает одну зону и если ты присвоил в State другой тариф через зону - то оно подтянет все равну ту зону которая в стране. Не понятно тогда зачем ввообще эти зоны в областях
тут вроде проверка /controllers/front/ParentOrderController.php
и тут фрагмент
/classes/Address.php
детальнее можно почитать (может не понятно обяснил
Для просмотра ссылки Войдиили Зарегистрируйся
Для просмотра ссылки Войдиили Зарегистрируйся
как решения предлагают модули
Для просмотра ссылки Войдиили Зарегистрируйся
Для просмотра ссылки Войдиили Зарегистрируйся
но пока ищу free вариант
Как поправит?
Тоесть сейчас выбирая одну страну подтягивает одну зону и если ты присвоил в State другой тариф через зону - то оно подтянет все равну ту зону которая в стране. Не понятно тогда зачем ввообще эти зоны в областях
тут вроде проверка /controllers/front/ParentOrderController.php
Код:
if (isset($this->context->customer->id) && $this->context->customer->id) {
$address = new Address((int)$this->context->cart->id_address_delivery);
if (!($id_zone = Address::getZoneById($address->id))) {
$this->errors[] = Tools::displayError('No zone matches your address.');
}
} else {
$id_zone = (int)Country::getIdZone((int)Tools::getCountry());
}
и тут фрагмент
/classes/Address.php
Код:
public static function getZoneById($id_address)
{
if (!isset($id_address) || empty($id_address)) {
return false;
}
if (isset(self::$_idZones[$id_address])) {
return self::$_idZones[$id_address];
}
$id_zone = Hook::exec('actionGetIDZoneByAddressID', array('id_address' => $id_address));
if (is_numeric($id_zone)) {
self::$_idZones[$id_address] = (int)$id_zone;
return self::$_idZones[$id_address];
}
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT s.`id_zone` AS id_zone_state, c.`id_zone`
FROM `'._DB_PREFIX_.'address` a
LEFT JOIN `'._DB_PREFIX_.'country` c ON c.`id_country` = a.`id_country`
LEFT JOIN `'._DB_PREFIX_.'state` s ON s.`id_state` = a.`id_state`
WHERE a.`id_address` = '.(int)$id_address);
self::$_idZones[$id_address] = (int)((int)$result['id_zone_state'] ? $result['id_zone_state'] : $result['id_zone']);
return self::$_idZones[$id_address];
}
детальнее можно почитать (может не понятно обяснил
Для просмотра ссылки Войди
Для просмотра ссылки Войди
как решения предлагают модули
Для просмотра ссылки Войди
Для просмотра ссылки Войди
но пока ищу free вариант