Интеграция 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, на мой взгляд, имеет значительно больше перспектив, проще, удобнее.

От настольных компьютеров до веб-и мобильных уст

Вступайте в нашу телеграмм-группу Инфостарт

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

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

42700 руб.

03.08.2020    25064    39    26    

29

Прайсы Оптовая торговля Сайты и интернет-магазины Программист Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Транспорт, автопарки, такси Управленческий учет Платные (руб)

Расширение, предназначено для наполнения вашей базы данных товарами и сопутствующей информацией, предоставляемой b2b.4tochki.ru, а также MIM(Север Авто) обновления остатков и цен.

18096 руб.

31.01.2020    35326    21    7    

18

Сайты и интернет-магазины 1С:Предприятие 8 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 3.0. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер). Интегрировано в Чек ККМ, Рабочее место кассира (РМК)

26840 руб.

02.11.2024    4813    18    4    

14

Сайты и интернет-магазины 1С:Предприятие 8 1С:Розница 2 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Интеграция сервиса dolyame.ru с 1С:Розница 2.3 для приема платежей в рассрочку. Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер), поддерживается старый РМК, работа через чек ККМ.

24400 руб.

19.12.2023    14032    80    18    

69

Оптовая торговля Розничная торговля Сайты и интернет-магазины Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка для обмена данными с интернет-магазином OpenCart. Позволяет быстро наполнить магазин товарами, затем обновлять цены и добавлять новые товары. Далее можно средствами OpenCart настраивать и дополнять карточки товаров как надо для магазина, при этом связь товаров с 1С не теряется.

5084 руб.

30.03.2018    49899    89    149    

91

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

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

4200 руб.

07.06.2022    23823    57    56    

59
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. baracuda 2 28.04.20 12:18 Сейчас в теме
Спасибо. Познавательно. Я давно хочу сваять интернет магазин на Wordpress. ОДнако останавливает отсутствие в API массового создания товаров bulk_create()
2. osivv 286 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 286 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 Сейчас в теме
(16) спасибо большое)
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 286 02.05.20 11:40 Сейчас в теме
(18)
то есть тереотически лимит можно расширить получается..

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

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

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

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

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

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

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

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

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

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

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

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

Конечно легче, только есть парочка "но".
На мой, сугубо личный, взгляд, работать по IP - моветон. Для этого и придуман DNS. Вы с базой 1С тоже по IP соединяетесь?
Как с безопасностью?
Соединение постоянное? Если да, то как поддерживать постоянно?
Наверняка надо писать процедуру "прослушки" MySQL, если какие-то изменения.
14. Diversus 2340 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 2340 29.04.20 19:50 Сейчас в теме
(7) Открытие доступа к MySQL во вне - это плохо с точки зрения безопасности (даже если соединение на определенный IP).
На крупных проектах такое не подойдет.
21. iliabvf 05.05.20 09:40 Сейчас в теме
(13) Тут по подробнее, почему?
22. FreeArcher 164 07.05.20 04:23 Сейчас в теме
А как насчет другой истории. Не из 1С отправлять данные на сайт, а с сайта забирать данные из 1С посредствам HTTP сервисов? Мне кажется это более гибкое решение.
23. osivv 286 07.05.20 11:12 Сейчас в теме
(22)Возможно и то и другое.
24. reset2 20 26.09.22 18:43 Сейчас в теме
Могу предложить свой готовый вариант для Розницы, код открытый, можно в своих разработках использовать.
https://infostart.ru/public/1545735/
Для отправки сообщения требуется регистрация/авторизация