Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

28.04.20

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

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

Интеграция 1С и  CMS WordPress посредством Rest API сайта. Первый шаг.

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

Преамбула.

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

Рейтинг CMS.

Как и в предыдущей статье WordPress занимает лидирующие позиции по количеству установок и работающих сайтов в мире, и не только не сдает своих позиций, но и понемногу растет:

Рис. 1.1

А так как WordPress является платформой для электронной коммерции, соответственно магазин WooCommerce, так же занимает лидирующие позиции в другом мировом рейтинге:

Рис 1.2

Это конечно прекрасно, но помимо достоинств, описанных в этой статье, есть еще один немаловажный фактор, о котором мне хотелось бы сообщить. Это формат обмена данными между 1С и сайтом электронной коммерции.

JSON vs. XML

Почему JSON и XML? XML является стандартом де-факто в 1С. JSON, на мой взгляд, имеет значительно больше перспектив, проще, удобнее.

От настольных компьютеров до веб-и мобильных устройств, почти все компьютерные приложения, которые мы используем сегодня, полагаются на один из двух основных стандартов сообщений: JSON и XML. Сегодня JSON является наиболее широко используемым форматом, но он обогнал XML только за последние пять лет. Быстрый онлайн-поиск «JSON vs. XML» принесет бесчисленное количество статей и постов в блогах, сравнивающих эти два стандарта и составляющих постепенно расширяющуюся предвзятость, восхваляющую простоту JSON и критикующую многословие XML. Многие статьи настаивают на том, что JSON превосходит XML из-за его краткой семантики и дисконтирует XML как неэффективный и запутанный стандарт прошлого, и здесь мне тяжело не согласиться.

Почему JSON стал более популярным, чем XML

Я на деюсь все знают, что JSON-это родной формат данных в приложениях JavaScript. Написание приложений на JavaScript почти полностью требует использования JSON для обмена данными. Возможны и другие форматы, но они требуют больше усилий, чем в случае с JSON. По мере того как JavaScript набирал популярность для разработки приложений, JSON вплотную следовал за ним как простой в использовании и изначально интегрированный формат обмена данными.

История и эволюционный путь интернета сыграли значительную роль в популяризации JSON. Согласно Stack Overflow, теперь больше вопросов задается о JSON, чем о других форматах обмена данными.

Рис 2.1

Согласно Google Trends, похожая ситуация наблюдается при сравнении интереса поиска для JSON и XML.

Рис 2.2.

Основная разница между JSON и XML

JSON

XML

JSON-объект имеет тип

XML-данные не содержат типов

Типы JSON: строка, число, массив, логическое значение

Все данные XML должны быть строковыми

Данные легко доступны в виде объектов JSON.

Данные XML должны быть проанализированы.

JSON поддерживается большинством браузеров.

Кросс-браузерный анализ XML может быть сложным

JSON не имеет возможностей отображения.

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

JSON поддерживает только текстовые и числовые данные.

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

Получить значение легко

Получить значение сложно

Поддерживается многими инструментами Ajax

Не полностью поддерживается инструментарием Ajax

Полностью автоматизированный способ десериализации / сериализации JavaScript.

Разработчики должны написать код JavaScript для сериализации / десериализации из XML

Нативная поддержка объекта.

Объект должен быть выражен соглашениями - в основном пропущено использование атрибутов и элементов.

Он поддерживает только кодировку UTF-8.

Он поддерживает различные кодировки.

Это не поддерживает комментарии.

Поддерживает комментарии.

Файлы JSON легко читаются по сравнению с XML.

XML-документы относительно сложнее для чтения и интерпретации.

Он не обеспечивает никакой поддержки пространств имен.

Он поддерживает пространства имен.

Это менее защищено.

Это более безопасно, чем JSON.

 

JSON Code vs XML Code

Пример JSON

{
  “firstName”: “Jonathan”,
  “lastName”: “Freeman”,
  “loginCount”: 4,
  “isWriter”: true,
  “worksWith”: [“Spantree Technology Group”, “InfoWorld”],
  “pets”: [
    {
      “name”: “Lilly”,
      “type”: “Raccoon”
    }
  ]
}

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

