Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции публикации категорий товаров в магазин WooCommerce, с комментариями внутри.
Преамбула.
Эта статья является логическим продолжением и дополнением этой моих статей: "Первый шаг" и "Второй шаг". А также полностью с ними взаимосвязана, отсылки к ним будут периодически здесь появляться.
Здесь мы рассмотрим код 1С, с помощью которого сможем сделать следующее с категориями товаров магазина на сайте:
Создать.
Обновить/изменить.
Посмотреть 1.
Посмотреть список.
Удалить.
Всё это мы будем делать в контексте привязки к категории картинки (Миниатюры).
Публикация Категорий товаров.
Конечные точки WordPress / WooCommerce используемые для категорий товаров.
Является моим вольным переводом документации разработчика, источник.
Мои комментарии: образец моего комментария.
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
строка / текст
Категория архивного тип отображения. Опции: default, products, subcategories 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 пункта, можно прочитать здесь.
Token.
Server
Маршрут
КонечнаяТочка
Наименование - "name" в контексте WooCommerce. Строка.
Описание - "description" в контексте WooCommerce. Строка.
Слаг - "slug" в контексте WooCommerce, временное имя файла, если всё хорошо, становится ссылкой. Строка.
КартинкаФото - "id" изображения в контексте WooCommerce. Число.
id_родителя - "parent" в контексте WooCommerce. Число.
Аргументы с 5 по 9 должны присутствовать в реквизитах элемента справочника (иной сущности) 1С. Можно иные данные, как вам будет удобнее.
Повторюсь, важное замечание: с самого начала, делал реквизиты на английском, как в WordPress. Однако в последствии столкнулся с тем, что многие "аглицкие" названия зарезервированы самой 1С, про этот момент забыл. Поэтому пришлось делать структуру перевода с "Русского" на "Английский" и обратно.
Подробнее под спойлером.
Процедуры и функции работы со структурами перевода
//////КЭШ переменные необходимо объявить в модуле формы
Перем ВП_СтруктураСоответствийСАнгНаРусского, ВП_СтруктураСоответствийСРусскогоНаАнг;
#Область Текст_РаботасСТекстами
Процедура опф_СоздатьКэшСтруктуруСоответствияРусскогоАнглийского()
ВП_СтруктураСоответствийСАнгНаРусского=Новый Структура;
ВП_СтруктураСоответствийСРусскогоНаАнг=Новый Структура;
////маршруты ВП
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Категория") , "/wp-json/wp/v2/categories/");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Медиа") , "/wp-json/wp/v2/media/");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Посты") , "/wp-json/wp/v2/posts/");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Страницы") , "/wp-json/wp/v2/pages/");
////--- маршруты ВЦ
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Товары") , "/wp-json/wc/v3/products/");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("ТоварыКатегория") , "/wp-json/wc/v3/products/categories/");
////команды/конечные точки запросов ВП
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Список") ,"GET");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Получить") ,"GET");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Создать") ,"POST");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Обновить") ,"POST");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Удалить") ,"DELETE");
////---команды/конечные точки запросов ВЦ
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("СписокТовары") , "GET");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("ПолучитьТовары") , "GET");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("СоздатьТовары") , "POST");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("ОбновитьТовары") , "PUT");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("УдалитьТовары") , "DELETE");
//////ключи значений ВП
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("id") , "id");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("АтрибутыТовара"), "attributes");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("АтрибутыТоваров"), "default_attributes");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("ТермыАтрибута"), "options");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("ВидимостьАтрибута"), "visible");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("категорияТОвара") , "categories");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Описание") , "description");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("_Заголовок") , "title");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("КраткаяАннотация"), "excerpt");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("слаг") , "slug");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("контент") , "content");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("основное_фото"), "featured_media");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("id_поста") , "post");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("id_родителя") , "parent");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("альт_текст") , "alt_text");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("м_описание") , "caption");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("РасширениеФото"), "mime_type");
////ключи значений ВЦ
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Наименование") , "name");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("КраткоеОписание") , "short_description");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("КартинкаФото") , "image");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Артикул") , "sku");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Остаток") , "stock_quantity");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("ТекущаяЦена") , "regular_price");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Архивный") , "has_archives");
////////------ Реквизиты Общие для всех
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Дата_Создания") ,"date_created");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Дата_Изменения") ,"date_modified");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Дата_Изменения_gmt") ,"date_modified_gmt");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Дата_Создания_gmt") ,"date_created_gmt");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Групповые_Продукты") ,"grouped_products");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Цена_РасПродажи") ,"sale_price");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Цена") ,"price");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Прямая_Ссылка") ,"permalink");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Похожие_ids") ,"upsell_ids");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Тип") ,"type");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Управляемый_Запас") ,"manage_stock");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Налоговый_Статус") ,"tax_status");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Видимость_Вкаталоге") ,"catalog_visibility");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Всего_Продано") ,"total_sales");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Дата_Начала_Распродажи_gmt") ,"date_on_sale_to_gmt");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Альтернатива") ,"alt");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Источник") ,"src");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Ссылки") ,"_links");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Собственно_Ссылка") ,"href");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Собственно") ,"self");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Коллекции") ,"collection");
ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("status") ,"status"); //// array Limit result set to orders assigned a specific status. Options: any, pending, processing, on-hold, completed, cancelled, refunded, failed and trash. Default is any.
/////Конвертируем ВП_СтруктураСоответствийСАнгНаРусского
Для каждого КлючИЗначение Из ВП_СтруктураСоответствийСРусскогоНаАнг Цикл
Если СтрНайти(КлючИЗначение.Значение,"-")>0 Тогда
НовыйКлюч= СтрЗаменить(КлючИЗначение.Значение,"-","_");
Иначе
НовыйКлюч=КлючИЗначение.Значение;
КонецЕсли;
Попытка
ВП_СтруктураСоответствийСАнгНаРусского.Вставить(НовыйКлюч,КлючИЗначение.Ключ);
Исключение /////значит уже есть
Продолжить;
КонецПопытки;
КонецЦикла;
КонецПроцедуры
//// <Поиск и возврат значения по ключу в ВП_СтруктураСоответствийСРусскогоНаАнг>
//
// Параметры:
// <ВхКлюч> - <Тип.ЛюбоеЗначение> - <ключ структуры>
//
// Возвращаемое значение: ИсхЗначение
// <Тип.ЛюбоеЗначение> - <значение >
//
Функция _Текст_ПеревестиНаАнгл_ПолучитьЗначениеПоКлючу(ВхКлюч) Экспорт
ВрегВхКлюч=Врег(ВхКлюч);
Попытка
Возврат ВП_СтруктураСоответствийСРусскогоНаАнг[ВрегВхКлюч];
Исключение
Возврат ВхКлюч;
КонецПопытки;
КонецФункции
////бывшая
Функция _Текст_ПеревестиСАнглРус_ПолучитьЗначениеПоКлючу(ВхКлюч) Экспорт
Если СтрНайти(ВхКлюч,"-")>0 Тогда
ВхКлюч= СтрЗаменить(ВхКлюч,"-","_");
КонецЕсли;
ВрегВхКлюч=Врег(ВхКлюч);
Попытка
Возврат ВП_СтруктураСоответствийСАнгНаРусского[ВрегВхКлюч];
Исключение
Возврат ВхКлюч;
КонецПопытки;
КонецФункции
#КонецОбласти
Данные для тестов представлены в виде "Справочника", иерархический, с множеством подгрупп для наглядности.
Процедура ПослатьЗапросНаСайтКатегорииНажатие
Процедура ПослатьЗапросНаСайтКатегорииНажатие(Элемент)
ТекСтрока=ЭлементыФормы.КатегорииГруппыТоваров.ТекущаяСтрока;
Если НЕ ЗначениеЗаполнено(ОперацииСКатегориямиСайта) Тогда
Сообщить("Не выбрана конечная точка!");
Возврат;
КонецЕсли;
СтруктураПараметров=Новый Структура;
СтруктураПараметров.Вставить("Token",СоединениеССайтом_JWToken);
СтруктураПараметров.Вставить("Server",СоединениеССайтом_JWTServer);
СтруктураПараметров.Вставить("Маршрут",ТоварыКатегорияМаршрут);
СтруктураПараметров.Вставить("КонечнаяТочка",ОперацииСКатегориямиСайта);
////СтруктураПараметров.Вставить("",);
Если НЕ ОперацииСКатегориямиСайта="СПИСОК" Тогда
СтруктураПараметров.Вставить("Наименование",ТекСтрока.Ссылка.Наименование);
СтруктураПараметров.Вставить("Описание",ТекСтрока.Описание);
ТекСтрока=ЭлементыФормы.КатегорииГруппыТоваров.ТекущаяСтрока;
Если ОперацииСКатегориямиСайта="СОЗДАТЬ" Тогда
СтруктураПараметров.Вставить("Слаг",ТекСтрока.Слаг);
/////Если id картинки = 0 , то необходимо сначала опубликовать картинку
Если ТекСтрока.idКартинка=0 Тогда
/////собираем структуру для публикации
СтруктураПараметровКартинки=Новый Структура;
СтруктураПараметровКартинки.Вставить("Token",СоединениеССайтом_JWToken);
СтруктураПараметровКартинки.Вставить("Server",СоединениеССайтом_JWTServer);
СтруктураПараметровКартинки.Вставить("Маршрут","Медиа");
СтруктураПараметровКартинки.Вставить("КонечнаяТочка","СОЗДАТЬ");
СтруктураПараметровКартинки=ДобавитьДанныеМедиаВСтруктуру(СтруктураПараметровКартинки, ТекСтрока.СсылкаМедиа);
СтруктураОтветаССайта = _рс_публикация_ПодсистемаWordPressМедиа(СтруктураПараметровКартинки);
////обработка ответа
ПарсерСтруктура=_рс_ПостОбработка_РаспарситьПростуюСтрокуДерева(СтруктураОтветаССайта["ЗначениеОтвета"]);
КартинкаОбъект=ТекСтрока.СсылкаМедиа.ПолучитьОбъект();
ТекСтрока.idКартинка=ПарсерСтруктура.id;
КартинкаОбъект.id=ПарсерСтруктура.id;
КартинкаОбъект.Слаг=ПарсерСтруктура.Слаг;
КартинкаОбъект.link=ПарсерСтруктура.link;
КартинкаОбъект.status=ПарсерСтруктура.status;
КартинкаОбъект.Записать();
КонецЕсли;
СтруктураКартинки=Новый Соответствие;
СтруктураКартинки.Вставить("id",ТекСтрока.idКартинка);
СтруктураПараметров.Вставить("КартинкаФото",СтруктураКартинки);
Если ТекСтрока.Уровень()>0 Тогда
Если НЕ ЗначениеЗаполнено(ТекСтрока.id_родителя) Тогда
ТекСтрока.id_родителя=ТекСтрока.Родитель.id;
КонецЕсли;
СтруктураПараметров.Вставить("id_родителя",ТекСтрока.id_родителя);
КонецЕсли;
Иначе
Если ТекСтрока.id=0 Тогда
Сообщить("id=0, продолжение невозможно.");
Возврат;
КонецЕсли;
СтруктураПараметров.Вставить("id",ТекСтрока["id"]);
Если ОперацииСКатегориямиСайта="УДАЛИТЬ" Тогда
СтруктураПараметров.Вставить("force","true");
КонецЕсли;
КонецЕсли;
КонецЕсли;
СтруктураОтветаССайта = _рс_публикация_ПодсистемаWordPressПостыСтраницы(СтруктураПараметров);
ФормаПросмотраОтветаССайта=ПолучитьОбщуюФорму("ФормаПросмотраОтветаССайта");
ФормаПросмотраОтветаССайта.КодСостояния =СтруктураОтветаССайта["КодСостояния"];
ФормаПросмотраОтветаССайта.ОписаниеОтвета =СтруктураОтветаССайта["ОписаниеОтвета"];
ФормаПросмотраОтветаССайта.РезультатКонвертацииИзJSON =СтруктураОтветаССайта["ЗначениеОтвета"];
ФормаПросмотраОтветаССайта.Открыть();
КатегорияОбъект=ТекСтрока.Ссылка.ПолучитьОбъект();
Если ОперацииСКатегориямиСайта="УДАЛИТЬ" Тогда
ТекСтрока.id=0;
ТекСтрока.id_родителя=0;
КатегорияОбъект.id=0;
КатегорияОбъект.id_родителя=0;
ИначеЕсли ОперацииСКатегориямиСайта="СПИСОК" Тогда
/////ничего не обрабатываем
Возврат;
Иначе
ПарсерСтруктура=_рс_ПостОбработка_РаспарситьПростуюСтрокуДерева(СтруктураОтветаССайта["ЗначениеОтвета"]);
ТекСтрока.id=ПарсерСтруктура.id;
ТекСтрока.id_родителя=ПарсерСтруктура.id_родителя;
ТекСтрока.Слаг=ПарсерСтруктура.Слаг;
КатегорияОбъект.id=ПарсерСтруктура.id;
КатегорияОбъект.Слаг=ПарсерСтруктура.Слаг;
КатегорияОбъект.id_родителя=ПарсерСтруктура.id_родителя;
КатегорияОбъект.Описание=ПарсерСтруктура.Описание;
КонецЕсли;
КатегорияОбъект.Записать();
КонецПроцедуры ///ПослатьЗапросНаСайтКатегорииНажатие
Типовая процедура, как было описано в предыдущих статьях. Есть небольшое отличие, о котором напишу.
Если id картинки = 0 , то необходимо сначала опубликовать картинку.
Собираем структуру данных для публикации картинки.
Публикуем картинку.
Получаем id картинки.
Сохраняем полученные данные от сайта в реквизитах картинки.
Добавляем id картинки в структуру данных для публикации категории в магазин WooCommerce.
И, собственно всё, отправляем данные на публикацию категории.
Процедуры и функции модуля объекта.
Описывать их здесь, наверное, нет надобности. Так как всё подробно описал в предыдущих статьях.
Небольшая видео демонстрация, показывающая, простоту взаимодействия из 1С с сайтом / магазином WooCommerce.
Заключение.
Как видим, опубликовать категории товаров на сайте / магазине WooCommerce не составляет большого труда.
Желаю приятных экспериментов на ниве обмена из 1С с сайтом WordPress.
Плюсуем, не стесняемся, делимся, комментируем.
Особенно ПЛЮСУЕМ, это есть очень большой мотиватор для меня. Если вы не поставили "+" предыдущей публикации, прошу сюда.
Продолжение следует. В следующей публикации продолжим работу с магазином WooCommerce, с товарами и будем их публиковать в "пакетном" (batch) режиме.
Модуль для интеграции с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress.
При помощи расширения поддерживаются следующие методы: обмен остатками товаров, обмен ценами, обработка заказов, печать стикеров, загрузка отчетов комиссионеров по API (в том числе Я.Маркет). Подходит для конфигураций Беларуси.
Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации.
Проверено с брендами:
Интеграция 1С и GEELY
Интеграция 1С и HAVAL
Интеграция 1С и KIA
Интеграция 1С и FORD
Интеграция 1С и LADA
ГАРАНТИЯ 100% ВНЕДРЕНИЯ!
Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения.
Интеграция сервиса dolyame.ru для приема платежей в рассрочку.
Интеграция 1С и Битрикс24.
Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами.
Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот.
Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289).
При приобретении предоставляется 1 месяц бесплатных обновлений разработки.
Доступна демо-версия продукта с подключением Вашего Битрикс24
Выгрузка товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки.
Обработка подходит для конфигураций УТ, УНФ и Розница.
Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".
Сервис помогает отслеживать цены на ведущих маркетплейсах России только для одного региона – Москва и Московская область. Выполняйте анализ и контролируйте цены Ваших конкурентов сразу в системе 1С.
Статьи интересные, но посмотрел Ваш сайт и увидел, что с WEB-дизайном у Вас беда.
А там ничего особенного нет, практически всё штатно.
А у кого не беда? Другой мой сайт, гугл адаптивность под мобильные показывает то 86-88, то 90-92 балла.