support 447 Опубликовано 19 марта, 2021 Автор Жалоба Share Опубликовано 19 марта, 2021 Исправил в текущем коде на 1000 Ссылка на сообщение Поделиться на другие сайты
vitaly 1 Опубликовано 25 марта, 2021 Жалоба Share Опубликовано 25 марта, 2021 В 19.03.2021 в 14:11, support сказал: Исправил в текущем коде на 1000 В архиве с патчем 1.99.31 в файле boxberrypvz.php все еще множитель 100: $date_Execute = date('Y-m-d'); $total_weight = $shipping_weight * 100; Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 марта, 2021 Автор Жалоба Share Опубликовано 25 марта, 2021 2 часа назад, vitaly сказал: В архиве с патчем 1.99.31 в файле boxberrypvz.php все еще множитель 100: $date_Execute = date('Y-m-d'); $total_weight = $shipping_weight * 100; Исправил Ссылка на сообщение Поделиться на другие сайты
vitaly 1 Опубликовано 5 апреля, 2021 Жалоба Share Опубликовано 5 апреля, 2021 Здравствуйте! У компании СДЭК есть более дешевые тарифы для дальней отправки посылок: Услуга действует по направлениям из Москвы в подразделения СДЭК, находящиеся за Уралом и в Крым. 233 Экономичная посылка склад-дверь 234 Экономичная посылка склад-склад Чтобы не создавать еще один способ доставки решили доработать существующий. Идея такая: заменять тариф СДЭК в зависимости от расположения покупателя. В админке создали новую географическую зону, в которой будет действовать этот тариф. Теперь необходимо подключить функцию определения расположения покупателя и сравнить его с созданной географической зоной на совпадение. Далее в файле cdek.php будем менять тариф. Прошу подсказать, где можно найти функцию определения геозоны покупателя и функцию скрытия/отображения способа доставки в зависимости от зоны покупателя и настроек видимости этого способа доставки. Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 апреля, 2021 Автор Жалоба Share Опубликовано 5 апреля, 2021 52 минуты назад, vitaly сказал: Здравствуйте! У компании СДЭК есть более дешевые тарифы для дальней отправки посылок: Услуга действует по направлениям из Москвы в подразделения СДЭК, находящиеся за Уралом и в Крым. 233 Экономичная посылка склад-дверь 234 Экономичная посылка склад-склад Чтобы не создавать еще один способ доставки решили доработать существующий. Идея такая: заменять тариф СДЭК в зависимости от расположения покупателя. В админке создали новую географическую зону, в которой будет действовать этот тариф. Теперь необходимо подключить функцию определения расположения покупателя и сравнить его с созданной географической зоной на совпадение. Далее в файле cdek.php будем менять тариф. Прошу подсказать, где можно найти функцию определения геозоны покупателя и функцию скрытия/отображения способа доставки в зависимости от зоны покупателя и настроек видимости этого способа доставки. Спасибо. В /includes/modules/shipping/sdekpvz.php if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_SDEKPVZ_ZONE > 0) ) { $check_flag = false; $check_query = vam_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_SDEKPVZ_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = vam_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } Этот код отключает модуль, если заполнена опция Зона в настройках модуля и зона покупателя попадает в условия. Ссылка на сообщение Поделиться на другие сайты
vitaly 1 Опубликовано 5 апреля, 2021 Жалоба Share Опубликовано 5 апреля, 2021 12 минут назад, support сказал: Этот код отключает модуль, если заполнена опция Зона в настройках модуля и зона покупателя попадает в условия. Спасибо! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 апреля, 2021 Автор Жалоба Share Опубликовано 5 апреля, 2021 10 минут назад, vitaly сказал: Спасибо! Ну в Вашем случае может можно и не зоны использовать, в просто в коде добавлять услоия типа: if ($order->delivery['state'] == "Красноярский край") { $this->enabled = false; } и вставлять это в метод quote например. Ссылка на сообщение Поделиться на другие сайты
vitaly 1 Опубликовано 5 апреля, 2021 Жалоба Share Опубликовано 5 апреля, 2021 Для регионов за Уралом и Крым получится 29 условий (хотя, можно использовать массив...): 1 Кемеровская область 2 Алтайский край 3 Томская область 4 Новосибирская область 5 Омская область 6 Республика Крым 7 Сахалинская область 8 Хабаровский край 9 Еврейская автономная область 10 Приморский край 11 Якутия 12 Читинская область 13 Бурятия 14 Иркутская область 15 Хакасия 16 Ханты-Мансийский АО 17 Коми 18 Ненецкий АО 19 Дагестан 20 Чечня 21 Камчатский край 22 Магаданская область 23 Красноярский край 24 Ямало-Ненецкий АО 25 Камчатский край 26 Чукотский АО 27 Амурская область 28 Забайкальский край 29 Тюменская область 1 час назад, support сказал: и вставлять это в метод quote например. Переменная $order доступна в методе quote. $order->delivery['state'] содержит наименование региона покупателя, определённого по его ip-адресу. Как быть, если покупатель находится в одном регионе, а доставку оформляет в другой регион? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 апреля, 2021 Автор Жалоба Share Опубликовано 5 апреля, 2021 4 часа назад, vitaly сказал: Для регионов за Уралом и Крым получится 29 условий (хотя, можно использовать массив...): 1 Кемеровская область 2 Алтайский край 3 Томская область 4 Новосибирская область 5 Омская область 6 Республика Крым 7 Сахалинская область 8 Хабаровский край 9 Еврейская автономная область 10 Приморский край 11 Якутия 12 Читинская область 13 Бурятия 14 Иркутская область 15 Хакасия 16 Ханты-Мансийский АО 17 Коми 18 Ненецкий АО 19 Дагестан 20 Чечня 21 Камчатский край 22 Магаданская область 23 Красноярский край 24 Ямало-Ненецкий АО 25 Камчатский край 26 Чукотский АО 27 Амурская область 28 Забайкальский край 29 Тюменская область Переменная $order доступна в методе quote. $order->delivery['state'] содержит наименование региона покупателя, определённого по его ip-адресу. Как быть, если покупатель находится в одном регионе, а доставку оформляет в другой регион? А кто сказал, что по ip ?! Нет, не по IP, по умолчанию в этой переменной значение поля Регион, которое заполняет покупатель на странице оформления заказа, т.е. оформляет заказ как гость. Либо поле регион из адресной книги, если заказ оформляет авторизованный покупатель. Ссылка на сообщение Поделиться на другие сайты
vitaly 1 Опубликовано 5 апреля, 2021 Жалоба Share Опубликовано 5 апреля, 2021 10 часов назад, support сказал: А кто сказал, что по ip ?! Предположил, что именно так... Не понятно, зачем покупатель будет заполнять поле «Регион», если для расчета доставки в ПВЗ достаточно указать город? Если бы поле "Город" было заблокировано до того, как укажешь регион, то конечно, покупатели указывали бы регион доставки. После того, как покупатель выберет регион, переменная сразу обновляет значение? А до выбора региона переменная что содержит? После указания города доставки у нас запускается расчет стоимости доставки. В этот момент изменяется значение в переменной $order->delivery['state'] ? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 апреля, 2021 Автор Жалоба Share Опубликовано 6 апреля, 2021 8 часов назад, vitaly сказал: Предположил, что именно так... Не понятно, зачем покупатель будет заполнять поле «Регион», если для расчета доставки в ПВЗ достаточно указать город? Если бы поле "Город" было заблокировано до того, как укажешь регион, то конечно, покупатели указывали бы регион доставки. После того, как покупатель выберет регион, переменная сразу обновляет значение? А до выбора региона переменная что содержит? После указания города доставки у нас запускается расчет стоимости доставки. В этот момент изменяется значение в переменной $order->delivery['state'] ? Ну я про это и говорю, что опция Зона Вам не подходит. Она ограничивает по региону, не городу. Если Регион не заполняет, то опция Зона работать правильно не будет. Если в полях Регион и Город ничего не указано, то и значения $order->delivery['state'] и $order->delivery['city'] пустые Ссылка на сообщение Поделиться на другие сайты
vitaly 1 Опубликовано 6 апреля, 2021 Жалоба Share Опубликовано 6 апреля, 2021 После того, как покупатель указал город доставки, у нас запускается расчет доставки и в методе quote в файле sdekpvz.php переменная $order->delivery['city'] будет содержать указанный город? Все правильно? Остается где-то брать и хранить у себя таблицу соответствия Город-> Регион... Или список городов, для которых применим более дешевый тариф СДЭК... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 апреля, 2021 Автор Жалоба Share Опубликовано 6 апреля, 2021 15 минут назад, vitaly сказал: После того, как покупатель указал город доставки, у нас запускается расчет доставки и в методе quote в файле sdekpvz.php переменная $order->delivery['city'] будет содержать указанный город? Все правильно? Остается где-то брать и хранить у себя таблицу соответствия Город-> Регион... Да. Ссылка на сообщение Поделиться на другие сайты
vitaly 1 Опубликовано 6 апреля, 2021 Жалоба Share Опубликовано 6 апреля, 2021 1 минуту назад, support сказал: Да. Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 апреля, 2021 Автор Жалоба Share Опубликовано 6 апреля, 2021 Не за что Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения