тут логика такова:
OpenCart делает запрос в БД и формирует список по полю zone_id (ну соответственно с выполненным статусом)
а javascript вывода карты обрабатывает уже этот список по полю code
в стандартной версии OpenCart значение code в таблице zone для всех городов одной области одинаковое.
(и поле code в оригинальном OpenCart могут повторяться для разных регионов, но zone_id (регион, область) у них разные - к примеру штат Висконсин в США имеет тот же code VI, что и Винницкая область VI, но вот zone_id у них другие)
в вашем случае отличаются и поле code и поле zone_id
потому тут встают вопросы о том:
а) что надо как-то менять структуру запроса в БД
б) или подсунуть javascript список из кодов городов области
а вот тут я не знаю, съест ли javascript структура типа "80,201,245" вместо "80" или может надо записать как-то "80","201","245"
в) оставить логику работы Opencart по country_id, но залезть в таблицу country и там для каждой области в поле code заменить UA на UA-VI (для Винницкой области), UA-ZH (для Житомирской) и т.д. и такие же индексы прописать в jquery.vmap.ukraine.js.
Но тут непонятен вопрос, как на это отреагируют остальные модули ?!?!?!?!?