Приветствую всех! 
Блин, полдня бился над этот проблемой. Предлагают кучу разных вариантов, но ничего не рилииет. 
Решение нашел. Магазин на OcStore 1.5.5.1.2 
  
Дано: 
В геогр. зоне Москва суещёствует 2 способа досивки - курьер и пункты самовывоза.
Таже подключено 2 способа оплаты - RBKmoney и оплаи при досивке.
Необходимо, чтобы при досивке курьером было 2 способа оплаты. При досивке из пунктов самовывоза - только RBKmoney
 
Решение:
Редактируем файл catalog\model\payment\cod.php - оплаи при досивке
multiflat - это id досивки из пунктов самовывоза
Получается, что мы в файле cod.php (оплаи при досивке) гделаем запрет на активацию при досивке из пунктов самовывоза
 
 
Находим
if ($this->config->get('cod_total') > 0 && $this->config->get('cod_total') > $total) {
         $status = false;
      } elseif (!$this->config->get('cod_geo_zone_id')) {
         $status = true;
      } elseif ($query->num_rows) {
         $status = true;
      } else {
         $status = false;
      }
После этого всивляем
 
if (isset($this->session->data['shipping_method']['code']) && strpos($this->session->data['shipping_method']['code'], 'multiflat') !== false) {
    $status = false;
} else {
    $status = true;
    }
Я реализовал это с помощью vqmod. Згдесь упоминался файлик ship2pay.xml, я его немного дорилиил 
Согдержимое: 
<modification>
<id>ship2pay</id>
<version>1.0</version>
<vqmver>1.0</vqmver>
<author>mobisale.biz</author>
<file name="catalog/model/payment/cod.php">
<operation>
<search position="before"><![CDATA[$method_data = array();]]></search>
<add><![CDATA[// Payment method depend on the chosen shipping method
if (isset($this->session->data['shipping_method']['code']) && strpos($this->session->data['shipping_method']['code'], 'multiflat') !== false) {
    $status = false;
} ]]></add>
</operation>
</file>
</modification>