Поясню в двух слова. Допустим, у нас есть интернет-магазина на трех языках, у которого товары на всех языковых версиях идентичны.
Битрикс рекомендует создавать для этих целей три ифноблока, и в каждом инфоблоке дублировать все свойства, настройки формы редактирования товара, сортирвоку товара, цены, скидки, привязку к категории, значения свойств с типом "список" и тд.
В итоге работа по сопровождению такой группы инфоблоков занимает огромное количество времени у того, кто наполняет сайт. Вот только представьте, бедному редактору нужно помнить, какие языковые версии он добавил для этого товара, а какие еще нет, менять цены во всех трех инфоблоках, а если вдруг нужно будет добавить свойство с типом "список" - то вообще труба, нужно заходить и проделывать огромное число работы по их синхронизации.
Так вот, идея в том, чтобы иметь механизм синхронизации инфоблоков. Создаем один инфоблок, нажимаем кнопку "создать языковую версию", и создается полная копия-дубль данного инфоблока (для перевода на другой язык). Копируется всё, настройки путей, свойства, параметры полей, настройки доступа, сео-свойства и тд и тп.
И далее - синхронизация поддерживается на уровне АПИ, при изменении (добавлении или удалении) свойств одного инфоблока - автоматически аналогичные свойства создаются/удаляются в другом инфоблоке.
При изменении формы редактирования товара, или формы редактирования списка товаров - то же самое, данные настройки автоматически меняются и в связанных языковых инфоблоках.
Потом, на странице редактирования товара делаем кнопочки "Добавить языковую версию", при её нажатии открыватся в попап-окне форма добавления элемента из связанного инфоблока, и редактор добавляет прямо с одной страницы дополнительную языковую версию. При этом у элемента-перевода автоматически проставляются свойства, которые для всех инфоблоков одинаковые (например, цены, числовые свойства или свойства-привязки). При изменении свойств основного элемента (например, поменялась цена или сортирвока) эти свойства автоматически изменяются и в связанном элементе.
Таким образом, всё управление по элементу будет проходить на одной странице, и редактирование самого товара, и его языковых переводов. При этом сохраняются все преимущества хранения товаров в раздельных инфоблоках:
- настройки путей для поиска;
- возможность задавать или не задавать перевод для разных товаров, или иметь разные товары в разделы разделах;
- возможность настраивать права доступа на редактирование разных языковых версий;
- возможность делать свои шаблоны сео-путей для разных переводов;
- возможность делать автоматические рассылки для разных языков с помощью модуля рассылок;
- отсутствие необходимости иметь большое число свойств в одном инфоблоке (например, если у инфоблока в сумме 50 свойств, то чтобы добавить перевод для 3-х языков нужно будет добавлять 150 свойств).
В то же время, благодаря репликации инфоблоков будем иметь:
- удобство редактирования переводов товара с одной страницы карточки товара;
- возможность менять цены и числовые свойства, сортировки и привязки в одном месте один раз;
Какие у кого мысли по этому поводу? Есть ли будущее у данной модели и насколько она жизнеспособна?
Битрикс рекомендует создавать для этих целей три ифноблока, и в каждом инфоблоке дублировать все свойства, настройки формы редактирования товара, сортирвоку товара, цены, скидки, привязку к категории, значения свойств с типом "список" и тд.
В итоге работа по сопровождению такой группы инфоблоков занимает огромное количество времени у того, кто наполняет сайт. Вот только представьте, бедному редактору нужно помнить, какие языковые версии он добавил для этого товара, а какие еще нет, менять цены во всех трех инфоблоках, а если вдруг нужно будет добавить свойство с типом "список" - то вообще труба, нужно заходить и проделывать огромное число работы по их синхронизации.
Так вот, идея в том, чтобы иметь механизм синхронизации инфоблоков. Создаем один инфоблок, нажимаем кнопку "создать языковую версию", и создается полная копия-дубль данного инфоблока (для перевода на другой язык). Копируется всё, настройки путей, свойства, параметры полей, настройки доступа, сео-свойства и тд и тп.
И далее - синхронизация поддерживается на уровне АПИ, при изменении (добавлении или удалении) свойств одного инфоблока - автоматически аналогичные свойства создаются/удаляются в другом инфоблоке.
При изменении формы редактирования товара, или формы редактирования списка товаров - то же самое, данные настройки автоматически меняются и в связанных языковых инфоблоках.
Потом, на странице редактирования товара делаем кнопочки "Добавить языковую версию", при её нажатии открыватся в попап-окне форма добавления элемента из связанного инфоблока, и редактор добавляет прямо с одной страницы дополнительную языковую версию. При этом у элемента-перевода автоматически проставляются свойства, которые для всех инфоблоков одинаковые (например, цены, числовые свойства или свойства-привязки). При изменении свойств основного элемента (например, поменялась цена или сортирвока) эти свойства автоматически изменяются и в связанном элементе.
Таким образом, всё управление по элементу будет проходить на одной странице, и редактирование самого товара, и его языковых переводов. При этом сохраняются все преимущества хранения товаров в раздельных инфоблоках:
- настройки путей для поиска;
- возможность задавать или не задавать перевод для разных товаров, или иметь разные товары в разделы разделах;
- возможность настраивать права доступа на редактирование разных языковых версий;
- возможность делать свои шаблоны сео-путей для разных переводов;
- возможность делать автоматические рассылки для разных языков с помощью модуля рассылок;
- отсутствие необходимости иметь большое число свойств в одном инфоблоке (например, если у инфоблока в сумме 50 свойств, то чтобы добавить перевод для 3-х языков нужно будет добавлять 150 свойств).
В то же время, благодаря репликации инфоблоков будем иметь:
- удобство редактирования переводов товара с одной страницы карточки товара;
- возможность менять цены и числовые свойства, сортировки и привязки в одном месте один раз;
Какие у кого мысли по этому поводу? Есть ли будущее у данной модели и насколько она жизнеспособна?