Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

проблема с получение заказа через API


Recommended Posts

Нужна помощь в доработки функционала передача заказа из Opencart в гугл таблицы через api

 сделал такой скрипт 

function authorizeAndFetchOrders() {

  const username = 'api'; // Имя пользователя

  const apiKey = 'w6IpMcLOQydrbsiL4T6l0CZvvPQr2LNcrDY1QiQQmMqrOfNLG4PCYd0IR5dQmslETfdElIl6K3LSIUMQ18YOowshz7izHrUz06KqJnHBYDatfyN3vvsKHvGcKXoljqvshldn0wKDSVP5rOzbnnfzCCscsmWdgdaSEFkAZ0hDPzZJo3Lc45MWSGzw8Wd4Njll0V3O3xcWUDymjYKSmOMiWoEVDUvhkaVxfkGUzLy54PLlTl58vMSFWrOvmqeqJlo4'; // Ваш API ключ

  const apiUrl = 'https://shopmag.pp.ua/' + 'index.php?route=api/';

  const loginUrl = apiUrl + 'account/login&language=en-gb&store_id=0';

  const requestData = { 'username': username, 'key': apiKey };

  const options = {'method': 'post', 'contentType': 'application/x-www-form-urlencoded', 'payload': requestData, 'muteHttpExceptions': true};

  const loginResponse = UrlFetchApp.fetch(loginUrl, options);

  const loginStatus = loginResponse.getResponseCode();

  if (loginStatus === 200) {

    const loginData = JSON.parse(loginResponse.getContentText());

     Logger.log(JSON.stringify(loginData, null, 2)); // полный ответ в логи, для просмотра раскоментить

    if (loginData.api_token) {

      const sessionId = loginData.api_token; // Токен для сессии

      // URL для получения заказов

      const ordersUrl = apiUrl + 'sale/order.load&language=en-gb&store_id=0&order_id=1';

      // Настройки для запроса получения заказов

   const ordersOptions = { method: 'post', contentType: 'application/json', headers: { 'Cookie': 'OCSESSID=' + sessionId }, muteHttpExceptions: true };

      // Выполнение запроса получения заказов

      const ordersResponse = UrlFetchApp.fetch(ordersUrl, ordersOptions);

      const ordersStatus = ordersResponse.getResponseCode();

      if (ordersStatus === 200) {

        const ordersData = JSON.parse(ordersResponse.getContentText());

        Logger.log(JSON.stringify(ordersData, null, 2)); // полный ответ в логи, для просмотра раскоментить

        Logger.log('Заказы:', ordersData); // Выводим заказы в лог

      } else {

        Logger.log('Ошибка при получении заказов:', ordersResponse.getContentText());

      }

    } else {

      Logger.log('Не удалось получить API токен:', loginData);

    }

  } else {

    Logger.log('Ошибка авторизации:', loginResponse.getContentText());

  }

}

 

 

получаю такие ответы 

14:15:27Информация{  "success": "Сеанс API успешно запущен!",  "api_token": "727d4ef9a7ab1877725f3b57ed"}
14:15:28Информация{  "success": "Заказ успешно изменен!"}
14:15:28ИнформацияЗаказы: 

 

пробовал менять все вариации ссылки sale/order.info, sale/orders и тд, но выдает ошибку 

Информация

Ошибка при получении заказов:  и пустой ответ.

 

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

 

Для теста сделал 2 заказа 

если запрос 

 const ordersUrl = apiUrl + 'sale/order.load&language=en-gb&store_id=0&order_id=1';

 const ordersUrl = apiUrl + 'sale/order.load&language=en-gb&store_id=0&order_id=2';

то ответ Информация{  "success": "Заказ успешно изменен!"}

если запрос с номером заказа которого нет 

const ordersUrl = apiUrl + 'sale/order.load&language=en-gb&store_id=0&order_id=3';

то ответ 

Информация

{  "error": "Внимание: Заказ не найден!"}

значит с авторизацией и сесией все норм.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.