Улучшение справочника городов и регионов

Для расчёта стоимости доставки во многих API курьерских служб и транспортных компаний требуются идентификаторы населённых пунктов в их собственном формате (у каждого свой). К счастью, у них есть списки населённых пунктов и у многих из них есть коды КЛАДР, ФИАС и почтовые индексы. Благодаря этим идентификаторам находить, сопоставлять и идентифицировать населённые пункты становится намного проще. Проблема в том, что в текущем варианте справочников в HostCMS нет никаких уникальных кодов (кроме собственного внутреннего идентификатора). Т.е. предлагая посетителю ввод или выбор города из базы HostCMS приходится искать совпадения по названию. К сожалению, структура хранения информации везде разная, да и названия населённых пунктов в разных регионах иногда совпадают. Поэтому без уникальных общих идентификаторов невозможно точно сопоставить населённый пункт выбранный из базы HostCMS и например СДЭК. Пожалуйста переработайте и актуализируйте внутреннюю базу городов и регионов в HostCMS.

DigitalBug 16.11.2018
3
567
13

Комментарии

  • Настолько припекло, что создал модуль

    Пример работы: http://modules.sfweb.ru/hostcms/cities/samples/ а все подробности о модуле здесь: https://www.hostcms.ru/shop/market/modules/store/shop_country_district/

    22.03.2019 03:09:23
    DigitalBug
  • Обсуждение натолкнуло меня на определёные мысли. Давайте забудем про коды ФИАС. В целом моё пожелание — это гигантская работа. Поэтому давайте исходить из самого популярного — пожалуйста добавьте коды КЛАДР в таблицу российских городов HostCMS.

    21.11.2018 02:17:29
    DigitalBug
  • То же самое с определением города по IP. Есть сервисы, которые определяют город и дают не только его название, но и код КЛАДР. Всё это могло бы работать в единой связке.

    18.11.2018 09:58:31
    DigitalBug
  • Я уже понял, что написал слишком расплывчато — пожалуйста добавьте коды КЛАДР и ФИАС в базу городов, чтобы по ним можно было однозначно связать город с базой СДЭК, Boxberry или любой другой с едиными кодами.

    16.11.2018 12:33:08
    DigitalBug

    а в базе СДЭК и Boxberry используются коды КЛАДР и ФИАС? Насколько я знаю у них свои внутр. коды городов и почтовые индексы

    17.11.2018 12:41:47
    alexpimnev

    Да, для получения стоимости доставки и списка пунктов выдачи заказов в какой-либо населённый пункт они используют собственные уникальные идентификаторы. Чтобы такой идентификатор получить, нужно обратиться к таблице городов той службы доставки для которой требуются данные. Отвечая на вопрос: да у них там в этих таблицах есть, как минимум, КЛАДР (у СДЭКа ещё и ФИАС). В текущей ситуации, на момент обращения к такой таблице у нас на руках будет максимум название города из таблицы городов HostCMS, которое при поиске и сопоставлении не даёт необходимой точности.

    17.11.2018 22:12:23
    DigitalBug

    1. У Boxberry точно так же? Нет. Тогда зачем это делать ради СДЭК?
    2. Зачем запрашивать код города в СДЭК, а потом еще запрашивать расчет стоимости, когда можно получить стоимость доставки по индексу и одним запросом?

    21.11.2018 01:16:31
    alexpimnev

    У Boxberry КЛАДР. Чтобы сделать запрос по индексу, его нужно где-то получить. В базе HostCMS нет индексов. Есть ещё проблема — пользователь привык выбирать город, а не вводить индекс. Название своего населённого пункта он точно знает, а вот индекс может не знать. Кроме того, я был бы очень рад узнать, как именно получить стоимость доставки одним запросом у СДЭК и Boxberry?

    21.11.2018 02:03:26
    DigitalBug

    а нет ошибся по Екатеринбургу все ок с КЛАДР, это было по другому городу

    21.11.2018 09:29:06
    alexpimnev

    Так же как и КЛАДР где то получить, и даже если заполнить КЛАДР из оф. источников, то они не совпадают, например город "Екатеринбург" (у СДЭК он 6600000100300, из оф. источников например тут http://kladr-api.ru/examples - 6600000100000). Есть еще одна ситуация, если в базе городов HostCMS нет названия города клиента, то ему легче ввести свой индекс, а не КЛАДР, и тогда расчет возможен будет по индексу, так же что делать с Казахстаном? Казахстан тоже можно по индексу рассчитать, а вот с КЛАДР уже нет. Я это к чему все, не связывайтесь Вы с КЛАДР, лучше используйте почтовый индекс

    21.11.2018 09:11:14
    alexpimnev

    Ошибки будут везде и всегда, где участвует человек. Правда, я не поленился и проверил приведённые коды в базе СДЭК от 12.11.2018: 6600000100000 — Екатеринбург, 6600000100300 — Верхнемакарово, Свердловская обл. Индексы хорошая вещь, но они иногда меняются (разработчикам HostCMS нужно же будет постоянно их менять) и их много для одного города и чем город крупнее, тем их больше, а уникальный код КЛАДР за городом закреплён один и получить его можно при определении города по IP, например. В целом я придерживаюсь другого подхода и не стал бы полагаться на индекс. Есть масса сценариев при котором человек, оформляющий заказ в интернет-магазине не знает или не помнит свой индекс, но он прекрасно знает свой город. По поводу Казахстана, я его не рассматриваю — речь исключительно про города РФ.

    21.11.2018 09:36:23
    DigitalBug

    для расчета стоимости нужен хотя бы 1 индекс на город

    21.11.2018 09:45:08
    alexpimnev
  • Вы пишите, что у каждой системы доставки свои форматы и при этом предлагаете "переработайте и актуализируйте внутреннюю базу городов и регионов в HostCMS", актуализировать с чем и переработать как?

    16.11.2018 12:26:42
    hostcms