0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Автоматический обмен с 1С

Автоматический обмен с 1С

Выгрузка каталога товаров на сайт и загрузка заказов из интернет-магазина позволяет автоматизировать обмен между интернет-магазином и 1С:Управление торговлей. Обмен данными происходит в формате CommerceML. Специальных знаний для настройки обмена не требуется.

Обмен в системе «1С:Предприятие» реализован, в частности, в следующих конфигурациях (список не является исчерпывающим):

  • «1С:Управление торговлей 8» в конфигурации 10.хх и 11.хх;
  • «1С:Управление небольшой фирмой 8»;
  • «1С:Розница 2.х»;
  • «1С:Комплексная автоматизация 8»;
  • «1С:Управление производственным предприятием 8»;
  • «Штрих-М: Торговое предприятие 5».

Создание узла обмена с 1С в HostCMS

В центре администрирования HostCMS в структуре сайта проверьте существование узла /shop/1c/ , если узел отсутствует — создайте его:

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

Настройка обмена данными в 1С:Управление торговлей 10.3

В меню «1С:Управление торговлей» выберите Сервис → Обмен данными с WEB-сайтом → Настроить обмен данными с WEB-сайтом.

1С УТ 10.3 Сервис → Обмен данными с WEB-сайтом → Настроить обмен данными с WEB-сайтом

В открывшемся окне выберите «Создать новую настройку обмена с WEB-сайтом» или «Изменить существующую настройку обмена с WEB-сайтом» и нажмите кнопку Далее.

1С УТ 10.3 Создать новую настройку обмена с WEB-сайтом

В окне «Настройка обмена данными с WEB-сайтом» заполните необходимые поля:

1С УТ 10.3 Настройка обмена данными с WEB-сайтом

В поле «Адрес сайта» введите http://www.mysite.ru/shop/1c/ , заменив www.mysite.ru на адрес вашего сайта. В поле «Пользователь» и «Пароль» введите логин и пароль пользователя из центра администрирования HostCMS, от имени которого будет осуществляться обмен. Для проверки соединения нажмите «Проверить».

1С УТ 10.3 Настройка обмена данными с WEB-сайтом, проверка авторизации

На следующих шагах задайте имя каталога, установите опции выгрузки картинок и файлов, коэффициент пересчета веса товаров в граммы, выберите экспортируемый на сайт тип цен и склад, настройте действия с поступающими с WEB-сайта документами.
Укажите режим обмена: «Полная выгрузка данных» или «Выгружать только измененные объекты с момента последнего обмена».

После завершения настроек 1С предложит выполнить обмен.

1С УТ 10.3 Обмен с 1С

Настройка обмена данными в 1С:Управление торговлей 11

В верхнем меню с пиктограммами (Рабочий стол, Маркетинг . ) выберите Администрирование → Настройки синхронизации данных. Установите опции Синхронизация данных и Обмен данными с сайтами.

1С УТ 11 Администрирование → Настройки синхронизации данных. Обмен данными с сайтами

Для передачи в магазин цен на товары необходимо создать и настроить Типовое соглашение с клиентом в разделе Маркетинг и планирование → Типовые соглашения с клиентами.

Перейдите в типовое соглашение с клиентом (отредактируйте существующее или создайте новое), установите организацию и вид цен, включите опцию Доступно внешним пользователям на вкладке Условия продаж (пролистните все окно до конца).

Если опция Доступно внешним пользователям отсутствует, то необходимо настроить параметры учёта, для этого:

  1. В верхнем меню с пиктограммами (Рабочий стол, Маркетинг . ) выбираем Администрирование.
  2. В подменю выбираем НастройкаНастройка параметров учета.
  3. Во всплывшем окне выбираем пункт Обмен данными.
  4. Включаем опцию Использовать обмен с сайтами.
  5. В панели инструментов нажимаем кнопку Сохранить.

Создайте или отредактируйте узел обмена с сайтом в разделе Администрирование → Настройки синхронизации данных → Узлы обмена с сайтами.

1С УТ 11 Узлы обмена с сайтами, выгрузка на сайт

В поле «Адрес сайта» введите http://www.mysite.ru/shop/1c/ , заменив www.mysite.ru на адрес вашего сайта. В поле «Имя пользователя» и «Пароль» введите логин и пароль пользователя из центра администрирования HostCMS, от имени которого будет осуществляться обмен.

