Имею желание купить дом, но не имею возможности.
Имею возможность купить козу, но не имею желания.
к/ф «Кавказская пленница»
В жизни наши желания часто расходятся с нашими возможностями. Приходится искать компромисс.
Так происходит и при интеграции интернет-магазинов с 1С. Хочется реалтайма, интеграции с программой лояльности, полного отсутствия коллизий и омниканальности (простите).
Мы решили опубликовать многосерийный Tutorial про все виды обменов интернет-магазинов с 1С: Управление торговлей и других редакций.
Сегодня первая статья — когда «надо с чего-то начинать», и это — так называемый «стандартный обмен».
В следующих частях расскажем про кастомизацию стандартного обмена, про обмен на очередях и REST API, и «на десерт» про обмен через промежуточную базу данных.
Для тех кто не любит читать, а любит картинки – вот схема:
Полноразмерная доступна по ссылке.
Что умеет стандартный обмен?
Как всегда есть два решения: из «коробки» или индивидуальная разработка магазина и обмена.
Совсем просто — обмен передает товары, цены, остатки, изменения статусов.
Казалось бы — что тут сложного и умного? Любой программист за пару часов дней недель уж точно это напишет?
Сила «стандартного» обмена в том, что он проработан до мелочей. Поддерживаются множество типов цен, склады, учет по характеристикам (это еще называют «торговые предложения»). С нуля такое писать долго и муторно.
Но есть и слабые стороны стандартного обмена:
он устарел и технически и морально, обмен многотонными XML совсем не в тренде;
многие современные особенности вроде скидок и товаров-комплектов в обмен не попадают, приходится немного изобретать.
Хитрости в стандартном обмене
Далее мы покажем, как можно решить наиболее частые задачи при разработке магазинов изящно и экономично.
Как вывести характеристики товаров на сайте «как в 1С»?
На первый взгляд задача простая, но нужно учитывать риски.
Риски:
Единицы измерения.
В 1С у товаров есть единицы измерения. При обмене эти данные не попадают на сайт. Также у одного свойства могут быть различные единицы измерения."1 свойство = 2 смысла".
В 1С свойства товара могут иметь несколько смыслов. Например: Мощность — 150 Вт (конкретная величина), Мощность — высокая (определенный уровень). На сайте одному свойству соответствует один смысл, поэтому их желательно разделять.Группировка свойств.
В 1С свойства товаров сгруппированы. При обмене такая группировка не передается.Порядок свойств.
В 1С для каждого свойства в рамках товара и группы можно задать свой порядок. На сайте порядок определяется для всех свойств каталога.Служебное/неслужебное.
При обмене на сайт передаются все свойства, поэтому надо разделять, что можно, а что нельзя отображать.Числа строками.
В 1С значение свойства может иметь разный тип. На сайт передается только один тип. Это влияет на отображение свойства в фильтре. Например: ползунок в фильтре может отображаться только, если тип значения свойства — это число.
Решение:
Коробка | Золотая середина | Индивидуальная разработка |
Единицы измерения | ||
Передавать в названиях свойств. | Создать справочник связей свойств и единиц измерения для всех разделов на стороне сайта. Для корректного отображения потребуется доработка. | Создать справочник связей свойств и единиц измерения для каждого раздела и выгружать из 1С. Для отображения потребуется доработать. |
1 свойство = 2 смысла | ||
Разделить свойства с различными е.и. на отдельные свойства на стороне 1С и выгружать на сайт. | Разделить свойства с различными е.и. на отдельные свойства на стороне 1С и выгружать на сайт. | Отказать от стандартных возможностей. Свойства с различными е.и. не разделять. Свойства определять с помощью справочников на сайте и доработать отображение на сайте. |
Группировка свойств | ||
Не группировать свойства. | Группировать свойства с помощью справочника на стороне сайта. Доработать отображение. | Группировать свойства с помощью справочника и выгружать из 1С на сайт. Доработать отображение. |
Порядок свойств | ||
Настроить порядок для всех свойств на стороне сайта. | Настроить порядок для всех свойств на стороне сайта. | Выгружать порядок для каждого раздела в справочнике из 1С. Доработать отображение. |
Служебное/неслужебное | ||
Отображение настраивается на стороне сайта. | Отображение настраивается на стороне сайта. | Настроить свои функции, которые будут определять вид отображения при выгрузке. |
Числа строками | ||
Менять тип на стороне 1С и выгружать. | Менять тип на стороне 1С и выгружать. | Выгружать разный тип из 1С. Разработать функции, которые позволят отображаться разный тип для фильтра с учетом раздела. |
Результат:
Коробка | Золотая середина | Индивидуальная разработка |
Трудозатраты | ||
Минимальные. 2-3 часа. Все есть в «коробке». Потребуется время для настроек. | Средние. До 50 часов. Сроки зависят от доработок. | Большие. От 100 и более часов. Сроки затянуться, так как потребуется время на разработку и тестирование. Исправления и поиск ошибок может затянуться до бесконечности. |
Как сделать так, чтобы поиск товаров на сайте учитывал все свойства?
Есть несколько видов поиска в стандартном интернет-магазине на Битрикс. Расскажем про каждый.
«Быстрый» поиск. Результаты поиска выводятся во всплывающей панели и позволяют сразу перейти на карточку товара без перехода на страницу с результатом поиска. Для вывода результатов используется поисковые индексы и поиск ведется по заголовкам.
«Умный» фильтр — это инструмент для отбора элементов каталога по заданным критериям.
Полнотекстовый поиск — автоматизированный поиск документов, при котором поиск ведется не по именам документов, а по их содержимому, всему или существенной части.
Типичные задачи:
На страницу с результатом поиска добавить «умный» фильтр и сортировку по определенным параметрам.
В всплывающем окне «быстрого» поиска выводить найденные товары в порядке популярности.
На странице с результатом поиска отдавать предпочтения товарам, у которых поисковая фраза встречается в заголовке.
Решение:
Коробка | Золотая середина | Индивидуальная разработка |
Сортировка и «умный» фильтр на странице с результатом поиска | ||
Решение из «коробки» выводит результат поиска в виде заголовка и описания. См. ниже пример «простейшего поиска» | Результат поиска оформляется в виде карточек товаров. Ограничивается только каталогом. См. ниже пример «поиска с карточками» | «Золотая середина» + доработка и тестирование для добавления сортировки и фильтра. См. ниже пример «поиска с карточками и фильтрами» |
В «быстром» поиске выводить популярные товары | ||
Позволяет выводить наиболее подходящие товары. Признак популярности отсутствует. | Настраивается признак популярности, который берется из полнотекстового поиска, то есть логика «быстрого» и обычного не разделяется. | Разделение логики «быстрого» и обычного поиска. Настроить каждый под требуемые результаты. |
Результат поиска из товаров, в которых поисковая фраза встречается в заголовках | ||
Поиск выводится на основании имеющегося решения. | Поиск настраивается таким образом, чтобы по максимуму выводился требуемый результат. Логика поискового инструмента не меняется. | Меняется логика поискового инструмента. Настраивается под требуемые результаты. |
Примеры поиска
Чуть лучше – выводятся карточки товаров
«Как надо» – с отбором и фильтрами
Результат:
Коробка | Золотая середина | Индивидуальная разработка |
Трудозатраты | ||
Минимальные. Все есть в «коробке». Потребуется время для настроек. | Средние. Десятки часов Сроки зависят от доработок. | Большие. От 100 часов. Поисковая логика очень сложная. Ее изменение сравнимо с созданием небольшого сайта. |
Обмен с 1С: стандартный модуль обмена или «свой велосипед»?
Задача по интеграции интернет-магазина с 1С требуется практически на всех проектах.
Решение:
Коробка | Золотая середина | Индивидуальная разработка |
Покрываются самые базовые возможности, который описаны в мануалах от вендора. В действительности, не встречался хотя бы один проект, на котором этого было бы достаточно. В теории возможно, на практике — надо переходить к золотой середине. | Доработка обмена сайта и 1С: 1. Использовать обработчики событий. 2. Кастомизировать файлы обмена. 3. Выгружать нужные данные как справочники. 4. Комбинация всех способов. Каждый способ выбирается исходя из возможности покрытия предъявляемых требований к результату обмена. | Если вы приверженец теории «Программисту про интеграцию сайта и 1С нужно знать то, что легче написать свой обмен, чем заставить нормально работать битриксовый.» или сценарии, которые поддерживает стандартный обмен вам кардинально не подходят, то можно разработать свой инструмент. Как – мы расскажем в следующих статьях. |
Результат:
Коробка | Золотая середина | Индивидуальная разработка |
Трудозатраты | ||
Настройка стандартных инструментов займет пару часов. | Мелкие правки укладываются в несколько десятков часов. | Сотни часов работы в зависимости от способа. |
Схема возможностей стандартных обменов – на память и на стенку
Полноразмерная версия доступна по ссылке.
Вывод
При разработке сайта необходимо придерживаться «золотой середины». Если вы ограничены в средствах и времени (или просто хотите тратить деньги разумно), то при решении задач лучше опираться на возможности Битрикс с точечными доработками.
Это убережет вас от дополнительных трудозатрат на тестирование и исправление ошибок. Если таких ограничений нет, то создание «своих велосипедов» может и оправданное решение, но обычно трудоемкое и долго реализуемое.
Мы всегда даем заказчику советы, которым следовали бы сами.
По какому пути идти — решать вам.