На установке Мультивендор общий товар, который имеет предложения выводится в категории и вполне логично должен иметь возможность добавиться в сравнения. При этом если в настройках витрины не выбраны продавцы
То при выводе ссылки всё отрабатывает корректно. Но если хоть один (или все) продавцы заданы, тогда появляется ошибка. Цепочка следующая.
- При добавлении товара товар заносится в сессию. Всё ок
- Далее, при обновлении страницы вызывается функция
fn_get_comparison_products. К слову, в функции - В рамках вышеуказанной функции товары проганяются через
fn_get_productsчтобы удалить все недоступные товары из списка. Тут же указан параметр pid с айдишниками товаров http://i.abt.team/inj/20200221-095218-xphAIwkb9o.png - В рамках
fn_get_products, при выбранных продавцах добавляется условие поcompany_id
http://i.abt.team/inj/20200221-095752-jdnzE2JTy8.png - В хуке
get_productsв рамках модуляmaster_productsпри просмотре каталога условие по компании заменяется сcompanies.company_id IN (?n)на(companies.company_id IN (?n) OR products.company_id = 0).
И это отрабатывает при загрузке категории, общие товары с company_id = 0 отображаются. Но из-за параметра pid при попытке получить товары из списка сравнений эта подмена не срабатывает, товары общие товары не попадают в выбору и удаляются из списка сравнения.
Что интересно, если не выбирать в настройках витрины вендоров, то условия по компании не добавляется и такой ошибки нет.