Пример XML

<?xml version="1.0"?>
<person>
  <first_name>Jonathan</first_name>
  <last_name>Freeman</last_name>
  <login_count>4</login_count>
  <is_writer>true</is_writer>
  <works_with_entities>
    <works_with>Spantree Technology Group</works_with>
    <works_with>InfoWorld</works_with>
  </works_with_entities>
  <pets>
    <pet>
      <name>Lilly</name>
      <type>Raccoon</type>
    </pet>
  </pets>
</person>

Помимо того, что XML является более подробным (в данном случае ровно в два раза более подробным), он также вносит некоторую двусмысленность при синтаксическом анализе в удобную для JavaScript структуру данных. Преобразование XML в объект JavaScript (да и в 1С будет не мало) может занять от десятков до сотен строк кода и в конечном счете требует настройки на основе конкретного анализируемого объекта. Преобразование JSON в объект JavaScript занимает одну строку кода (и в 1С три) и не требует каких-либо предварительных знаний о анализируемом объекте.

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

Рис. 2.3

За последние 15 лет JSON стал повсеместным в интернете. Сегодня этот формат является наиболее предпочтительным практически для всех общедоступных веб-сервисов, а также часто используется для частных веб-сервисов.

JSON затмил XML как предпочтительный формат обмена данными для веб-приложений и веб-служб.

Возможно, многим покажется, что здесь избыточно рассказывается о преимуществах JSON. Безусловно, у JSON есть свои недостатки, у XML есть свои преимущества. Но я рассказываю об этом «со своей колокольни». Что касается WordPress, там естественно имеется поддержка XML. Но безусловные преимущества JSON над XML, такие как: простота написания кода, объем передаваемых данных, перспектива, однозначно предопределили мой выбор.

Думаю, что, почитав подробнее в интернете об JSON vs. XML, вы тоже сделаете свой выбор.

Но хватит про выбор, давайте начнем и сделаем что-нибудь.

Запрос данных из WordPress из 1С посредством REST API.

С момента написания прошлой статьи ничего лучше плагина Advanced Access Manager (ААМ) не появилось, поэтому продолжим с ним. Все подробности по настройке можно прочитать здесь.

Весь приводимый ниже код использовался в обработке написанной под управляемые формы. С таким же успехом его можно использовать в обычных формах (версия платформы 1С должна быть не ниже 8.3.6).

 Условно постоянные значения, используемые в обработке (константы).

1. СоединениеССайтом_JWTServer. Строка подключения к сайту (host) без https://

2. СоединениеССайтом_JWToken. Токен полученный от сайта

3. СоединениеССайтом_Таймаут. Таймаут (секунд) подключения к сайту

4. СоединениеССайтом_ЭтоHTTPS_Соединение. Флаг указывающий на HTTPS-соединение.

В свой конфигурации вам надо будет их создать.

Небольшая ремарка, HTTP-соединение тестировалось, работает как надо.

Используемые маршруты WordPress.

  1. /wp-json/aam/v2. Выдает полный перечень сервисов плагина авторизации.
  2. /wp-json/aam/v2/jwt/validate. Валидация (проверка валидности) имеющегося токена.
  3. /wp-json/aam/v2/jwt/refresh. Обновление токена.
  4. /wp-json/aam/v2/jwt/revoke. Отзыв токена.
  5. /wp-json/aam/v2/authenticate. Аутентикация пользователя на сайте посредством пары «логин : пароль».
  6. /wp-json/wp/v2/categories/. Запрос категорий постов сайта.
  7. /wp-json/wp/v2/media/. Запрос списка картинок сайта.
  8. /wp-json/wp/v2/posts/. Запрос списка постов сайта.
  9. /wp-json/wp/v2/pages/. Запрос списка страниц сайта

