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

Передавать данные заказа в сторонний сервис по API


Recommended Posts

Задача - реализовать передачу данных каждого нового заказа (данные клиента, товары в корзине, стоимость товаров и итоговая стоимость) сюда по API сервиса. Opencart 3.0.2, оформление заказа работает на Симпле.

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


20 минут назад, Toxic сказал:

Задача - реализовать передачу данных каждого нового заказа (данные клиента, товары в корзине, стоимость товаров и итоговая стоимость) сюда по API сервиса. Opencart 3.0.2, оформление заказа работает на Симпле.

Написал в личку.

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

3 часа назад, Toxic сказал:

Задача - реализовать передачу данных каждого нового заказа (данные клиента, товары в корзине, стоимость товаров и итоговая стоимость) сюда по API сервиса. Opencart 3.0.2, оформление заказа работает на Симпле.

Доброе,еще актуально ?

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

15 часов назад, Toxic сказал:

Приветствую! Да, актуально. Цена вопроса?

Вы бы написали вообще примерно на какую сумму рассчитываете

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

  • 1 month later...

Всем добрый день !

Требуется сделать отправку данных о заказе поставщику по api, подскажите, пожалуйста, есть ли для этого подходящие модули ?

Если модулей нет, то какие есть ещё решения ?

Отправка в виде

http://api.postavshik.ru/ds_order.php?ApiKey=****&TestMode=*...&order=11111111-1-2...

где TestMode - Может принимать значения 0 или 1

order - обязательный параметр, он содержит группы из трех параметров вида: <aID>-<qty>-<ds_price>. Каждая группа отделяется друг от друга запятой.

aID - это идентификатор товарного предложения.

qty - количество товара, которое нужно добавить в заказ.
ds_price - розничная цена этой позиции для конечного покупателя.

ExtOrderID - внутренний номер заказа в интернет-магазине. Должно быть уникальным значением в рамках интернет-магазина

ExtOrderPaid - статус оплаты заказа, должен быть 1

и т.д.

Змінено користувачем Bykov_Sergey
Надіслати
Поділитися на інших сайтах


11 минут назад, Bykov_Sergey сказал:

Требуется сделать отправку данных о заказе поставщику по api

Не совсем понятна задача (точнее есть уточняющие вопросы)
1. Нужно ли принимать ответ поставщика? Если нужно, то в каком формате? Если нет - как Вы узнаете, что реквест отправлен?
2. Почему ExtOrderPaid - 1? Т.е. отправку данных нужно производить только после оплаты? Как быть, если оплата при получении?
От ответа на второй вопрос зависит то, в какое именно место нужно интегрировать отправку запроса.

Ибо если задача "тыкнуться" к поставщику при оформлении заказа (мол поступил такой-то заказ), то правильней будет вкорячить в mail/order чтобы реквест отрабатывал одновременно с уведомлениями.
Если же задача только после оплаты, то привязываться нужно к статусу заказа (либо "завершен", либо "оплачен" - ну или Ваши аналоги этих статусов)

Ну и, уверен, по мере ответов на эти вопросы могут возникнуть новые...
 

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

5 часов назад, nogocuHoBuk сказал:

Не совсем понятна задача (точнее есть уточняющие вопросы)
1. Нужно ли принимать ответ поставщика? Если нужно, то в каком формате? Если нет - как Вы узнаете, что реквест отправлен?
2. Почему ExtOrderPaid - 1? Т.е. отправку данных нужно производить только после оплаты? Как быть, если оплата при получении?
От ответа на второй вопрос зависит то, в какое именно место нужно интегрировать отправку запроса.

Ибо если задача "тыкнуться" к поставщику при оформлении заказа (мол поступил такой-то заказ), то правильней будет вкорячить в mail/order чтобы реквест отрабатывал одновременно с уведомлениями.
Если же задача только после оплаты, то привязываться нужно к статусу заказа (либо "завершен", либо "оплачен" - ну или Ваши аналоги этих статусов)

Ну и, уверен, по мере ответов на эти вопросы могут возникнуть новые...
 

Благодарю за интерес к моему вопросу !

 

1. ответа нет, это уже будем проверять в лк поставщика, там будет инфа о том, что заказ отправлен

2. отправка только после оплаты.

Насчёт привязки к статусу, этот вопрос проработали) 

После оплаты статус заказа автоматически меняется на "В обработке"

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


14 минут назад, Bykov_Sergey сказал:

После оплаты статус заказа автоматически меняется на "В обработке"

Этот момент так-же требует разъяснения.
Всё ж зависит от способов оплаты. Если у Вас подключен платежный модуль, который общается с платежной системой (например тинькофф) то схема следующая:
1. Покупатель оформляет заказ.
2. В БД создается заказ со статусом "ожидание", а покупателя перекидывает на страницу оплаты.
3. Если оплата произведена, то платиежная система отправит на Ваш сайт коллбек с информацией о получении оплаты
4. Сайт, по колбеку, находит заказ и переводит его в статус "В обработке". 
В этом случае функцию формирования массива для отправки можно встроить в АПИ для приема колбека от платежной системы (образно)

Но если у Вас прием оплаты, например, на счет/карту, то перевод статуса заказа происходит не автоматически, а оператором, который отслеживает поступившие средства, и по данным платежа переводит тот или иной заказ в статус "В обработке"
В этом случае формирования массива для отправки нужно встраивать в админку в order_edit и отслуживать новый статус....

 

 

20 минут назад, Bykov_Sergey сказал:

1. ответа нет, это уже будем проверять в лк поставщика, там будет инфа о том, что заказ отправлен

Это уже не совсем автоматизация. В таком случае можно просто кнопку добавить в форму заказа типа такой:
 

Спойлер

image.thumb.png.a4ac8c1bcffe1162a0d3e988649162c0.png


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

Полная инфа, как и документация АПИ, как и варианты оплат и прочеепрочее есть только у Вас.

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

1 час назад, nogocuHoBuk сказал:

Всё ж зависит от способов оплаты. Если у Вас подключен платежный модуль

сейчас подключен платёжный модуль юкасса

 

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

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


3 минуты назад, Bykov_Sergey сказал:

просто нам не приходит от него ответ о том, что он получил информацию

Информация о том, получил поставщик инфу или нет, как оказалось, содержится в самом ответе
 

Спойлер

image.thumb.png.7c93344d654c698b1a083f09d45900a6.png

т.е. ResultStatus - статус получения заказа (таблицу ответов смотрите в документации API поставщика)
Точно знаем, что ResultStatus = 2 - Не корректный ApiKey :)
Т.е. Вам нужно в заказе создать флаг отправки, который в случае успешной отправки заказа поставщику (думаю что 
ResultStatus = 1, но это предположения) перевести этот флаг в "отправлено"
И можно смело вешать задачу на крон с отбором заказов по фильтру - (оплачен, не отправлен). 
Раз в 10-20-30 минут. В зависимости от количества заказов.
Думаю, это самая оптимальная реализация.

Хотя их, действительно, много. Я вижу как минимум 3.

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

@toporchillo Спасибо. В качестве решения был создан контроллер для работы из командной строки (для запуска из крона) . В oc_order создан флаг "sent" со значением по умолчанию 0 (чтобы поле заполнялось без явного его указания). В созданном контроллере запрос к БД со статусами оплачен, но не отправлен (sent = 0). Ну и в цикле отправка запросов к АПИ поставщика. Ответ вида XML сразу читается, и если сервер ответил - "угумс, принял" то меняем флаг заказа на 1.
Без дописывания "всякого разного своего" :)

По уму б ещё после получения ошибки от апи поставщика можно б было дописать посредством addOrderHistory в заказ комментарий с текстом ошибки, но там пока "проблема" на стороне поставщика. Там все запросы с ошибкой приходят, потому , чтобы не "спамить" в заказе это пока не реализовано :)

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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