Интеграция 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 обмен данными

См. также

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

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

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

18000 руб.

19.12.2023    1839    14    6    

11

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

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16059    13    18    

13

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

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

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

12000 руб.

18.03.2019    31830    117    101    

65

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

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

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

5040 руб.

04.05.2021    18122    10    15    

16

Универсальный парсер интернет-магазинов

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

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

9600 руб.

19.10.2018    52505    220    101    

112

SALE! 33%

«Мониторинг цен» – сервис для отслеживания цен конкурентов на ведущих маркетплейсах России

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

Сервис помогает отслеживать цены на ведущих маркетплейсах России только для одного региона – Москва и Московская область. Выполняйте анализ и контролируйте цены Ваших конкурентов сразу в системе 1С.

2400 1608 руб.

29.05.2023    6946    26    41    

15

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

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

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

4200 руб.

07.06.2022    15855    43    56    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 балла.
Оставьте свое сообщение