Вы не авторизованы.
Есть задача - автоматизировать актуализацию цен и остатков в интернет-магазине на движке Webasyst 6.
Обновление должно проходить автоматически, соответственно импорт через CSV не подходит. Появилась идея сделать все через API.
Данные будут браться из бухпрограммы (не 1С!). В программе встроенный язык VBScript. Есть опыт работы через API с службами доставки и т.д.
Начинаю читать документацию по API Webasyst, и прозреваю. Авторизоваться запросом к API не получится, т.к. надо явно разрешить доступ на странице api.php
Или я чего-то не понимаю? Должен выдаваться токен и я так понимаю, что у него есть время жизни. А как же мне реализовать обмен данными по расписанию, если я упрусь в эту авторизацию?
Или можно токен получить один раз и потом постоянно его использовать?
Отредактировано dlpv (2015-05-05 11:22)
Неактивен
Скажу, что у Webasyst нет кучи функций требующих для создания даже приложения для ios/android, пришлось все писать программисту самому. Приложение уже готово, скоро покажу.
Неактивен
с горем пополам авторизовался в ручном режиме и попробовал создать товар
в итоге ответ "Method GET not allowed"
при создании проверяются права пользователя, а как мне при авторизации указать именно того пользователя, у которого есть права на создание товаров?
при этом метод чтения свойств товара работает нормально
Отредактировано dlpv (2015-05-05 12:01)
Неактивен
Подскажите, нужны простые функции:
создать товар
обновить товар
удалить товар
и то же самое с категориями.
Неужели через API это нереально сделать?
что неправильно в этом запросе?
http://mysite.com/api.php/shop.product.add?type_id=19&name=test&status=0&access_token=2c4ff17e8b29d81e733q73566f1adac8&format=xml ответ такой <response> <error>invalid_request</error> <error_description>Method GET not allowed</error_description> </response>
Отредактировано dlpv (2015-05-05 16:35)
Неактивен
мда, учиться и еще раз учиться
я по сути передавал GET запрос
буду дальше ковырять
Неактивен
кто может дать пример формирования POST запроса для метода shop.product.add?
Что неправильно в моем коде?
Option Explicit Sub test Dim objXMLHttp, psend, Return, WshShell Set WshShell = CreateObject("WScript.Shell") 'Запускаем ping и ожидаем завершения его работы Return = WshShell.Run("ping mysite.com -n 1", 0, True) If Return=1 Then MsgBox "Проверьте, работает ли сайт mysite.com!" Else psend="name=11111&type_id=19&status=0" Set objXMLHttp = CreateObject("MSXML2.XMLHTTP") objXMLHttp.open "POST", "http://mysite.com/api.php/shop.product.add?access_token=2c4ff17e8b29d81e733a73566f1adac8&format=xml", False objXMLHttp.send psend MsgBox objXMLHttp.responseText End If Set objXMLHttp =Nothing End Sub
ответ приходит такой
"<?xml version="1.0" encoding="UTF-8"?> <response> <error>invalid_param</error> <error_description>Required parameter is missing: name</error_description> </response> "
но я же передал параметр Name, что он от меня хочет?
Отредактировано dlpv (2015-05-05 16:36)
Неактивен
все заработало, нужно было указать так
objXMLHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
теперь непонятно, почему при создании товара не проставляются количество и цена? Тип валюты указываю.
ПОЧЕМУ при передаче параметров currency=UAH&count=1&price=2, валюта прописывается, а цена и количество нет?
Зато методом shop.product.update все прекрасно прописывается! Мда, чудеса. Слов нет. Ну хоть через пень-колоду работает и ладно.
Отредактировано dlpv (2015-05-05 18:08)
Неактивен
цена/валюта/количество передаются в skus:
&skus[0][currency]=UAH&skus[0][price]=2&skus[0][stock][0]=200
Неактивен
спасибо за подсказку, все заработало.
НО почему этого всего нет в документации? Откуда брать информацию, или только путем научного тыка?
Неактивен