⠀⠀⠀⠀Хочу в так сказать онлайне разобраться со своим случаем. Шаги решения буду озвучивать здесь.
⠀⠀⠀⠀Техзадание:
⠀⠀⠀⠀На WOOCOMMERCE есть интернет-магазин STOLOVKA.PRO. С его помощью формируются заказы и заполняются определенные, нестандартные нужные поля. Такие как: Имя клиента, телефон, адрес, подъезд, квартира, время к которому произвести доставку, состав заказа (номенклатура), скидки, наценки.
⠀⠀⠀⠀На точке общепита установлена программа SABY PRESTO. Документация по API по ССЫЛКЕ
⠀⠀⠀⠀Cуть в том, что SABY PRESTO использует сервисную авторизацию: сначала происходит запрос токена доступа в котором нужно указать свой идентификатор и защитный ключ и сервисный ключ. После этого в ответе получается токен доступа. После этого данный токен используется при каждом запросе.
⠀⠀⠀⠀Данный протокол называется OAuth 2.0
⠀⠀⠀⠀Структура запроса понятна. Даже написать все это можно. Но непонятна схема (система) или на базе чего должен быть сделан первоначальных обмен ключами и получения токена. Я сначала думал, что необходим некий дополнительный программный шлюз, на который необходимо завязать эндопоинты обоих приложений и там сформировать что-то вроде логического буфера, через который потом будет идти весь обмен.
⠀⠀⠀⠀Либо непосредственно на стороне WOOCOMMERCE установить плагин, который сможет выполнять данные функции.
⠀⠀⠀⠀Я пробовал устанавливать на сервер что то вроде шлюза, но пока не разобрался - не хватает знаний. Так же на стороне сайта сейчас стоит плагин WPGetAPI
ИНТЕГРАЦИЯ WOOCOMMERCE И SABY PRESTO (рабочий вариант)
Re: НЕОБХОДИМА ПОМОЩЬ С API
Ну что....
Сервисная авторизация на стороне ИМ магазина прошла. Все было использовано через сервисную авторизацию.
Открываем мануал к SABY PRESTO и смотрим как получить токен доступа. Копируем скрипт "функция с URL" и подставляем свои значения, полученные из SABY. И втыкаем в нужные места. В нашем случае под циферку 2 (рис.1). Остальное и так понятно.
В аддоне к плагину WPGetAPI на стороне Интернет Магазина есть функция авторизации OAuth 2.0. Выглядит это следующим образом:
Запускаем тест и получаем:
Это обязательный параметр, без которого API-команды не будут обработаны.
Иными словами, теперь можно делать запрос в шапку которого необходимо вместо "token" воткнуть "wpgetapi_oauth_token" и полученный токен авторизации будет подтягиваться в это поле самостоятельно.
Теперь пробую делать тестовый запрос. Первоначальная задача в том, чтобы сделать заказ на сайте и в SABY должен прилететь заказ на доставку с хотя-бы указанным номером телефона в заказе и именем.
Читаю дальше мануал....
Сервисная авторизация на стороне ИМ магазина прошла. Все было использовано через сервисную авторизацию.
Открываем мануал к SABY PRESTO и смотрим как получить токен доступа. Копируем скрипт "функция с URL" и подставляем свои значения, полученные из SABY. И втыкаем в нужные места. В нашем случае под циферку 2 (рис.1). Остальное и так понятно.
В аддоне к плагину WPGetAPI на стороне Интернет Магазина есть функция авторизации OAuth 2.0. Выглядит это следующим образом:
Запускаем тест и получаем:
Перевод:Successfully authorized! You can now make calls to your API. The keyword 'wpgetapi_oauth_token' should be used (without quotes) where you need to add your token & the plugin will automatically replace this keyword with your actual token.
Из мануала: Чтобы выполнять запросы к API, необходимо передавать токен доступа в заголовке каждого запроса:Авторизация прошла успешно! Теперь вы можете обращаться к своему API. Ключевое слово "wpgetapi_oauth_token" должно быть использовано (без кавычек) там, где вам нужно добавить свой токен, и плагин автоматически заменит это ключевое слово на ваш реальный токен.
Код: Выделить всё
X-SBISAccessToken: <token>Иными словами, теперь можно делать запрос в шапку которого необходимо вместо "token" воткнуть "wpgetapi_oauth_token" и полученный токен авторизации будет подтягиваться в это поле самостоятельно.
Теперь пробую делать тестовый запрос. Первоначальная задача в том, чтобы сделать заказ на сайте и в SABY должен прилететь заказ на доставку с хотя-бы указанным номером телефона в заказе и именем.
Читаю дальше мануал....
Re: НЕОБХОДИМА ПОМОЩЬ С API
Прошло некоторое время. Был очень занят, но понимая, что заказов через интернет-магазин становится все больше и больше, то оператор становится очень значимой фигурой в плане зависимости от нее: заболела, не вышла на работу, ошибки в оформлении заказов, не там галочку поставила, не позвонила тому-то или тому. Ну и физически уперлись в то, что на оформление одной заявки необходимо время а их много + корректировка. Поэтому пришлось поторопиться и наконец-то был получен результат. Результат это API запрос - лист сборки (см. рис.1). Соответственно заказ подвешен в saby presto.
Повторюсь, что это тестовый заказ и до полноценной интеграции нужно еще пару дней новогодних праздников 2026г. Полноценная интеграция - это когда в запрос подтягиваются требуемые поля из заказа на сайте.
Используемые инструменты для написания правильного запроса:
- Мануал по САБИ
- POSTMAN
- Сервисный доступ
- Плагин API для woocommerce
Еще картинка заказа, но уже в самой системе: Долго расписывать не буду, но согласно мануалу запрос примерно таой:
Фактически он отличается от того, что вывше. И на то, чтобы сформировать правильный запрос, было убито очень много времени. Как говорится теперь, когда знаешь, все просто. )
Используемые инструменты для написания правильного запроса:
- Мануал по САБИ
- POSTMAN
- Сервисный доступ
- Плагин API для woocommerce
Еще картинка заказа, но уже в самой системе: Долго расписывать не буду, но согласно мануалу запрос примерно таой:
Код: Выделить всё
import requests
import json
url = "https://api.sbis.ru/retail/order/create?"
payload = json.dumps(
{
"product": "delivery",
"pointId": 15727956,
"comment": "заказ",
"customer": {
"externalId": null,
"name": "Иван",
"lastname": "Иванов",
"email": null,
"phone": "89051224747",
},
"datetime": "2025-10-26 13:25:00",
"nomenclatures": [
{
"id": 10,
"priceListId": 4,
"count": 5,
"cost": null,
"name": "Блин с ветчиной и сыром",
"modifiers": [
{
"cost": 50.0,
"hierarchicalId": 12591,
"hierarchicalParent": 10002132,
"id": 2195,
"count": 1,
"isParent": null,
"name": "Крендель с корицей",
}
],
}
],
"delivery": {
"addressJSON": {
"Address": "Тверь, Центральный район, улица Дарвина, 6",
"AptNum": "9999",
"DoorCode": "b9999",
"Entrance": "999",
"Floor": "9",
"Locality": "Тверь",
"Coordinates": {"Lat": 56.84929206118923, "Lon": 35.89677546993761},
},
},
"persons": null,
"isPickup": false,
"baseURL": "https://online.sbis.ru",
"successURL": "https://google.com?param1=adsads¶m2=sdf",
"errorURL": "ya.ru",
},
)
headers = {
"Content-Type": "application/json",
"X-SBISAccessToken": "JVdyQEFGalZ3RX5GbGxmMCNia09lUlsjZUdoOVJUfmx2dTt4Vmopdy04ZUZBZmxHKG9sYiwpQHN5Yi1JW3ZVUTIwMjQtMTItMTggMTc6MjQ6NTMuNjc4Nzg3",
}
response = requests.post(url, headers=headers, data=payload)
print(response.text)Re: ИНТЕГРАЦИЯ WOOCOMMERCE И SABY PRESTO (рабочий вариант)
Прошли сутки с момента кая я начал работать над кодом интеграции Woocommerce и sabi presto. И могу с уверенностью сказать, что я очень далеко продвинулся. Все это время с 31.12 по 01.01.2026 я взаимодействовал с ИИ и мы вместе сделали невозможное!
Был создан плагин для woocommerce более 520 строк кода. Что умеет плагин:
- Производить сервисную авторизацию и записывать на 1 час в кеш полученный от сервера токен
- Подставлять токен в необходимые запросы
- Отправлять необходимые данные в САБИ ПРЕСТО и формировать заказ
Так же организована логика по отправке или не отправке тех или иных товаров в саби престо, логика выведения комментариев, логика работы с купонами бесплатной доставки.
Фактически у меня раньше оператор все эти заказы перепечатывала вручную и допускались ошибки. Теперь, после тестов, я удивлен надежности всего этого.
Прямо сейчас производится работа по обмену статусами заказов.
Могу уверенно сказать, что только сейчас я получил колоссальный опыт по работе с API, который, как уже понимаю я реализую в написании своего приложения для андроида. Ибо все очевидное стало явным.
С Новым Годом, уважаемые участники!
Был создан плагин для woocommerce более 520 строк кода. Что умеет плагин:
- Производить сервисную авторизацию и записывать на 1 час в кеш полученный от сервера токен
- Подставлять токен в необходимые запросы
- Отправлять необходимые данные в САБИ ПРЕСТО и формировать заказ
Так же организована логика по отправке или не отправке тех или иных товаров в саби престо, логика выведения комментариев, логика работы с купонами бесплатной доставки.
Фактически у меня раньше оператор все эти заказы перепечатывала вручную и допускались ошибки. Теперь, после тестов, я удивлен надежности всего этого.
Прямо сейчас производится работа по обмену статусами заказов.
Могу уверенно сказать, что только сейчас я получил колоссальный опыт по работе с API, который, как уже понимаю я реализую в написании своего приложения для андроида. Ибо все очевидное стало явным.
С Новым Годом, уважаемые участники!