Одна установка WA+SS. Два домена А и Б. Две разные темы дизайна. Витрина А и для нее предназначены товары только типа А. Витрина Б и для нее предназначены товары только типа Б.
Никаких проблем такое разделение типов не создает и все работает хорошо. Товары, категории, теги и т.п. всё красиво разнесено на две витрины.
Сразу уточню. Речь идет про зарегистрированного пользователя или пользователя бекенда. Технически с гостем такая ситуация нереальна и воспроизводима только в лабораторных условиях при доступе к БД, а с зарегистрированным пользователем будут скорее другие проблемы при попытке зарегистрироваться с теми же данными на второй витрине, но суть моего поста в следующем.
"Проблемы" начинаются тогда, когда товар добавляется в корзину. Допустим на одной витрине я добавляю в корзину один товар. На второй витрине тоже добавляю один товар. В корзинах на разных витринах я вижу теперь два товара по одному с каждой условно "недоступной" витрины.
При беглом осмотре таблицы shop_cart_item выясняется, что в магазине не осуществляется проверка типа товара type_id на соответствие витрине при выборе id товара только по code корзины, который записывается в куку shop_cart.
Гостевые корзины имеют разные code и с ними проблем нет, как уже ранее было сказано в уточнении.
Однако считаю отсутствие такой проверки на соответствие типов недоработкой и потенциальной ошибкой. Если делать привязку товаров к витринам, то делать её надо полноценно.
Корзина, в которой при разграничении по типам, могут встретиться товары с разных витрин - это не есть правильно. Пусть даже эта корзина искуственно смоделирована зарегистрированным пользователем и возможна лишь теоретически.
Для каждого домена ставится свой идентификатор в cookie, поэтому для гостя они не будут пересекаться. Если же 1 зарегистрированный клиент использует оба сайта и у вас в настройках включено объединение корзины, то может быть пересечение.
Если под объединением корзины имеется ввиду настройка под более точным названием "Синхронизировать товары в корзине авторизованного покупателя на всех устройствах.", то это не то и работает она не так и на проверку типов не влияет никак вообще.
Если же объединение корзины - это что-то принципиально иное, то хотелось бы узнать подробности.
Речь про отсутствие проверки типа товара в корзине. Вышеописанная ситуация воспроизводится в одном браузере на соседних вкладках буквально на раз-два. Сильно не парит, т.к. воспроизводимость ситуации для внешнего покупателя маловероятна. Однако проверки нет, а логично, чтобы была.
Иначе зачем нужны танцы с мультивитринами, типами и т.п., если типы не проверять?
2 комментария
Для каждого домена ставится свой идентификатор в cookie, поэтому для гостя они не будут пересекаться.
Если же 1 зарегистрированный клиент использует оба сайта и у вас в настройках включено объединение корзины, то может быть пересечение.
Если под объединением корзины имеется ввиду настройка под более точным названием "Синхронизировать товары в корзине авторизованного покупателя на всех устройствах.", то это не то и работает она не так и на проверку типов не влияет никак вообще.
Если же объединение корзины - это что-то принципиально иное, то хотелось бы узнать подробности.
Речь про отсутствие проверки типа товара в корзине. Вышеописанная ситуация воспроизводится в одном браузере на соседних вкладках буквально на раз-два. Сильно не парит, т.к. воспроизводимость ситуации для внешнего покупателя маловероятна. Однако проверки нет, а логично, чтобы была.
Иначе зачем нужны танцы с мультивитринами, типами и т.п., если типы не проверять?