View Single Post
  #19  
Old 01-25-2013, 02:54 PM
Scarabey2001's Avatar
Scarabey2001 Scarabey2001 is offline
Member
 
Join Date: May 2012
Posts: 46
Default

Quote:
Originally Posted by Eugene Rimmer View Post
Программный импорт продуктов в Эквид (включая и обновляющий импорт, когда новые продукты не создаются, а обновляются поля существующих) сделать всё-таки можно - для этого нужно эмулировать работу формы импорта продуктов из панели управления Эквида, отправляя данные POST-запросом на тот же адрес и в том же формате, что и форма (адрес различается для каждого владельца магазина). Однако здесь есть несколько важных НО:

1. Во-первых это недокументированная возможность Эквида, поведение может измениться со временем и мы не можем гарантировать обратную совместимость. Когда мы реализуем документированный API, позволяющий менять товары внешними запросами, мы будем поддерживать и обратную совместимость этого API.

2. Формат запроса должен в точности соответствовать тому, что отправляет браузер при попытке импорта через панель управления (включая настройки колонок). Ошибка в самом формате запроса заставит сервер вернуть ошибку, если же вы передадите настройки импорта, не соотствествующие содержимому файла, импорт в лучшем случае не пройдет, в худшем испортит поля товаров в этом магазине (например, никто не обрадуется, что вместо описаний у товаров стоит цена).

3. Для авторизации система импорта ожидает в этом запросе также куку с названием 'token' и содержимым вида 'логин:пароль' (используется HTTPS соединение, так что подслушать их не могут). Неавторизованный запрос (без куки или с неправильной кукой) не будет удовлетворен.

4. Даже когда все условия запроса удовлетворены, запрос никак не сигнализирует о состоянии импорта - присланный файл ставится в очередь и импортируется по мере возможности. Ваше приложение не сможет знать, что импорт окончен.

Если вышеописанные сложности не пугают, импорт продуктов вполне возможен. В любом случае, с введением API позволяющего изменять продукты, все эти сложности отпадут.
Можно ли поподробней об этой недокументированной возможности корректировки остатков по API? Ждать релиза 13.1 нет времени. Всё, что нужно, это менять доступные остатки.
И да, работает ли сейчас этот API? http://kb.ecwid.com/w/page/25285101/...cwidversion131

Спасибо за оперативный ответ!