На установке Мультивендор общий товар, который имеет предложения выводится в категории и вполне логично должен иметь возможность добавиться в сравнения. При этом если в настройках витрины не выбраны продавцы
То при выводе ссылки всё отрабатывает корректно. Но если хоть один (или все) продавцы заданы, тогда появляется ошибка. Цепочка следующая.
- При добавлении товара товар заносится в сессию. Всё ок
- Далее, при обновлении страницы вызывается функция
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
при попытке получить товары из списка сравнений эта подмена не срабатывает, товары общие товары не попадают в выбору и удаляются из списка сравнения.
Что интересно, если не выбирать в настройках витрины вендоров, то условия по компании не добавляется и такой ошибки нет.