По идее все это делается через доработку модуля доставки (по умолчанию в опенкарте можно настроить только страну/регион).
Для этих целей я сделал Filterit (для настройки всех модулей оплаты/доставки без доработки по разным условиям).
Но в Вашем случае можно конечно и модуль "допилить", достаточно в нем сделать проверку перед
if ($status)
нужно просто добавить
if (trim(utf8_strtolower($address['city'])) != 'москва') {
$status = false;
}
Скажи, купил и установил твой модуль, по проблеме написал тебе в ЛС. Вроде бы как ошибка пропала, но как сделать так, чтобы для определенного региона (Москва) была опция Оплаты при получение, а для всех других нет, я так и не понял как сделать, если не сложно подскажи