В контексте данной статьи п.п. 3, 4, 5 не используются, за ненадобность (но вы можете поэкспериментировать самостоятельно, «authenticate» работает точно). Остальные приведены справочно, для демонстрации работоспособности кода. См. видео в конце статьи.

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

  1. POST.
  2. GET.

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

 

 
 ПриОткрытии и ПриОткрытииНаСервере используются для получения констант сайта и токена.

 ПриОткрытии и ПриОткрытииНаСервере используются для получения констант сайта и токена.

 

 
 ПослатьЗапросНаСайт и ПослатьЗапросНаСайтНаСервере

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

 

 
 ПолучитьВрДеревоНаСервере

ПолучитьВрДеревоНаСервере процедура конвертации дерева значений ответа в реквизит формы «дерево значений», для наглядной демонстрации полученных результатов.

 

Картинка формы обработки

 

Процедуры и функции, используемые в модуле объекта.

Подготовка данных перед отправкой на сайт.

 
 Функция рс_ПолучитьТиповыеЗаголовкиХТТП()

Здесь формируем типовые заголовки http-запроса, которые используются практически во всех запросах к сайту. Иногда к ним могут добавиться другие, например при посылке картинки на сайт. Четвертый мой, персональный, для понимания логов сайта, можно не использовать.

 

 
 Функция рс_подготовка_КонвертироватьВСоответствие(ВходДанные)

Предварительная конвертация в соответствие из "таблицы значений" и "структуры" для последующей конвертации в JSON. Если вы будете использовать только соответствие, можно не использовать.

 

 
 Функция рс_подготовка_ОбъектВJSON

Здесь происходит конвертация данных в JSON. И дополнительный обработчик конвертации, на случай если вдруг "прилетела" "структура", "дерево значений" или строка "дерева значений". Если иные данные кроме соответствия не используются можно оставить только строки "лОбъектJSON = ПереданноеДерево;" и код внутри комментария "/////    Привет XML парсеру".

 

 
 Функция рс_подготовка_ПолучитьЗапросHTTP

Здесь формируется штатный запрос 1С "Новый HTTPЗапрос" и в соответствии с входящими данными получаем тот или иной вид. Его чуть позже пошлем на сайт.

 

 
Функция рс_подготовка_СоздатьСтруктуруВозвращаемогоОтвета

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

 

Отправка данных на сайт.

 
 Функция рс_публикация_ПолучитьСоединениеHTTPS

Здесь, мое мнение, комментарии излишни, штатная процедура 1С.

 

 
 Функция рс_публикация_ПодсистемаWordPressПостыСтраницы, комментарии по спойлером

 

Функция рс_публикация_ПодсистемаWordPressПостыСтраницы(_ВхСтруктураПараметров) Экспорт
	/////_ВхСтруктураПараметров структура данных необходимых для действий на сайте, не нужные удаляются
	ВозвращаемыйОтвет=рс_подготовка_СоздатьСтруктуруВозвращаемогоОтвета();
	Если ТипЗнч(_ВхСтруктураПараметров)<>Тип("Структура") Тогда    ////проверка
		ВозвращаемыйОтвет.Вставить("ОписаниеОтвета","Входящие параметры не соответствуют типу данных <Структура>");
	    Возврат ВозвращаемыйОтвет;
	КонецЕсли;
	
	/////  в этом блоке получаем и удаляем из структуры данные необходимые для подготовки к публикации
	_token_			=_ВхСтруктураПараметров["Token"];
	_JWTServer_		=_ВхСтруктураПараметров["Server"];
	_Маршрут_		=_ВхСтруктураПараметров["Маршрут"];
	_КонечнаяТочка_ =_ВхСтруктураПараметров["КонечнаяТочка"];
	
	_ВхСтруктураПараметров.Удалить("Token");
	_ВхСтруктураПараметров.Удалить("Server");
	_ВхСтруктураПараметров.Удалить("Маршрут");
	_ВхСтруктураПараметров.Удалить("КонечнаяТочка");
	/////  в этом блоке получаем и удаляем из структуры данные необходимые для подготовки к публикации
	
	_ТелоЗапроса_=Неопределено;
	Если _ВхСтруктураПараметров.Количество()>0 Тогда        									///// здесь остаются только данные которы надо непосредственно отослать на сайт, статья, товар и т.д.
		_БодиПубликации_=рс_подготовка_КонвертироватьВСоответствие(_ВхСтруктураПараметров);     ////создаем боди/тело с данными для подстановки в ЗапросHTTP 
		_ТелоЗапроса_	=рс_подготовка_ОбъектВJSON(_БодиПубликации_);                           ////конвертируем боди в JSON
	КонецЕсли; 
	_ЗаголовкиHTTP_	= рс_ПолучитьТиповыеЗаголовкиХТТП();                                        ////штатные заголовки  ЗапросHTTP
	_ЗаголовкиHTTP_.Вставить("Authentication", "Bearer "+_token_);                              ////Добавляем заголовок для авторизации
	
	Запрос 			=рс_подготовка_ПолучитьЗапросHTTP(_Маршрут_, _ЗаголовкиHTTP_, _ТелоЗапроса_);     ////получаем  ЗапросHTTP
	Результат		=рс_публикация_ПослатьГотовыйЗапросНаСайт(_КонечнаяТочка_, _JWTServer_, Запрос);  ////посылаем запрос на сайт и получаем результат HTTPОтвет 
	
	/////---получаем результат ответа - соответствие
	РезультатРасшифровка=Контроль_РезультатHTTPЗапросаСодержитОшибку(Результат);       			////Расшифровываем ответ от сайта
	
	/////// преобразовываем  JSON результат ответа в "дерево значений"
	РезультатОтветаДерево=рс_ПостОбработка_ЗаполнитьДеревоJSON(Результат.ПолучитьТелоКакСтроку());
	
	ВозвращаемыйОтвет.Вставить("ЗначениеОтвета",РезультатОтветаДерево);                      ////дерево с ответом из рс_ПостОбработка_ЗаполнитьДеревоJSON
	ВозвращаемыйОтвет.Вставить("КодСостояния",РезультатРасшифровка["КодСостояния"]);         //// код состояния 200, 201, 404, и т.д.  из Контроль_РезультатHTTPЗапросаСодержитОшибку
	ВозвращаемыйОтвет.Вставить("ОписаниеОтвета",РезультатРасшифровка["ОписаниеОшибки"]);     //// краткое описание ошибки из Контроль_РезультатHTTPЗапросаСодержитОшибку
	
	Возврат ВозвращаемыйОтвет;
КонецФункции // ПодсистемаWordPressПостыСтраницы()

 

 

 
 Функция рс_публикация_ПослатьГотовыйЗапросНаСайт

Посылаем запрос на сайт штатными средствами и  получаем ответ.

Ну и последнее.

Постобработка ответа с сайта.

 
 Функция Контроль_РезультатHTTPЗапросаСодержитОшибку

Обработчик ответа от сайта, получаем код успеха/ошибки и описание.

 
 Функция рс_ПостОбработка_ЗаполнитьДеревоJSON

Сначала конвертируем "сырой" ответ из JSON в соответствие.

 
 Функция ЗаполнитьДеревоЖсон

Потом конвертируем "соответствие" в "дерево значений" для последующей обработки. Кому оно не нравится может использовать что-то иное. Мне очень удобно. Функция не моя, скачал здесь, на Инфостарте, понравилась, спасибо, правда не помню кому.

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

Хочу отметить, что самый важный код - это Функция рс_публикация_ПодсистемаWordPressПостыСтраницы. А здесь самое важное - создание тела публикации "_БодиПубликации_". Сколько шишек здесь было набито... Отладите его, дальше всё пойдет как по маслу. И использоваться эта функция будет практически для всего, что надо отправить на сайт, или получить с сайта.

Ну и на последок видео, без него сейчас никуда.

На этом всё, первый шаг сделан, подставляйте свои маршруты и дерзайте.

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

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

Продолжение следует.

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

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

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

Источники

  1. toptal
  2. guru99
  3. infoworld 
  4. itrack 
  5. builtwith
  6. WordPress

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 (в том числе Я.Маркет). Подходит для конфигураций Беларуси. Поддержка искусственного интелекта GigaChat

59990 руб.

05.09.2023    7096    87    74    

68

Интеграция Альфа Авто 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    15728    10    17    

11

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

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

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

18000 руб.

19.12.2023    1163    6    1    

