Сдэк кода городов

Последняя версия csv (4.17.2)
RU,482,MOS,“143500,143501,143502,143508”,Истра
RU,35249,MOS,143423,Истра

Если клиент оформляет заказ и пишет Истра МО ему выдают варианты, а если в админки работать с заказам, Индекс не нужен, и если выбрать Истра МО, ошибка так как дубликат в базе есть.

upd. 482 Истра, а 35249 это пос. Истра, но так как в csv у вас два раза просто Истра, результат у одного города 2 кода, то есть сейчас руками надо добавить пос. Истра, а после привязать 35249 туда

upd2


При добавлении все становится корректно в таблице rus_sdek_cities_link происходит замена.

2 лайка

Здравствуйте.

Идет работа над интеграцией со СДЭК API 2.0, добавил ваш запрос как +1. Планируется получение списка городов через api => пропадет вопрос поддержки в актуальном состоянии бд, так как это сможет делать сам клиент (у нас список ПВЗ в pickpoint уже так обновляется).

Это дурдом, если не изменяет память там в рф 100к населенных пунктов они отдают, по факту приоритет те где есть ПВЗ, если залить такую огромную базу там при написании будут дубли не понятные, в текущей выдачи.
Есть области где 20 населенных пунктов имеют одно название, клиент не сможет понять какой его и в итоге сдэк уедет не туда (ну если ему сдэк курьер нужен)

Вот пример работы с интеграцией dadata в выбор города, а после и получение у dadata данных по курьерским службам для этого города, все на кеше 2х недельном так что задержек там нет

Индекс позволяет понять, плюс тут и район указывается, а если вы зальете весь Сдэк в базу вы ее убьете просто.

Здравствуйте.

Базу заливать не потребуется, вот пример запроса:

Pickpoint работает нормально по тому же принципу. Не думаю, что СДЭК будет иначе. В любом случае, это пока только намеченные планы. Делюсь с вами :slightly_smiling_face:

Вы же знаете, что сдэк постоянно падает и лагает часто, вы понимаете, что будет если вы к ним будете регулярно стучать? С таким же эффектом можно в целом и api 1.5 использовать там так же можно по названию города получить код.

На API 1.5 такой фичи нет, насколько мне известно. скиньте ссылку пожалуйста если это не так. а расчет доставки и так регулярно стучится в сдэк за получением рейтов, поэтому если лежит СДЭК то не будет ответа в любом случае

https://api-docs.cdek.ru/15616129.html#id-Протоколобменаданнымиv1.5(deprecated)-City

Искать по “Метод используется для получения детальной информации о городах.”

Соответствие регионов

$states_cdek['RU'] = array(
                5 => 'ORE',
                67 => 'NIZ',
                13 => 'KYA',
                11 => 'KHM',
                32 => 'ME',
                69 => 'PNZ',
                39 => 'TA',
                40 => 'VGG',
                47 => 'SAR',
                57 => 'SAM',
                27 => 'BA',
                65 => 'SMO',
                79 => 'SE',
                7 => 'KDA',
                45 => 'ROS',
                75 => 'TY',
                56 => 'AMU',
                71 => 'CE',
                41 => 'RYA',
                18 => 'PRI',
                19 => 'STA',
                78 => 'KB',
                80 => 'KC',
                9 => 'MOS',
                1 => 'KO',
                3 => 'CHE',
                76 => 'YEV',
                35 => 'YAR',
                51 => 'VLG',
                36 => 'ORL',
                4 => 'IRK',
                90 => 'KRY',
                81 => 'MOW',
                24 => 'SVE',
                22 => 'PER',
                2 => 'ALT',
                74 => 'KK',
                30 => 'PSK',
                66 => 'ARK',
                50 => 'TVE',
                52 => 'TYU',
                15 => 'OMS',
                33 => 'KLU',
                54 => 'KEM',
                26 => 'LEN',
                23 => 'NVS',
                17 => 'VLA',
                6 => 'YAN',
                82 => 'SPE',
                61 => 'AD',
                16 => 'BEL',
                8 => 'IVA',
                63 => 'VOR',
                44 => 'KIR',
                64 => 'CU',
                62 => 'KRS',
                31 => 'NGR',
                49 => 'ZAB',
                14 => 'KHA',
                10 => 'SA',
                28 => 'KGN',
                20 => 'SAK',
                29 => 'BRY',
                55 => 'KAM',
                34 => 'AST',
                60 => 'LIP',
                59 => 'MAG',
                83 => 'CHU',
                43 => 'MUR',
                53 => 'TOM',
                38 => 'KGD',
                12 => 'BU',
                25 => 'AL',
                73 => 'KR',
                70 => 'ULY',
                58 => 'TAM',
                46 => 'KL',
                21 => 'DA',
                48 => 'UD',
                37 => 'TUL',
                68 => 'MO',
                72 => 'IN',
                42 => 'KOS',
                77 => 'NEN',
            );

Ну а дальше все просто запрашиваем город в нужном регионе. Лучше сразу переписать
public static function cityId($location)