Bitrix и много свойств товара

humbert
На сайте с 16.03.2006
Offline
497
1228

Ищу по всему интернету ответ на вопрос, ну и заодно тут спрошу.

Имеем сайт на битриксе, обычный магазин, коих тысячи в сети.

Товаров от 100.000 штук. У каждого товара есть некие свойства: длина, вес, масса, количество в наборе, напряжение и т.д.

Всего более 5000 не повторяющихся названий свойств в базе.

Все товары к одному инфоблоку привязаны для того, чтобы один и тот же товар можно было добавить в несколько разделов.

При редактировании товара мы имеем в карточке все эти самые свойства, а заполнить надо всего-то 3 - 4 свойства.

И начинаются тормоза - на странице раздела подгружаются все свойства и пока не загрузятся с разделом работать невозможно.

На странице товара ситуация лучше - подгружает только те свойства, что прописаны у родительского раздела.

Как правильно работать с большим количеством свойств?

Парсинг прайс-листов, наполнение интернет-магазина товаром. (https://humbert.ru) Любая CMS (Битрикс, OpenCart, Prestashop и даже Woo Commerce )
Aisamiery
На сайте с 12.04.2015
Offline
206
#1

Раскидать, 5000 инпутов/селектов и прочего с навешанными событиями и прочим браузер боюсь не вытащит и вопрос тут не к битриксу, у вас явно что то не то с архитектурой каталога, раз у вас что то типо озона от шин до детского питания и вы решили все это запихнуть в один тип данных.

Воспринимайте инфоблок как расширение файла, например word документ текстовый, exel - табличный, png - картинка, у вас получается что вы хотите сделать такой универсальный файл который может быть чем угодно и сразу всем - это не корректно и проблема с подвисанием страницы еще не самая страшная проблема в целом такого каталога.

Но у битрикса несложно дорабатывается интерфейс в админке и даже если вам реально нужен такой уникальный кейс, сделайте какую то самостоятельную систему управления всем этим

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
humbert
На сайте с 16.03.2006
Offline
497
#2

Aisamiery, на витрине, т.е. там где пользователь будет, там все логично - фильтр небольшой.

Вот взять Я.Маркет, если перейти на страницу холодильников - https://market.yandex.ru/catalog--kholodilniki/71639/list?hid=15450081&onstock=1&local-offers-first=0, то мы увидим небольшое число свойств товара в фильтре

Тоже самое в плитах - https://market.yandex.ru/catalog--kukhonnye-plity/54954/list?hid=237420&onstock=1&local-offers-first=0

При этом часть свойств пересекается в этих разделах (категориях), а часть индивидуальна. Но согласно архитектуре Битрикса все свойства лежат в главном инфоблоке.

Т.е. есть инфоблок Товары, в нем разделы Бытовая техника, Электроинструмент, Одежда. У каждого раздела свои подразделы, в которых товары. У товара 5-20 свойств.

Товаров 100.000, разделов и подразделов 1000 - в сумме получается около 5000 индивидуальных свойств. Вот они и лежат в инфоблоке.

Aisamiery
На сайте с 12.04.2015
Offline
206
#3

humbert, Все верно, а можно сделать тип инфоблока Товары, а в нём уже сделать инфоблоки Бытовая техника, Компьютеры, Одежда. Вы же не будете фильтровать системные блоки компьютера с футболками по размеру? Задать каждому свои свойства, тем более у типа товара не больше 20 свойст и можно воспользоваться инфоблоками 2.0, когда все свойства хранятся в одной строке и одним запросом можно достать все значения а не 20 запросами с стандартной EAV архитектурой

humbert
На сайте с 16.03.2006
Offline
497
#4

Aisamiery, а как поместить товар сразу в несколько инфоблоков?

Вот возьмем Инструменты (тематика как раз моя), там инфоблоки: Ручной инструмент, Автоинструмент, Электроинструмент, Пневматический инструмент, Дачный инструмент

В пневматическом инструменте есть пневматический гайковерт, он же будет в Автоинструменте.

Лопата - это и ручной инструмент, и дачный инструмент.

Как в таком случае быть?

Aisamiery
На сайте с 12.04.2015
Offline
206
#5

humbert, У вас 5000 свойств чисто по инструментам?

Обычно используется торговый каталог, если используете инфоблоки 2.0 то у вас получается до 50 свойств у товара и + еще до 50 свойств у него в торговых предложениях. Родственные вещи, такие как инструменты лучше поместить в один инфоблок, тем более если хотите их показывать в разных разделах.

Основному товару запихиваете общие свойства, такие как размеры, бренды, тип применения, что там еще, а в офферы уже запихиваете уникальные для данного типа инструмента свойства.

Такие каталоги, такого объема проектируются заранее, перед созданием сайта и запихивать всё в один инфоблок не самая отличная идея. И даже если потом нужна какая то функциональнось на определенной странице/поиске или еще чего то, то рядом ставится какое нибудь NoSQL решение и дергается всё от туда.

humbert
На сайте с 16.03.2006
Offline
497
#6

Вот в том то и дело, что такое надо проектировать заранее, но нет бюджета на проектирование - такие проекты стоят не одну сотню тысяч рублей, а может даже и не рублей.

Поэтому один инфоблок и куча характеристик.

Aisamiery
На сайте с 12.04.2015
Offline
206
#7

Либо можно сделать товару поле вида Тип применения мультисписком и в разделе указать какие товары с какими значениями из этого списка подтягивать, но это чуть мудренее конечно, но тоже как то делали такой кейс, когда заказчик нам грузил все товары в корень со своей системы и по разделам раскидывать отказывался

humbert
На сайте с 16.03.2006
Offline
497
#8

Aisamiery, у меня самописный движок магазина есть, кривой, корявый, но в базе более 50.000 уникальных свойств, а если посчитать сколько значений этих свойств у товаров, то более 2 млн. записей.

Движок не тормозит, хотя написан на калькуляторе.

По сути тормоза в Битриксе в админке на странице инфоблока или на странице раздела - битрикс зачем-то грузит все свойства. Достаточно было в инфоблоке их не показывать, либо разбить на постраничный вывод.

А в разделе показывать только тогда, когда пытаешься выбрать нужное свойство для данного раздела.

У меня как раз так и устроено - отдельная таблица для свойств, без привязки к разделам и каталогу. Постраничный вывод свойств в админке. При добавлении свойства к нужному разделу выбираем из списка всех свойств, но снова в постраничном виде, а не целым списком.

Есть ли возможность отключить показ и редактирование свойств при редактировании инфоблока? Ну и тоже самое с разделом - подгружать список свойств только тогда, когда надо добавить свойство в раздел. Такое реально? Поиском не нашел

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий