Битрикс товар в нескольких разделах – Битрикс — Scoder: Эквивалентность разделов. Автоматическая привязка товаров к нескольким разделам

Как создать несколько каталогов в Битриксе? — Хабр Q&A

Ярослав Александров, прошу прощение за столь долгий ответ. Как говорит русский афоризм: «то ли лыжи не едут, то ли я дурак». Сделал как вы сказали выше и все заработало, но после пару входов/выходов слетели все каталоги, опять(
— пришлите ссылки на эти источники

1. https://dev.1c-bitrix.ru/support/forum/forum6/topi…
2. https://ut11-bitrix.ru/learning-eshop-on-1c-bitrix…
3.bx-qa.com/?qa=36242/%D0%B2%D0%BA%D0%BB%D1%8E%D1%87…
Это те которые вспомнил, больше смогу завтра на работе скинуть, 2 основопологающих не нашел.
Каталоги в папке «спецпредложение» (ценник, бланки и т.д.) это самостоятельные каталоги или на что-то завязаны. Судя по названию это случайно не торговые предложения?
С чем связано, что три каталога находятся в одной папке?

Данные страницы — это акции. Акции связанны с определенным ассортиментом товара которого нет в общем каталоге. Всего три группы товаров которые должны выводиться на разных страницах. Для лучшего понимания прикреплю ссылку на общую страницу акции с которой происходит распределение по данным каталогам.
https://orelopt.ru/spetspredlozhenie/
— поставьте локально демо магазин битрикс, там есть каталог, делаете аналогично, ничего не меняется даже хоть десять каталогов:

Здесь логично будет еще раз пройти путь со скринами, потому что я не понимаю что делаю гне так.
Создано 3 ИБ и в них выгружено 3 каталога из 1С .
Создано 3 каталога в нужных страницах и присвоил ID. После зашел в настройки — обработка адресов — правила обработки и создал 3 записи для каждого инфоблока (ЧПУ). Что бы не было дублирования в корне сайта создал 3 отдельные папки в которых разместил нужные каталоги и на которые ссылаюсь из «обработки адресов». В документ index.php положил каталог.
Для начала ссылаемся на каждую страницу:
...
<li><a href="/spetspredlozhenie(1)/index.php">Перейти к продуктам</a></li>
...
<li><a href="/spetspredlozhenie(2)/index.php">Перейти к продуктам</a></li>
...
<li><a href="/spetspredlozhenie(3)/index.php">Перейти к продуктам&nbsp;</a></li>

Возвращаюсь в настройку каталога — ЧПУ. Далее прописываю так:Что я опять делаю не так?

Битрикс — Привязка раздела к нескольким родительским разделам

0

21.09.201810:3521.09.2018 10:35:44

Множество раз пересекался с проблемой множественной привязки раздела к нескольким родительским разделам. Мнения расходятся: кто-то говорит это сильно необходимо, а кто-то, что технически не имеет смысла и абсурдно такое делать.
Но т.к. есть спрос, то хотелось бы предложить и решение.
По умолчанию в 1С-Битрикс нет возможности привязать раздел к нескольким разделам родителям.
Конечно, не стали придумывать способы как это поправить, т.к. подобные манипуляции непременно привели бы к проблеме по работе публичных компонентов, таких как bitrix:catalog.

Но мы придумали как это обойти, для этого необходимо использовать модуль «Товарные коллекции в разделах / Категории для Seo. Посадочные разделы в каталоге. Товары со скидкой.» С помощью данного решения можно создавать подразделы — дубли, к которым будут привязаны те же самые товары, что и к исходному подразделу, который необходимо привязать к нескольким родительским разделам.

Для наглядности приведу пример:

Стоит задача, чтобы подраздел «Чехлы» (родитель — Смартфоны) был доступен также в разделе «Планшеты».
Первоначальное дерево разделов выглядит так:
.Смартфоны
..Чехлы
.Планшеты

Используя данное решение, нужно будет просто создать подраздел — дубль с таким же названием «Чехлы» (и прочими характеристиками)  в разделе «Планшеты» и настроить условия попадания товаров из исходного раздела.

Конечный результат будет таким:
.Смартфоны
..Чехлы
.Планшеты
..Чехлы

Таким образом можно решить вопрос множественной привязки раздела.
Это только один из способов применения данного модуля, а способов множество. Некоторые другие возможности можно посмотреть в статье «Товарные коллекции в разделах / Категории для Seo» — удобный, универсальный модуль для решения многих наболевших задач.
А также на странице описания самого модуля marketplace.1c-bitrix.ru/solutions/scoder.collections/

Эквивалентность разделов. Автоматическая привязка товаров к нескольким разделам

Технические данные

Дата публикации:

04.10.2018

Адаптивность:

Нет

Поддержка композита:

Нет

Число установок:

Менее 50 раз

Совместимые редакции

Описание

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

Некоторые примеры использования:

  1. Если устраиваете акцию по товарам из определенных категорий, то эффективнее будет выделить их в отдельную категорию, например, создав дополнительный раздел «Акции, скидки«. Сопоставить разделы акционных товаров новому разделу, и товары будут также выводиться в категории «Акции, скидки».
  2. Данный пример более подойдет разработчикам. Модуль может служить очень полезным инструментом для крупных проектов, наподобие «агрегаторов интернет-магазинов«, в котором собираются товары различных магазинов. Модуль позволит пользователям, имеющим профиль продавца, сопоставить их категории Вашим.

Также вас может заинтересовать: Товарные коллекции в разделах / Категории для Seo. Посадочные разделы в каталоге. Товары со скидкой.
Порядок установки:
  • Решение устанавливается стандартно для Marketplace.
  • После установки необходимо перейти в настройки модуля: Настройки -> Настройки продукта -> Настройки модулей -> Эквивалентность разделов. Автоматическая привязка товаров к нескольким разделам. В настройках выбрать инфоблоки, с которыми будет работать модуль. Данное действие обязательно.
  • У разделов выбранных инфоблоков появится пользовательское поле «Идентификаторы разделов родителей» [UF_SCODER_IN_PARENT]. В администраторском интерфейсе на странице редактирования нужного раздела в данном поле необходимо выбрать разделы, в которые также должны попадать товары данного — редактируемого раздела.
  • Для более удобной настройки в модуль входит служебный компонент «Соотношения разделов инфоблока» [scoder:sectionrelationships], который можно разместить на любой странице сайта, и проводить настройки. Компонент доступен через дерево компонентов в визуальном редакторе, если не появился, обновите кэш редактора. Визуально отображение в зависимости от стилистики вашего сайта может отличаться от примеров на скриншотах.
Важные тех. моменты:
  • Данный модуль разработан с использованием апи D7.
  • Минимальные технические требования для продукта с версии 14.0 (с ядром D7):
  • PHP версии 5.6.
  • MySQL версии 5.
Техническая поддержка осуществляется по e-mail адресу [email protected]. Все просьбы и предложения, пожалуйста, отправляйте на указанный почтовый ящик или в комментариях к решению.

При обращении в службу поддержки обязательно указывайте:

  • адрес сайта,
  • логин и пароль администратора,
  • ftp логин и пароль,
  • e-mail покупателя модуля или номер вашего купона.

Предприятие и почему она стала массовой. Часть 2 / 1С-Битрикс corporate blog / Habr

Продолжу рассказ на тему интеграции интернет-магазинов с бэкофисом и подходе к их решению в нашей реализации интеграции интернет-магазина 1С: Битрикс с системой 1С: Управление торговлей.

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

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

Напомню, что в общем и целом была выбрана следующая схема интеграции:

1) Сайт и 1С работают независимо и обмениваются данными в формате CommerceML
2) Сайт не имеет прямого доступа к 1С
3) 1С регулярно обращается к публичному скрипту на сайте, отдавая или принимая данные
3) Инициатором обмена и соединения всегда выступает 1С

Рассмотрим реализацию этой концепции на практике.

Итак, как я уже говорил ранее, в состав конфигурации «1С: Управление торговлей» входит специализированный модуль для обмена данными с сайтами. Это универсальный модуль, работающий по описанному в предыдущем посте протоколу и с использованием формата CommerceML.

Модуль есть в типовой поставке 1С: Управление торговлей как для версии 10.3, так и для версии 11 (платформа 8.2). Помимо 1С: Управление торговлей функционал обмена с сайтами также есть и в других конфигурациях, включая локализованные. Мы свели информацию о поддержке функционала обмена с сайтами в конфигурациях 1С в специальную таблицу — 1c.1c-bitrix.ru/ecommerce/require_1C.php.

Рассмотрим функционал модуля, входящего с состав 1С: Управление торговлей 11.

Первая вкладка интерфейса модуля содержит основные настройки взаимодействия.

Раздел Режим обмена данными — позволяет указать какой режим обмена будет использоваться в данном профиле. Или проще говоря — какая бизнес-задача будет решаться в сеансе обмена: выгрузка товаров, обмен заказами или и то и то.

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

Контроль изменений позволяет использовать внутренние журналы 1С, фиксирующие изменения объектов, связанных с обменом с сайтом и включать в обмен только те данные, которые были модифицированы в 1С с момента предыдущего сеанса обмена. Разумеется, это уменьшает объем данных, снижает нагрузку и на 1С и на сервер интернет-магазина.

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

Рассмотрим более подробно решение первой задачи интеграции —

Выгрузка товаров (справочника номенклатуры) из 1С на сайт интернет-магазина

Для этого необходимо в режиме обмена поставить опцию «Выгрузка товаров», в результате чего будет доступна одноименная вкладка:

Выбор товаров для выгрузки и настройки выгрузки в 1С

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

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

Так, например, можно выбрать группы и подгруппы каталога, выгружать товары с ненулевыми остатками, с определенными типами цен (розничная, оптовая, дилерская), с конкретных складов и тому подобное.

Далее, по умолчанию, все товары выгружаются в файл XML в единый каталог (тег <Каталог>). У каждого каталога есть свой классификатор, включающий структуру групп и подгрупп для товаров, а также свойства для всех товаров этого каталога.

Если на сайт выгружаются разные типы товаров, обладающие собственным деревом групп и собственным набором свойств (характеристик), то рекомендуется каждый такой тип выгружать в отдельный каталог. Так, в системе 1С-Битрикс: Управление сайтом, это приведет к тому, что каждый каталог будет выгружен в отдельный информационный блок, у которого свои группы, свойства, права, настройки и т.п. В результате можно в интернет-магазине сделать разное представление для разных типов товаров: иерархия, фильтр по свойствам, сравнение товаров и т.п.

Настройки каталогов в этом случае будут примерно такие:

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

Ставить галочки «Выгружать файлы изображений» и «Выгружать прочие файлы» имеет смысл, если в 1С есть качественные описания товаров, изображения, связанные файлы (инструкции и т.п.). Очень многие владельцы интернет-магазинов не хранят в 1С описания товаров, свойства, качественные описания. В 1С они им не столь нужны, а на сайте как правило есть и HTML-редактор для описаний, и разнообразные утилиты по обработке изображений, нанесению водяных знаков. К тому же, организовать удаленную работу контент-редакторов удобнее всего при работе с веб-сайтом, чем пускать их внутрь 1С. И, тем не менее, находятся и те, кто предпочитает всю описательную часть хранить в одном месте — в 1С, а сайт использовать как инструмент визуализации. Есть и другая задача — когда одни и те же товары выгружаются в несколько интернет-магазинов одновременно. Тогда лучше один раз сделать описания в 1С, а потом их автоматически выгружать на несколько площадок.

Какую выбрать модель управления каталогом — решает конечный пользователь. Главное, что функционал интеграции это позволяет.

Процесс выгрузки

Если теперь запустить выгрузку (нажать кнопку «Выполнение обмена данными»), то 1С начинает подготавливать выгружаемые данные.

Генерируются 2 файла: import.xml и offers.xml (для каждого выгружаемого каталога). Первый файл содержит информацию о товарном каталоге (структура, товары, свойства), а второй — торговые предложения по данному товару. Если у одного товара есть варианты, зависящие от характеристик (цвет, размер и т.п.), то все они будут предложениями в файле offers. Детали — в стандарте CommerceML 2.04.

Если с товарами связаны изображения или файлы, то они размещаются в подпапке import_files, и на них ссылаются данные из XML.

Вот например были выгружены 2 каталога товаров из 1С:

Теперь нужно эти файлы передать на сервер. В протоколе обмена (см.часть 1) для этого есть специальный режим: http://<сайт>/bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=<имя файла>.

Если объем данных большой (происходит первоначальная выгрузка большого справочника номенклатуры), то конечно хотелось бы оптимизировать передачу файлов.

Во-первых, используется ZIP-сжатие. Как мы помним, перед началом передачи файлов 1С запрашивает у сайта параметры обмена, среди которых есть флаг поддержки ZIP-сжатия. Все файлы упаковываются и получается один zip-архив, который и отправляется на сайт. Если сжатие не поддерживается, отправляются все файлы из папки (включая картинки) последовательно.

Во-вторых, многие хостинг-провайдеры лимитируют объем данных, передаваемых POST-запросом. И даже zip-архив может легко не пройти, если он составляет десятки мегабайт. В этом случае 1С может разбивать выгружаемые файлы на порции, если их размер превышает максимально допустимый. На стороне сайта происходит прием пронумерованных порций и последующая их сборка обратно в единый файл. Максимальный размер порции данных 1С также получает от сайт в режиме инициализации обмена.

Теперь принятые файлы нужно обработать на стороне сайта и загрузить в базу сайта.

Здесь также есть момент ограничений хостинга. Обработкой (разбором XML и загрузкой в базу) занимается PHP-скрипт, время работы которого обычно лимитировано. Конечно, в начале скрипта стоит set_time_limit(0), но не везде это работает. Поэтому в настройках 1С-Битрикс можно указать максимальное время, которое может отработать скрипт — по умолчанию 30 секунд. Тогда при достижении этого лимита, скрипт будет перезагружен и продолжит импорт с предыдущей позиции в файле.

Кроме того, скрипт импорта может сравнивать контрольные суммы XML-описания товаров в обрабатываемом файле с контрольной суммой этого товара в базе с момента предыдущей загрузки. Если контрольные суммы совпадают, то товар пропускается и не обновлняется. Это нужно для тех случаев, когда каталог уже выгружен на сайт, а из 1С все равно делается полная выгрузка. Тогда импорт данных будет выполнен существенно быстрее.
Конечно, всегда рекомендуется настраивать в 1С именно выгрузку только измененных позиций, тогда полная выгрузка будет сделана только 1 раз, а затем пойдут небольшие порции данных, которые будут загружаться на сайт очень быстро.

Настройки импорта данных на стороне сайта

Параметры импорта каталога из 1С настраиваются в 1С-Битрикс в административной части на специальной странице «Интеграция с 1С»

Я не буду далее вдаваться в подробности настроек импорта, коих множество: обработка изображений, генерация ЧПУ для товаров, обработка данных, отсутствующих в файле импорта, но имеющихся на сайте и тому подобное. В общем и целом, каталоги из 1С максимально полно отражаются в каталоги на сайте.

Выгружаются:

  • Структура групп каталога
  • Список товаров группы
  • Свойства товаров (числовые, строковые, тип «список», дата-время, булево)
  • Описание товара (включая описание в HTML)
  • Связанные изображения и файлы
  • Набор цен (розница, опт, дилерская и т.п.
  • Остатки на складах
  • Набор предложений по товару, различающихся характеристиками

За счет механизмов оптимизации решается вопрос с первоначальной выгрузкой и обработкой больших объемов данных. Режим выгрузки только измененных позиций в 1С, позволяет практически не задумываться о нагрузке для последующих сеансов обмена.

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

Это дает еще большую гибкость, поскольку, можно например разные категории товаров обновлять в разное время, выгружать товары на разные сайты и в разные CMS системы и т.п. Кроме того, в разное время, не связанное с выгрузкой товаров, можно производить и обмен заказами: например принимать заказы с сайта каждые 5 минут.

Но об обмене заказами я расскажу в третьей, заключительной части.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *