
Новая база бесполезна без привычных доработок. Разбираем накопленный набор модулей и переносим его на девятнадцатую версию — не «чтобы установилось», а с живой проверкой на стенде.
Доставка: три перевозчика
Портированы калькуляторы трёх транспортных компаний. Первый — со справочником городов, который лениво подтягивается с публичного сервиса, и расчётом через открытый калькулятор; проверили вживую: справочник синхронизировал 4807 городов, расчёт вернул реальную цену на тестовом маршруте, транзакцию откатили. Второй перевозчик приехал со своим списком терминалов и адресным справочником. Третий добавлен как отдельный модуль с получением тарифа по API.
Что чинилось при портировании
Типовые грабли перехода: старый синтаксис условий видимости полей заменён на прямые выражения; расширение списка типов доставки перестало затирать чужих перевозчиков — теперь это добавление значения с корректным поведением при удалении; методы расчёта приведены к современному интерфейсу, который возвращает структуру с ценой и текстом ошибки. Плюс мелочи вроде остатков Python 2 и опечаток в определениях полей, которые роняли загрузку.
Не только доставка
Тем же порядком переехали: обмен электронными документами с оператором ЭДО, набор печатных форм и журналов в формате таблиц, модуль договоров — его собрали из двух источников в один самодостаточный, с карточкой договора, реквизитами сторон и частью для ЭДО. Отдельно перенесён виджет связи для сайта: обратный звонок, мессенджеры и онлайн-чат по наличию оператора.
Итог
Набор рабочих доработок на девятнадцатой версии растёт, каждый модуль проверен установкой и живым сценарием, исходники — в репозитории в ветке под версию.