Для проверки соединения нажмите «Проверить».

Импорт цен из 1С

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

Если цена из 1С подставляется во вновь созданное поле, а основная цена нулевая, необходимо в центре администрирования в разделе Справочники → Цены скопировать название цены и удалить созданную при обмене цену в разделе Справочники → Цены, далее создать (отредактировать) активную константу SHOP_DEFAULT_CML_CURRENCY_NAME и прописать в ее значение название скопированный в предыдущем шаге цены.

Например, в файле offers.xml цена называется «Розничная цена» (а не просто «Розничная«), тогда создаем (если не создана) константу с названием SHOP_DEFAULT_CML_CURRENCY_NAME и значением Розничная цена. Очень важно удалить цену с названием «Розничная цена» из справочника цен. Если при первом импорте описанной выше константы не существовало, либо её значение не совпадало со значением «Розничная цена», создается цена в справочнике цен с названием «Розничная 100500». Если её не удалить из справочника, создание константы не поможет.

Наиболее частые проблемы при автоматическом обмене с 1С

  1. Если не выгружаются цены и остатки товаров в 1С:УТ с версии 11.0.6.7 необходимо открыть «Маркетинг» → «Типовое соглашение с клиентом» и установить вид цены, условие продажи (оптовая, розничная и т.п.) и галочку «Доступность внешним пользователям». В настройке обмена в «Выгрузка данных» → «Настроить обмен» указываете это соглашение.
  2. При возникновении ошибки вида «failed sending data to the peer«, проверьте наличие прокси-сервера в настройках браузера Internet Explorer. Если прокси-сервер указан, удалите его.
  3. При возникновении ошибки вида «Соединение с сайтом не установлено«, проверьте наличие закрывающего слеша в поле «Адрес сайта», например:
    http://site.ru/shop/1c — неверно,
    http://site.ru/shop/1c/ — верно.
  4. При возникновении ошибки вида «Ошибка в значении узла <Документ>.<Валюта> документа CML«, убедитесь, что интернациональное название валюты в HostCMS равно названию валюты в 1С.
  5. При возникновении ошибки вида «Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.«, убедитесь, что в меню «Справочник» — «Номенклатура» — «Виды номенклатур» у наименования «Товар», установлен тип номенклатуры «Товар». Также проверьте корректно ли настроен фильтр выгрузки. Существуют ли товары, попадающие под условия фильтра. Убедитесь, что у всех, отмеченных галочкой, условий фильтра указаны, собственно, условия.
  6. Ошибка «Не удалось определить юр./физ. лицо контрагента» говорит о наличии заказа с пустыми данными (Фамилия, Имя, Отчество или Компания). Заполните данные контрагента у заказов.
Читайте так же:
Samsung n150 plus регулировка яркости

Группы номенклатуры

При экспорте дополнительных групп номенклатуры, такие группы импортируются не в корневую директорию, а в соответствующий раздел. Импорт в корень осуществляется при указании каталога как ‘Основной каталог товаров‘ или ‘Каталог товаров‘.

Допускается внесение в конфигурационный файл modules/shop/config/cml.php других названий разделов, которые будут приниматься за корневой каталог.

Ограничение на импортируемые поля товаров

Контроллер импорта из CML имеет свойство updateFields, принимающее массив атрибутов товаров, подлежащих обновлению в процессе обмена. Позволяет ограничить перечень обновляемых полей и дать приоритет данным, содержащимся в системе управления.

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

Ограничение на импортируемые поля групп

Контроллер импорта из CML имеет свойство updateGroupFields, принимающее массив атрибутов групп, подлежащих обновлению в процессе обмена. Позволяет ограничить перечень обновляемых полей и дать приоритет данным, содержащимся в системе управления. Доступно с версии 6.9.2.

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

Управление полями, по которым осуществляется поиск товара

Контроллер импорта из CML имеет свойство itemSearchFields, принимающее массив полей, по которым товар может быть найден. В код настроек ТДС обмена с 1С вы можете внести опцию с указанием перечня полей. Доступно с версии 6.9.1.

Импорт ярлыков

Для товара допускается указание нескольких CML ID группы, при этом сам товар будет помещен в первую указанную группу, а в другие указанные группы будут помещены ярлыки на этот товар.

Импорт основных свойств товара, не предусмотренных в 1С

Добавлена возможность указать значения некоторых основных свойств товара через дополнительные свойства в системе 1С. Соответствие названия дополнительного свойства 1С и основного свойство товара в HostCMS:

HOSTCMS_TITLEЗаголовок (title) SEO
HOSTCMS_DESCRIPTIONОписание (description) SEO
HOSTCMS_KEYWORDSКлючевые слова (keywords) SEO
HOSTCMS_МЕТКИМетки (теги)
ПРОИЗВОДИТЕЛЬПроизводителя товара
АКТИВНОСТЬАктивность товара
ПРОДАВЕЦНазвание продавца
YANDEX_MARKETЭкспортировать в Яндекс.Маркет

Импорт веса, длины, ширины, высоты

Импорт веса и габаритов осуществляется из тегов ЗначенияРеквизитов/ЗначениеРеквизита. ЗначениеРеквизита/Наименование должно иметь одно из следующих значений: Вес, Длина, Ширина, Высота.

Загрузка заказов с сайта

При обменен с 1С система управления выгружает новые заказы. Новыми заказами считается те заказы, которые ранее не были выгружены или отредактированные после выгрузки заказы.

Проверить выгружаемую информацию вы можете через браузер, перейдя на страницу http://вашсайт/shop/1c/?type=sale&mode=query (необходимо ввести логин и пароль в открывшемся окне).

Пометить все заказы как невыгруженные вы можете SQL-запросом:

заменив 1 на идентификатор вашего магазина.

Загрузка заказов из 1С

Обрабатывается значение реквизита «Статус заказа», устанавливается существующий статус заказа или создается новый. При выгрузке из 1С для заказа реквизита «ПометкаУдаления», такой заказ помечается удаленным.

Интеграция 1С и Битрикс: Управление сайтом

Интеграция системы учета на базе 1С и сайта на CMS 1C:Битрикс Управление сайтом является сложной задачей, на этом этапе “погибло” немало хороших сайтов.

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

2.png

В этой статье мы попробуем упростить жизнь программистам 1С и веб-разработчикам, рассказав о своем опыте интеграции и “подводных камнях”, с которыми мы встретились. Для интеграции мы используем типовой модуль обмена адаптированный под конфигурацию “ЮвелирСофт:Ювелирный торговый дом”.

Начнем с того, чтобы понять, как типовой сайт на 1С:Битрикс хранит данные по товарному каталогу:

3.jpg

Каталог товаров — это как справочник “Номенклатура” в 1С, там хранятся общие реквизиты артикулов, те, которые никогда не изменяются — артикул, тип изделия, проба, металл, производитель, фото и т.д. это так называемые каталожные позиции.

Именно эти позиции показываются в списке товаров в каталоге:

4.jpg

В каталоге товаров позиции могут быть нескольких типов:

Простой товар — товар, у которого нет вариантов размеров, драгоценных камней или других параметров влияющих на цену(если такие будут, то см. Ниже “Каталог предложений”). Например, серьги, кресты.

Читайте так же:
Почему при синхронизации удаляются программы

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

Комплект и набор — эти типы рассматривать не будем, т.к. они доступны только в редакции “Бизнес” и из 1С их выгрузить нельзя. Подробнее тут.

6.jpg

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

7.jpg

Для товарного предложения можно также загрузить фото, это используется когда для разных драгоценных вставок нужны разные фото из-за цвета камней. Каталог предложений связан с каталогом товаров. Связь один ко многим — для 1 элемента каталога товаров соответствует много элементов каталога предложений.

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

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

Полная выгрузка товаров — при такой выгрузке каждый раз получаются все данные для выгрузки (в зависимости от настройки — остатки, весь каталог или остатки+каталог). Такая выгрузка подходит при небольшом количестве товаров (до 5 000 артикул и 10 000 предложений). Если количество товаров и предложений большое, то такая выгрузка может занять от 3-6 часов.

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

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

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

Рассмотрим состав файлов выгрузки:

    8.jpg

Папка с названием кода выгрузки

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

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

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

10.jpg

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

Теперь самое интересное — файлы с товарами.

Файл import — содержит данные по элементам каталога товаров.

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

Артикул и наименования — Это стандартные поля для любой выгрузки из 1С. Наименование будет отображаться в карточке товара и в списке. Поэтому заранее нужно подумать над тем, чтобы оно было человеко понятное — такое, как обычный человек ищет в интернете.

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

Описание — текстовое описание товара, выводится карточку

Картинка — относительная ссылка до каталога import_files в соответствующем пакете. При необходимости выгрузки нескольких картинок — выгружаются несколько секций

Первая картинка становится основной для товара, остальные дополнительные.

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

Файл offers — элементы каталога предложений

Ид — идентификатор предложения. Связь элемента каталога товаров и предложений идет именно через ИД предложений.

ОБЯЗАТЕЛЬНО: Началом ид предложений должен быть ид товаров, которому это предложений соответствует. Также если у предложений 1 ид, то на сайт будет загружено только последнее. Поэтому для создания нескольких предложений по размерам и вставкам в ид добавляются либо гуиды вставки и наименование размера.

Далее использую это информации можно реализовать выгрузки изделий по сериям номенклатуры(уникальные изделия) добавив в ид серию. Или выгрузку товаров с разным весом — также в ид добавляем вес изделия и на сайте уже имеем столько предложений сколько товаров данного артикула с разным весом.

Читайте так же:
Ноутбук сам регулирует громкость

Номер версии — в этот пункт мы пишем даты выгрузки в миллисекундах.

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

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

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

16.jpg

Для указания изображения для предложения необходимо до выгрузки свойств, выгрузить секцию — <Картинка><Картинка/> — и ссылка на изображение, аналогично файлу import.

Файлы prices

17.jpg

Ид предложения из файла offers совпадал с ид в файле prices. В противном случае цена для предложения не загрузиться и оно будет недоступным.

При выгрузке нескольких цен на 1 предложение все цены должны идти в 1 секции “Цена”. В противном случае цены могут затирать друг друга. Т.е. Для 1 предложения в файле prices должна быть 1 запись, а в ней в блоке “Цены” все цены идти в блоках “Цена”.

Файлы rests — файлы с данными остатков товаров.

18.jpg

Ид предложения из файла offers совпадал с ид в файле rests. В противном случае цена для предложения не загрузиться и оно будет недоступным

Папка import_files — в ней содержатся изображения для товаров, их физическое расположение.

Интеграция Opencart с 1С Предприятие

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

В связи с этим появилась возможность публиковать на сайте объемы товары немыслимо превышающие самый большой гипермаркет: 2000 наименований, 6 000 наименований и более. Причем каждый товар может иметь различные характеристики, такие как: цвет, размер, тип материала и т.д. И тогда количество объектов может перевалить за 20 000 шт. К таким интернет магазинам чаще всего относят магазины автозапчастей, детских игрушек, магазины одежды/аксессуаров и др.

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

CMS Opencart — разработана и позиционирует себя, как удобная платформа для интернет магазинов.

А 1С Управление торговлей — как конфигурация, заточенная для организаций осуществляющих продажу товаров и актуальный учет товаров на складе. Для электронной коммерции в данной конфигурации есть функционал обмена с сайтом:

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

1. Прямая запись данных о товарах в БД сайта с встраиванием доп.функционала в программу 1С
2. Прямая запись данных о товарах через внешние обработки обмена
3. Обмен данными по стандарту Commerce ML

Про первый вид: чаще всего для его реализации используется модификация конфигураций 1С, встраивание стороннего кода. Обычно при этом варианте происходит так называемый «процесс снятия с поддержки „конфигураций что дает автоматическую отмашку техподдержке 1С брать дополнительные деньги за обновление таких конфигураций. Для прямой записи в БД сайта нужно также дополнительно установить компоненту 1С осуществляющей подключение к mysql сайта. С этим тоже могут иногда возникнуть трудности, из за специфики установки компоненты на платформу 1С и работы операционной системы.

Про второй вид: все тоже самое, но изменение конфигурации 1С не происходит.

Про третий вид: Обмен по стандарту Commerce ML состоит в том, что 1С формирует XML файл с данными и отправляет его на сайт. Далее сайт осуществляет чтение полученного файла и запись в БД сайта. Та же технология используется для CMS 1С-Битрикс. Плюсы данного метода в том, что со стороны 1С выгрузка XML файла полностью реализована и есть в любой конфигурации, остается лишь настроить подключение к сайту.

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

Все существующие модули обмена позволяют выгружать на сайт и получать с сайта следующую информацию:

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

Работает на всех версиях Opencart, не требует установки каких то доп. сторонних модулей на сайт и какому либо изменению конфигурации 1С или модификации платформы 1С.

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

Объект 1СТаблицы базы данных Opencart
Элементы справочника “Номенклатура»oc_product, oc_product_description
Свойства элементов справочника «Номенклатура»oc_attribute, oc_attribute_description, oc_product_attribute
Изображения элемента справочника «Номенклатура»oc_product, oc_product_image
Группы справочника «Номенклатура»oc_category, oc_category_description
Типовое соглашение об условиях продаж или Типы цен номенклатурыoc_customer_group, oc_customer_group_description, oc_product_discount
Остатки номенклатуры по складамoc_product
Цена номенклатурыoc_product, oc_product_discount
Документ «Заказ клиента» и товары заказаoc_order, oc_order_product, oc_order_status
Покупатель или Контрагент участвующий в заказеoc_order

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

Время обмена данными между Opencart и 1С Предприятие сильно ограничивается со стороны 1С. Так средняя статистика по времени подготовки данных со стороны 1С (до отправки данных на сайт) может занимать следующее время:

20 тыс. позиций — 10 минут
60 тыс. позиций — 15 минут
80 тыс. позиций — 25 минут

После подготовки данных программой 1С, происходит закачка данных на сайт, скорость которой может ограничиваться только скоростью канала передачи данных.

Завершающим этапом идет время чтение полученного файла XML уже непосредственно на сайте, и запись в базу данных. Время здесь не существенно, и обычно сервер очень быстро «читает» данные.

При методе обмена прямой записи в базу данных, этот момент опускается. В основном, все основное время на обмен уходит именно на подготовку данных со стороны 1С при любом методе обмена данными.

Заключение: в целом Opencart очень не плохая и удобная система управления интернет магазином. Проста в программировании. Очень удобно и красиво реализована главная страница панели администратора, позволяющая анализировать объемы продаж по разным странам:

Но в то же время, существует мнение что opencart начинает плохо работать при очень большом количестве товаров на сайте. Лечится оптимизацией и использованием кэширования. Для небольших интернет магазинов вполне хорошая и экономичная CMS.

1С-Битрикс и МойСклад: расширение интеграции

Виктор С.

Мы уже писали об особенностях интеграции с различными системами в статьях “ Интеграция Битрикса с лысым чертом ”, “ 1С-Битрикс и обмен контрагентами: как не сдохнуть по пути ” и многих других. Чаще всего наши статьи посвящены обмену данными между Интернет-магазином и системами учета из клана 1С. Сегодня же поговорим об интеграции с облачной системой учета МойСклад .

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

Возможности и ограничения интеграции «из коробки»

МойСклад — облачная система учета. Она ориентирована на российский рынок, и поддерживает множество системам (помимо 1С-Битрикс: Управление сайтом): Magento, PrestaShop, Tiu.ru, UMI.CMS, ВКонтакте и Яндекс.Маркет. Используется универсальный формат выгрузки CommerceML, как и 1С. За универсальность пришлось пожертвовать функциями — выгружаются далеко не все данные. Рассмотрим на примере обмена данными с сайтом на Битриксе.

Настройка интеграции МойСклад и Битрикс

«Из коробки» МойСклад загружает заказы с сайта, а на сайт выгружает товары в инфоблок с обязательными полями (название, цена). Для этого необходимо настроить обмен в административном интерфейсе Битрикса: Магазин > Настройки магазина > Интеграция с 1С.

Настройка обмена с МойСклад на стороне сайта

Настройка обмена с МойСклад на стороне сайта

Со стороны МойСклад также нужно настроить синхронизацию с интернет-магазином.

Настройка обмена с сайтом на стороне МойСклад

Настройка обмена с сайтом на стороне МойСклад

Дополнительные свойства товаров

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

Настройка дополнительного поля товара в МойСклад

Настройка дополнительного поля товара в МойСклад

Товар в МойСклад с дополнительным полем

Товар в МойСклад с дополнительным полем

На стороне сайта, при таком сценарии, у товара будут созданы соответствующие свойства, в которые будут выгружаться данные из МойСклад. Их можно использовать для сортировки и фильтрации, как любые другие поля товаров в Битриксе.

Читайте так же:
Синхронизация контактов outlook yandex

