Может я конечно чего не понимаю, но слегка напрягает наличие двух типов адресов (shipping и payment) и тонны всевозможных полей в них при отсутствии shipping_phone (который может не совпадать с основным телефоном клиента). Вот как так?! В моей логике работы магазина номер телефона привязан к адресу доставки (ровно так же, как получатель по этому адресу может не совпадать с основным клиентом).
Ну ок, сделаем свой лунапарк с блекджеком и барышнями свой shipping_phone через модуль Simple. Simple создает свою отдельную таблицу кастомных полей, чтобы не портить базу, ок. Теперь я хочу вывести этот номер телефона в заказе в админке. Номер телефона из кастомной базы oc_address_simple_fields можно вытащить (что логично) по address_id. И тут (внезапно!) оказывается, что в таблице oc_order не никакого address_id, а есть только customer_id. А в базе кастомеров есть address_id, но только для основного адреса. И всё. Второй, третий и дальнейшие адреса пролетают над Парижем аки фанера. Что дальше? Сравнивать записи из oc_order и oc_address построчно? Что за бред? Как с этим бороться?!
Спасибо! Буду очень признателен, если поможете и подскажете, что и где я пропустил.