Добрый день.
Есть интернет-магазин на Laravel. Имеется задача: при оформлении заказа, пользователю показывать стоимость и сроки различных служб доставки.
Пример 1: на странице оформления, на шаге "доставка" пользователь выбирает страну "Россия" и город "Санкт-Петербург". Ему должны отобразятся 4 варианта получения товара:
- СДЭК самовывоз
- СДЭК курьером
- DHL самовывоз
- DHL курьером
Пример 2: точно такие же условия, только язык сайта выбран "английский" и город тоже на английским "St. Petersburg". Также отобразится 4 варианта.
У СДЭК есть своя база российских городов с названиями по-русски. У DHL есть своя база городов с русскими и английскими названиями. Запрос в калькулятор СДЭК содержит идентификаторы городов их же базы. Запрос в калькулятор DHL содержит сокращенные названия городов на английском языке из их же базы.
Очевидный способ объединения городов - создать свою общую базу городов, которую сопоставить с базами служб доставок. Итого уже 3 базы (1 общая, 2 от служб). Вопрос в том, как сопоставить все эти города? Ведь из общего признака - только название города. Но в разных базах оно может отличаться, например у DHL не St. Petersburg, а ST PETERSBURG (без точки). Есть у кого-то опыт в интеграции разных доставок в 1 магазин? Посоветуйте, пожалуйста методику.