6

SALE! 15%

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

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

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

12000 10200 руб.

18.03.2019    31269    109    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    17541    6    15    

13

SALE! 33%

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

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

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

2400 1608 руб.

29.05.2023    6646    25    37    

15

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

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

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

4200 руб.

07.06.2022    15332    42    56    

37
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. baracuda 2 28.04.20 12:18 Сейчас в теме
Спасибо. Познавательно. Я давно хочу сваять интернет магазин на Wordpress. ОДнако останавливает отсутствие в API массового создания товаров bulk_create()
2. osivv 265 28.04.20 13:34 Сейчас в теме
(1)
Спасибо. Познавательно. Я давно хочу сваять интернет магазин на Wordpress. ОДнако останавливает отсутствие в API массового создания товаров bulk_create()

Если это PHP, то не знаю. Но в Rest API есть пакетное создание товаров, до 100 шт единовременно.
15. baracuda 2 01.05.20 02:47 Сейчас в теме
(2) ткните пож-та ссылку на документацию. Я не нашел такого.
16. osivv 265 01.05.20 09:58 Сейчас в теме
(15) Пожалуйста.

Batch update products
This API helps you to batch create, update and delete multiple products.

Note: By default it's limited to up to 100 objects to be created, updated or deleted.
HTTP request
POST /wp-json/wc/v3/products/batch

Link
17. baracuda 2 02.05.20 02:57 Сейчас в теме
18. baracuda 2 02.05.20 02:58 Сейчас в теме
(2) кстати там указано..
Note: By default it's limited to up to 100 objects to be created, updated or deleted.
то есть тереотически лимит можно расширить получается..
20. osivv 265 02.05.20 11:40 Сейчас в теме
(18)
то есть тереотически лимит можно расширить получается..

Не получится, ограничение разработчиков.
Хотя если вы гуру PHP, и код WooCommerce знаете как свои 5 пяльцев, можете попробовать.
Пробовал, возвращается ошибка, и ничего не создается.
3. malikov_pro 1292 29.04.20 05:30 Сейчас в теме
(1)
Преимуществ группового создания перед одиночным не вижу.
в woo базово внешние коды не хранятся, поэтому нужно хранить коды в 1С.
При анализе изменений делаю левое соединение к таблице с идентификаторами и если id > 0 то PUT, иначе POST.
6. osivv 265 29.04.20 10:23 Сейчас в теме
(3)
Преимуществ группового создания перед одиночным не вижу.

Конечно!!! Какая разница, отправлять 100 позиций в цикле или одним запросом?
Гуру 1С, напишите свои размышления на этот счет пожалуйста!
4. malikov_pro 1292 29.04.20 05:39 Сейчас в теме
1. Странно работаете с JSON, проще создать соответствие и сериализовать его.
2. Используете JWT имеет смысл статья https://infostart.ru/public/611505/ (использовал в своих работах)
3. Для HTTP имеет смысл переиспользовать https://infostart.ru/public/709325/, он есть и в git (сам свой велосипед использую, планирую переходить/использовать наработки)
5. osivv 265 29.04.20 10:19 Сейчас в теме
(4)
2. Используете JWT имеет смысл статья https://infostart.ru/public/611505/ (использовал в своих работах)

Не нашел про JWT ничего кроме описания в 3-х словах. К чему эта отсылка?
Странно не использовать то, что уже есть... Или мы, как истинные россияне, должны идти "своим путём", велосипед уже изобретён, но нам нужен свой?
И ладно бы изобрели лучше, но ведь делаем копию хуже китайской, и потом гордимся "Вот, мы изобрели собственный велосипед!!!"

(4)
Для HTTP имеет смысл переиспользовать

Не имеет, здесь используется "чистый" код 1С, без встраивания сторонних библиотек и прочего, с которыми еще надо разобраться как работают.
По сути вы пересобрали всевозможные варианты работы с HTTP в одну библиотеку...
Не написано, ни где использовалась, ни как использовалась, ни примеры работы, голый код. Да ещё неработающий.
За меня всё сказали другие комментаторы.
8. bonv 1510 29.04.20 13:59 Сейчас в теме
(5) Давайте по пунктам:
Не имеет, здесь используется "чистый" код 1С, без встраивания сторонних библиотек и прочего, с которыми еще надо разобраться как работают.

Что в вашем понимании "чистый" код 1С?

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

Вы же прокрутили дальше заголовка? Собственно вся статья про то как использовать на примерах.
Что в вашем понимании голый код?

Да ещё неработающий.

Вы же попробовали сначала и у вас не получилось? Можно примеры неработающего кода?
10. osivv 265 29.04.20 15:20 Сейчас в теме
(8) У нас с вами разные задачи. У вас вроде универсальный вариант. У меня "заточенный" под WordPress.
Ваш с WordPress работает?
11. bonv 1510 29.04.20 15:31 Сейчас в теме
(10) Прочитайте мои вопросы, они достаточно конкретные. Ответы я на них так и не получил.

Я нигде не утверждал, что моя библиотека заточена под WordPress.
Библиотека заточена на работу с HTTP на клиентской стороне.
12. osivv 265 29.04.20 17:18 Сейчас в теме
(11)
Я нигде не утверждал, что моя библиотека заточена под WordPress.
Библиотека заточена на работу с HTTP на клиентской стороне.

Аналогично. Я просто спросил.
7. iliabvf 29.04.20 10:49 Сейчас в теме
Решил данную задачу через соединение с MySQL на определенный IP. Сделал вывод что легче сразу работать с БД сайта.
vladimirmatancev; +1 Ответить
9. osivv 265 29.04.20 15:12 Сейчас в теме
(7)
Решил данную задачу через соединение с MySQL на определенный IP. Сделал вывод что легче сразу работать с БД сайта.

Конечно легче, только есть парочка "но".
На мой, сугубо личный, взгляд, работать по IP - моветон. Для этого и придуман DNS. Вы с базой 1С тоже по IP соединяетесь?
Как с безопасностью?
Соединение постоянное? Если да, то как поддерживать постоянно?
Наверняка надо писать процедуру "прослушки" MySQL, если какие-то изменения.
14. Diversus 2306 29.04.20 20:00 Сейчас в теме
(9)
На мой, сугубо личный, взгляд, работать по IP - моветон. Для этого и придуман DNS. Вы с базой 1С тоже по IP соединяетесь?

DNS - это получение IP-адреса по наименованию хоста. Моветона нет и не может быть, если IP-адрес постоянный. И с базой 1С достаточно часто работают по IP. Например, когда компьютер соединяется с рабочей сетью через VPN. Доступ к сети с базой 1С есть, а вот DNS-записей нет, так как используется VPN. Напрасно вы так.

Наверняка надо писать процедуру "прослушки" MySQL, если какие-то изменения.

С MySQL автор комментария наверняка работает через ADODB.Connection, поддерживать соединение постоянно нет необходимости, только когда запускается обмен. А вот с безопасностью беда, как сказал выше.
vladimirmatancev; +1 Ответить
19. iliabvf 02.05.20 09:43 Сейчас в теме
(9) IP клиентский, как раз чтобы была безопасность. Соединение периодическое. Читаются новые заказы, и связанные с ними товары и клиенты.
13. Diversus 2306 29.04.20 19:50 Сейчас в теме
(7) Открытие доступа к MySQL во вне - это плохо с точки зрения безопасности (даже если соединение на определенный IP).
На крупных проектах такое не подойдет.
21. iliabvf 05.05.20 09:40 Сейчас в теме
(13) Тут по подробнее, почему?
22. FreeArcher 158 07.05.20 04:23 Сейчас в теме
А как насчет другой истории. Не из 1С отправлять данные на сайт, а с сайта забирать данные из 1С посредствам HTTP сервисов? Мне кажется это более гибкое решение.
23. osivv 265 07.05.20 11:12 Сейчас в теме
(22)Возможно и то и другое.
24. reset2 17 26.09.22 18:43 Сейчас в теме
Могу предложить свой готовый вариант для Розницы, код открытый, можно в своих разработках использовать.
https://infostart.ru/public/1545735/
Оставьте свое сообщение