Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг третий, WooCommerce, публикация категорий товаров

13.05.20

Интеграция - Сайты и интернет-магазины

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции публикации категорий товаров в магазин WooCommerce, с комментариями внутри.

Преамбула.

Эта статья является логическим продолжением и дополнением этой моих статей: "Первый шаг" и "Второй шаг". А также полностью с ними взаимосвязана, отсылки к ним будут периодически здесь появляться.

Здесь мы рассмотрим код 1С, с помощью которого сможем сделать следующее с категориями товаров магазина на сайте:

  1. Создать.
  2. Обновить/изменить.
  3. Посмотреть 1.
  4. Посмотреть список.
  5. Удалить.

Всё это мы будем делать в контексте привязки к категории картинки (Миниатюры).

Публикация Категорий товаров.

Конечные точки WordPress / WooCommerce используемые для категорий товаров.

  1. POST.
  2. GET.
  3. PUT.
  4. DELETE.

Чтобы было нагляднее и понятнее, трансляция:

 команды/конечные точки запросов WordPress / WooCommerce 
 "Список"    -> "GET"
 "Получить" -> "GET"
 "Создать"   -> "POST"
 "ОбновитьТовары" -> "
PUT"
 "Удалить"   -> "DELETE"

Маршруты WooCommerce используемые для категорий товаров.

"ТоварыКатегория"  -> "/wp-json/wc/v3/products/categories/"

 

Немного теории. 

Является моим вольным переводом документации разработчика, источник.

Мои комментарии: образец моего комментария.

REST API - это мощная часть WooCommerce, которая позволяет вам читать и записывать различные части данных WooCommerce, такие как заказы, продукты, купоны, клиенты и зоны доставки.

Формат Запроса / Ответа
Формат ответа по умолчанию - JSON. Запросы с телом сообщения используют обычный JSON для установки или обновления атрибутов ресурсов. Успешные запросы вернут состояние HTTP 200 OK.

Даты возвращаются в формате ISO8601: YYYY-MM-DDTHH:MM:SS

  • Идентификаторы ресурсов (id) возвращаются в виде целых чисел.
  • Любая десятичная денежная сумма, например цены или итоги, будет возвращена в виде строк с двумя десятичными знаками.
  • Другие суммы, такие как количество элементов, возвращаются в виде целых чисел.
  • Пустые поля обычно включаются в качестве строки "null" или "emtpy" вместо того, чтобы быть пропущенными.

Ошибки
Иногда вы можете столкнуться с ошибками при доступе к REST API. Существует четыре возможных типа:
Код                                        Тип 
400 Bad Request                 плохой запрос недопустимый запрос, например, с использованием неподдерживаемого метода HTTP
401 Unauthorized                ошибка проверки подлинности или разрешения, например, неправильные ключи API
404 Not Found                    не найдены запросы к ресурсам, которые не существуют или отсутствуют
500 Internal Server Error     Внутренняя ошибка сервера ошибка сервера

Категории продуктов.

API категорий продуктов позволяет создавать, просматривать, обновлять и удалять отдельные или пакетно категории товаров.

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

Атрибут Тип Описание
id целое число Уникальный идентификатор ресурса / категории.
Только для чтения.
В контексте приведенного ниже кода использую, генерируется системой автоматически
name строка / текст Имя ресурса / категории.
Обязательный.
В контексте приведенного ниже кода использую, необходимо создавать самому
slug строка / текст Слаг, буквенно-цифровой идентификатор объекта, уникальный для его типа.

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

parent целое число ID родителя ресурса.
В контексте приведенного ниже кода использую, аналогично группам товаров в 1С.
description   строка / текст   HTML описание ресурса / категории.
display строка / текст       Категория архивного тип отображения. Опции: defaultproductssubcategories and both. По умолчанию default.
В контексте приведенного ниже кода не использую
image объект Данные картинки. Описание смотрите ниже.
В контексте приведенного ниже кода использую, аналогично привязанным картинкам к товарам в 1С.
menu_order целое число Порядок меню, используемый для пользовательской сортировки ресурса.
В контексте приведенного ниже кода использую.
count целое число

Количество опубликованных продуктов для данного ресурса.
Только для чтения.

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

 

Категория продукта - свойства изображения

Атрибут Тип Описание
id целое число    ID изображения.
Обязательный.
В контексте приведенного ниже кода использую.*
date_created дата-время Дата создания изображения в часовом поясе сайта.
Только для чтения.
В контексте приведенного ниже кода не использую, можно использовать для информации.
date_created_gmt дата-время

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

date_modified дата-время Дата последнего изменения изображения в часовом поясе сайта.
Только для чтения.
В контексте приведенного ниже кода не использую, можно использовать для информации.
date_modified_gmt дата-время Дата последнего изменения изображения - GMT.
Только для чтения.
В контексте приведенного ниже кода не использую, можно использовать для информации.
src строка/текст URL изображения.
name строка/текст Наименование изображения.
В контексте приведенного ниже кода не использую.*
alt строка/текст Альтернативный текст изображения.
В контексте приведенного ниже кода не использую.*

 

* Из всех выше описанных атрибутов, для привязки изображения / картинки к категории, нам нужен только ID.

Как создать / опубликовать картинку можете прочитать в этой статье.

Создать категорию товаров.

Этот API поможет вам создать новую категорию продуктов.

POST /wp-json/wc/v3/products/categories

или

Создать -> /wp-json/wc/v3/products/categories
В контексте кода 1С.

Получить категорию товара.

Этот API позволяет получить категорию товара по идентификатору. Одну.

GET /wp-json/wc/v3/products/categories/<id>

или 

Получить -> /wp-json/wc/v3/products/categories/<id>
В контексте кода 1С. id - обязательный аргумент.

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

Этот API позволяет извлекать все категории товаров.

GET  /wp-json/wc/v3/products/categories

или

Список -> /wp-json/wc/v3/products/categories
В контексте кода 1С.

Обновить категорию товаров.

Этот API позволяет вносить изменения в категорию товаров.

PUT  /wp-json/wc/v3/products/categories/<id>

или 

Обновить -> /wp-json/wc/v3/products/categories/<id>
В контексте кода 1С. id - обязательный аргумент.

Удалить категорию товаров.

Этот API позволяет удалить категорию товаров.

DELETE /wp-json/wc/v3/products/categories/<id>

или 

Удалить -> /wp-json/wc/v3/products/categories/<id>
В контексте кода 1С. id - обязательный аргумент.

Доступные параметры 

Параметр  Тип  Описание
force   строка    Необходимо установить true (Истина в 1С), если категорию не надо помещать в "Корзину".

 

Надеюсь, теперь теоретически вы подкованы, пора переходить к практике.

Публикация категорий товаров на сайт, в магазин WooCommerce.

Для этого использую внешнюю обработку на обычных формах. Код на управляемых формах не будет отличаться от приведенного здесь, чуть-чуть сложнее, но думаю для вас не составит труд адаптировать. Мне, честно говоря, было лень.

Исходные данные.

Аргументы запроса

Что означают первые 4 пункта, можно прочитать здесь.

  1. Token.
  2. Server
  3. Маршрут
  4. КонечнаяТочка
  5. Наименование - "name" в контексте WooCommerce. Строка.
  6. Описание - "description" в контексте WooCommerce. Строка.
  7. Слаг - "slug" в контексте WooCommerce, временное имя файла, если всё хорошо, становится ссылкой. Строка.
  8. КартинкаФото - "id" изображения в контексте WooCommerce. Число.
  9. id_родителя - "parent" в контексте WooCommerce. Число.

Аргументы с 5 по 9 должны присутствовать в реквизитах элемента справочника (иной сущности) 1С. Можно иные данные, как вам будет удобнее.

Повторюсь, важное замечание: с самого начала, делал реквизиты на английском, как в WordPress. Однако в последствии столкнулся с тем, что многие "аглицкие" названия зарезервированы самой 1С, про этот момент забыл. Поэтому пришлось делать структуру перевода с "Русского" на "Английский" и обратно.

Подробнее под спойлером.

 
 Процедуры и функции работы со структурами перевода

Конечные точки

 "Список"    -> "GET"
 "Получить" -> "GET"
 "Создать"   -> "POST"
 "ОбновитьТовары" -> "
PUT"
 "Удалить"   -> "DELETE"

Маршрут

ТоварыКатегория -> /wp-json/wc/v3/products/categories/

Список конечных точек

 

Процедуры и функции в модуле формы.

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

Группы товаров

 
 Процедура ПослатьЗапросНаСайтКатегорииНажатие

 Типовая процедура, как было описано в предыдущих статьях. Есть небольшое отличие, о котором напишу.

Если id картинки = 0 , то необходимо сначала опубликовать картинку.

  1. Собираем структуру данных для публикации картинки.
  2. Публикуем картинку.
  3. Получаем id картинки.
  4. Сохраняем полученные данные от сайта в реквизитах картинки.
  5. Добавляем id картинки в структуру данных для публикации категории в магазин WooCommerce.

И, собственно всё, отправляем данные на публикацию категории.

Процедуры и функции модуля объекта.

Описывать их здесь, наверное, нет надобности. Так как всё подробно описал в предыдущих статьях.

Результат публикации категории товаров

 

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

Заключение.

Как видим, опубликовать категории товаров на сайте / магазине WooCommerce не составляет большого труда.

 

Желаю приятных экспериментов на ниве обмена из 1С с сайтом WordPress. 

Плюсуем, не стесняемся, делимся, комментируем.

Особенно ПЛЮСУЕМ, это есть очень большой мотиватор для меня. Если вы не поставили "+" предыдущей публикации, прошу сюда.

Продолжение следует. В следующей публикации продолжим работу с магазином WooCommerce, с товарами и будем их публиковать в "пакетном" (batch) режиме.

Обработка тестировалась:

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

Версия WordPress: 5.4.1
PHP Версия : 7.3.15
Платформа: 1С:Предприятие 8.3 (8.3.13.1644).
Минимально необходимый релиз платформы: 8.3.6.

WordPress WooCommerce RestAPI Интеграция сайтом Rest API обмен данными

См. также

API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3

Сайты и интернет-магазины Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Беларусь Россия Управленческий учет Платные (руб)

Модуль для интеграции с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress. При помощи расширения поддерживаются следующие методы: обмен остатками товаров, обмен ценами, обработка заказов, печать стикеров, загрузка отчетов комиссионеров по API (в том числе Я.Маркет). Подходит для конфигураций Беларуси.

59990 руб.

05.09.2023    6573    83    74    

63

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15655    9    17    

9

Оплата покупок "Долями" в 1С:Розница 2.3 (для работы с сервисом dolyame.ru)

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку.

18000 руб.

19.12.2023    1038    4    0    

4

Обмен данными с сайтом. БП 3.0

Оптовая торговля Розничная торговля Сайты и интернет-магазины Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обмен данными с сайтом на платформе 1С:Битрикс (и подобными) для 1С: Бухгалтерия предприятия 3.0.

12000 руб.

18.03.2019    31180    108    100    

62

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17420    6    15    

13

Выгрузка для АВИТО

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Россия Платные (руб)

Выгрузка товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки. Обработка подходит для конфигураций УТ, УНФ и Розница. Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".

4200 руб.

07.06.2022    15239    42    56    

37
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. rpashkovsky 23 14.05.20 00:26 Сейчас в теме
Интересно, пишите ещё!
2. o2005 62 25.05.20 08:54 Сейчас в теме
Статьи интересные, но посмотрел Ваш сайт и увидел, что с WEB-дизайном у Вас беда.
3. osivv 265 25.05.20 09:13 Сейчас в теме
(2)
Статьи интересные, но посмотрел Ваш сайт и увидел, что с WEB-дизайном у Вас беда.

А там ничего особенного нет, практически всё штатно.
А у кого не беда? Другой мой сайт, гугл адаптивность под мобильные показывает то 86-88, то 90-92 балла.
Оставьте свое сообщение