Хотел переделать партнерку, в итоге в версии ocStore 3.0.2.0 нашел ошибки.
В контроллере account/tracking.php в методе autocomplete идет генерация ссылки. Если включен СЕОПРО и у продукта есть СЕО ссылка то партнерский код обрезается.
Долго не думая, заменил вот это
foreach ($results as $result) {
$json[] = array(
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),
'link' => $links
);
}
на вот это
foreach ($results as $result) {
if( $this->config->get('config_seo_pro') ) {
$links = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $result['product_id'])) . '?tracking=' . $tracking;
} else {
$links = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $result['product_id'] . '&tracking=' . $tracking));
}
$json[] = array(
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),
'link' => $links
);
}
по сути конечно же нужно бы еще проверить есть ли у продукта сео ссылка. думаю кто в теме разработки сделать труда не составит
Далее
При регистрации в партнерке в контроллере mail/affiliate строка
$customer_group_id = $args[1]['customer_group_id'];
возникает ошибка, так как в массиве $args нет такого значения.
Можно код выше заменить на этот
$customer_group_id = $this->config->get('config_customer_group_id');
Не знаю вносились ли эти изменения по партнерке, но факт в том что у кого более ранняя версия опенкарта эта ошибка есть