Задать вопрос
@fullstack-tishin
Fullstack Dev

Как избежать дублирования товара при наличии нескольких родителей?

Здравствуйте,
Нестандартная ситуация, как по мне. Если стоит задача из обмена с 1С получить товар, у которого 2 родителя. Ну вот так случилось у клиента.

Не хочу при приходе 1 товара с несколькими родителями создавать копию товара и по нужным инфоблокам распределять.

Как логически правильнее сделать, дабы дальше избежать множества подводных камней?
Как вариант, добавить товару свойство доп.родитель и туда размещать дополнительного родителя. Но не будет ли проблем с дальнейшей фильтрацией по остаткам на складах и значению свойства для вывода каталога товара?
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 3
@koder_1
Битрикс программист
Битрикс поддерживает у товара несколько родительских разделов, это штатный функционал.
А вот как вы сделали несколько родительских разделов в 1С? Научите?
Ответ написан
@tgarl
Если у вас каждый основной раздел это отдельный инфоблок, то товары у каждого свои, пересекаться они не могут и не должны. И для обмена разные инфоблоки не должны содержать элементы с одинаковым внешним кодом иначе ошибки полезут такие что рагзгребать будете долго.
Можно попробовать вариант добавить множественное свойство у товара "Привязка к разделам" и в него чтобы прописывалась связка с другим инфоблоком.
Ответ написан
насчет фильтрации по складам - не понял вопроса, а вот в публичной части проблемы наверняка будут. Потому что у вас второй инфоблок по сути будет без элементов.
Привязать элемент к двум инфоблокам нельзя, потому что это "зашито" в структуре БД.
Если взять идею tgarl и довести до логического предела, то получится так:
Допустим, у нас 5 корневых разделов , то есть 5 инфоблоков. Делаем шестой инфоблок без разделов, сваливаем туда все элементы. А у первых пяти добавляем в раздел множественное UF-поле с привязкой к элементам шестого инфоблока.
Я глубоко убеждён, что в публичной части штатный фильтр каталога работать не сможет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы