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

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

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

В наличии

Интеграция 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С, про этот момент забыл. Поэтому пришлось делать структуру перевода с "Русского" на "Английский" и обратно.

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

 

has been added to your cart:
Оформление заказа