Выгруженный в Битрикс товар с дополнительным полем

Выгруженный в Битрикс товар с дополнительным полем

Товары с SKU

Битриксовые SKU в МойСклад называются модификациями . Без дополнительных настроек на сайт попадают только обязательные поля: название, артикул, описание, типы цен, цены, остатки на складе и др.

Товар с SKU в Битриксе

Товар с модификациями цвета в МойСклад

Товар с SKU в Битриксе

Автоматическое создание товаров в МойСклад

Если в заказе оказался товар, которого нет в МойСклад, то такой товар автоматически будет создан в системе. У созданного товара будут заполнены только обязательные поля (название и цена), даже если в Битриксе все поля и свойства заданы.

Автоматически созданный товар из заказа в МойСклад

Автоматически созданный товар из заказа в МойСклад

Выгрузка выбранной службы доставки и полей заказов

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

Заказ на сайте

Этот же заказ в МойСклад

Этот же заказ в МойСклад

Этот же заказ в МойСклад (продолжение)

Этот же заказ в МойСклад (продолжение)

Если нужно в МойСклад получить какие-либо другие свойства заказов, то нужно их заранее создать в системе. Сопоставление свойств из Битрикса и МойСклад происходит по названию.

Настройка свойства заказа в МойСклад

Настройка свойства заказа в МойСклад

Настройка свойства заказа в Битриксе

Настройка свойства заказа в Битриксе

Статусы заказов

МойСклад умеет создавать статусы заказов при выгрузке с сайта. Но статусы носят чисто информативный характер, не влияют на логику.

Заказ со статусом в Битриксе

Заказ со статусом в Битриксе

Заказ со статусом в МойСклад

Заказ со статусом в МойСклад

Расширение обмена Битрикса с МойСклад

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

Нужно помнить про следующие ограничения в использовании:

не более 100 запросов за 5 секунд;

не более 5 одновременных запросов от пользователя;

не более 20 одновременных запросов от аккаунта;

не более 500 одновременных запросов с одного ip-адреса;

не более 100 элементов в ответе (если записей больше, используется постраничность);

не более 10 Мб данных в запросе.

Примеры решаемых задач

Выгрузка архивированных товаров

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

За 20 часов мы разработали механизм загрузки таких товаров через JSON API. Можно было и быстрее, но подумали о масштабировании задачи. Сейчас таких товаров несколько десятков — а в скором будущем может быть несколько сотен или тысяч. Затягивать все товары разом на сайт вредно для оперативной памяти, поэтому сделали скрипт с пошаговым режимом, который забирает из МойСклад за один раз 50 товаров. Сделали настройку в панели управления сайтом, все как полагается.

Расширенный обмен данными о пользователе

Сколько бы данных о себе не указал на сайте пользователь, в МойСклад попадает только минимальный набор: имя, почта и т.п. Юридический адрес, ИНН, телефон, фактический адрес или данные о банковском счете, даже если они указаны в заказе, будут проигнорированы системой учета.

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

Синхронизация статусов заказа и обнуление резервов товаров при количественном учете

Если на стороне сайта ведется количественный учет, то товары после оплаты резервируются до тех пор, пока не будут отгружены. Но со стороны МойСклад информации об отгрузках и статусах заказов не поступает. Для решения задачи нами разработан механизм, который на основе сумм отгрузки и оплаты в МойСклад выставляет отгрузки, оплаты и статусы заказов на сайте. Чтобы сайт не тормозил у пользователей, вся логика вынесена в фоновую задачу сервера.

Каждые полчаса сайт проверяет, не пора ли обновлять заказы. Если пора, то “маленькими шагами” по 25 заказов за 10 секунд происходит обмен. Хотелось бы больше, но таковы ограничения облачных систем — мы ограничены длиной запроса в API.

Выводы

В МойСклад можно загружать дополнительные поля заказа с сайта, но носят они исключительно информативный характер и завязать на них логику не получиться. Любая манипуляция с данными на стороне МойСклад совершается только с помощью API.

Из МойСклад на сайт выгружаются не все поля и свойства товара.

Данные о заказе в МойСклад разбиваются на две сущности: Заказы и Данные пользователей.

В МойСклад услуга доставки приходит в виде товара.

В МойСклад выгружаются статусы из заказов. Если МойСклад видит неизвестный для него статус заказа, он добавляет его в систему.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector