
01-25-2013, 02:54 PM
|
 |
Member
|
|
Join Date: May 2012
Posts: 46
|
|
[QUOTE=Eugene Rimmer;42040]Программный импорт продуктов в Эквид (включая и обновляющий импорт, когда новые продукты не создаются, а обновляются поля существующих) сделать всё-таки можно - для этого нужно эмулировать работу формы импорта продуктов из панели управления Эквида, отправляя данные POST-запросом на тот же адрес и в том же формате, что и форма (адрес различается для каждого владельца магазина). Однако здесь есть несколько важных НО:
1. Во-первых это недокументированная возможность Эквида, поведение может измениться со временем и мы не можем гарантировать обратную совместимость. Когда мы реализуем документированный API, позволяющий менять товары внешними запросами, мы будем поддерживать и обратную совместимость этого API.
2. Формат запроса должен в точности соответствовать тому, что отправляет браузер при попытке импорта через панель управления (включая настройки колонок). Ошибка в самом формате запроса заставит сервер вернуть ошибку, если же вы передадите настройки импорта, не соотствествующие содержимому файла, импорт в лучшем случае не пройдет, в худшем испортит поля товаров в этом магазине (например, никто не обрадуется, что вместо описаний у товаров стоит цена).
3. Для авторизации система импорта ожидает в этом запросе также куку с названием 'token' и содержимым вида 'логин:пароль' (используется HTTPS соединение, так что подслушать их не могут). Неавторизованный запрос (без куки или с неправильной кукой) не будет удовлетворен.
4. Даже когда все условия запроса удовлетворены, запрос никак не сигнализирует о состоянии импорта - присланный файл ставится в очередь и импортируется по мере возможности. Ваше приложение не сможет знать, что импорт окончен.
Если вышеописанные сложности не пугают, импорт продуктов вполне возможен. В любом случае, с введением API позволяющего изменять продукты, все эти сложности отпадут.[/QUOTE]
Можно ли поподробней об этой недокументированной возможности корректировки остатков по API? Ждать релиза 13.1 нет времени. Всё, что нужно, это менять доступные остатки.
И да, работает ли сейчас этот API? [url]http://kb.ecwid.com/w/page/25285101/Product%20API#RESTAPIMethodupdateaproductsinceEcwidversion131[/url]
Спасибо за оперативный ответ!
|