Пересылка данных на внешние сайты (скрипты)

Уровень сложности освоения: Специалист

Независимо от включенной или выключенной опции "Разрешить API взаимодействие", предусматривающей двунаправленный обмен данными, EcommTools может дополнительно пересылать методом POST запросов информацию о заказах и товарах на внешний адрес (скрипт на вашем сервере) для последующей обработки.

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

За разработкой подобных решений обратитесь к сторонним разработчикам или наймите фрилансера. EcommTools не предоставляет услуги по написанию подобных скриптов.

Почему EcommTools не предоставляет готового скрипта для размещения на вашем сайте?
Потому что это в принципе невозможно и мы понятия не имеем, какие функции должен выполнять этот скрипт и что вы планируете делать с получаемыми данными. Именно по этой причине вы должны сами разрабатывать подобные скрипты в точном соответствии со спецификой вашего сайта и товаров, будь это доступ в закрытый раздел, высылка товаров и еще десятки других аспектов, известных только самому продавцу.

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

Технические особенности
1 Пересылка информации от EcommTools является односторонней, поэтому для проверки подписи запроса, в вашем скрипте нужно использовать "Ключ для получения информации от EcommTools.com".

2 Для формирования и проверки подписи запроса используется общепризнанный алгоритм MD5.

3 В отличие от API команд, которые требуется инициировать, описанные здесь уведомления на внешний скрипт
пересылаются автоматически сразу же после выбранного действия, а именно:
- после оформления заказа клиентом;
- после перевода заказа в оплаченный статус администратором магазина;
- после перевода заказа в оплаченный статус автоматическим обработчиком EcommTools (автодоставка);
- после добавления или редактирования товара;

action - тип уведомления, может иметь следующие варианты:
neworderинформация о только что оформленном заказе
paidorderинформация об оплаченном заказе
itemaddинформация о добавлении товара
itemeditинформация о редактировании товара
itemremoveинформация об удалении товара

В зависимости от типа запроса, пересылаются следующие переменные:
orderstatusстатус заказа. 1 - предварительный. 2 - оплаченный.
resend(значение: 0 или 1) - повторная пересылка информации об оплаченном заказе. Ваш скрипт должен проверять значение этой переменной во избежание генерации новых данных (например, ключей для продления лицензии).
userваш аккаунт в EcommTools
hashMD5 подпись текущего запроса
orderidномер заказа
emailемайл покупателя
amountсумма заказа
currencyвалюта
itemsзаказанные товары. формат: "id товара-количество-стоимость на момент оформления;"
paybyметод оплаты
dateдата оплаты
refidRefID партнера
ipIP покупателя
nameимя покупателя
courierпочтовый курьер
destinationстрана
totalweightвес
shippingcostстоимость доставки
totaldiscountvalueобщая сумма скидки
addressадрес доставки
couponкод введенного подарочного сертификата или купона
accessdataлогин и пароль для купленного товара
channelканал продаж
userdata1 ... userdata7Дополнительные поля с информацией клиента (поля создаются в разделе "Настройки" - "Страница заказа"
subscribed(значение: 0 или 1) - человек дал согласие на автоматическую подписку на вашу рассылку. См. функцию "Предлагать подписку на рассылку при оформлении заказа" в разделе "Настройки" - "Основные параметры"


Пример информации по пересылке пар логин-пароль для выбранных товаров:
accessdata=010:user@yahoo.com:u295kx2nad:30;011:jugejki5:u9r0epapxm:60;
разделитель ":" между логином и паролем.
разделитель ";" между разными товарами.
формат: itemid:login:password:period;

в приведенном примере пересылается следующая информация:
Для товара «010» - логин «user@yahoo.com», пароль «u295kx2nad», период действия 30 суток.
Для товара «011» - логин «jugejki5», пароль «u9r0epapxm», период действия 60 суток.

Если информация о периоде не передается (пусто), значит у данного товара нет временных ограничений.

Для проверки подлинности, склейте в своей программе следующие переменные:
$action.$user.$key.INFO
$action - Тип запроса (neworder,paidorder, и т.д.)
$user - Ваше имя пользователя в сервисе ecommtools.com
$key - Ваш "Ключ для получения информации от ecommtools.com"
INFO - Данные в зависимости от типа уведомления.
В уведомлениях neworder/paidorder используйте номер заказа (переменная $orderid).
В уведомлениях itemadd/itemedit/itemremove используется идентификатор товара ($itemid)


Пример:
Строка хеширования для оплаченного заказа:
$action.$user.$key.$orderid

Строка хеширования для предварительного заказа:
$action.$user.$key.$orderid

Готовая строка на Perl для проверки подлинности данных:
my $INFO=$orderid;
my $controlhash=md5_hex($action.$user.$key.$INFO);





Описанные выше данные передаются по умолчанию на указанные вами URL для пересылки.
Однако вы можете использовать свой формат передаваемых данных используя служебные маркеры,
которые впоследствии будут заменены нужной информацией.

Для включения пользовательского формата данных, используйте ссылки с флагом &notifymode=2

Указав в качестве адреса для уведомления URL вида http://site.com/process/
будет использован формат уведомления по умолчанию с пересылкой всех вышеописанных параметров.
Если же вы введете URL вида http://site.com/process/?notifymode=2
то EcommTools не будет высылать стандартный набор данных, а проанализирует ваш адрес для пересылки
и заменит только указанные вами маркеры.

Пример пересылки только номера заказа и стоимости:
http://site.com/process/?notifymode=2&order=%ORDERID%&cost=%TOTALCOST%

т.е вы можете использовать любые названия ключей в строке запроса.

Перечень маркеров автозамены:
%EMAIL%емайл покупателя
%ORDERID%номер заказа
%TOTALCOST%сумма заказа
%CURRENCY%валюта заказа
%ORDERDATE%дата оплаты
%REFID%RefID партнера
%TOTALDISCOUNTVALUE%общая сумма скидки
%CUSTOMERIP%IP покупателя
%CHANNEL%канал продаж
%PAYBY%метод оплаты
%ITEMS%заказанные товары. формат: "id товара-количество-стоимость на момент оформления;"
%NAME%имя покупателя
%COUNTRY%страна
%AREA%область
%CITY%город
%ZIP%почтовый индекс
%ADDRESS%адрес доставки
%PHONE%телефон
%FAX%факс
%COURIER%почтовый курьер
%DESTINATION%статус
%WEIGHT%вес
%SHCOST%стоимость доставки
%USERDATA1% ... %USERDATA7%Дополнительные поля с информацией клиента (поля создаются в разделе "Настройки" - "Страница заказа"

После получения данных и проверки MD5 подписи, ваш скрипт должен передать ответ сервера HTTP 200 OK.



Вернуться к оглавлению руководства пользователя EcommTools