Скрипт для синхронизации цен в базе данных через API

Надим14 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
12.05.2016

Создаётся база данных последующему типу:

| ID | Цена | Наличие | Количество на складе | ... | ... | ... |

В неё вносятся товары из Walmart, некоторая информация о них: ID,

цена, наличие. С этими параметрами

программа будет работать. Также в базе

будут столбцы, которые будут редактироваться

человеком вручную. Например ID этого

товара в нашем интернет магазине, цена

в нашем магазине после учёта доставки

и наценки, и наименование товара.

Главная и единственная функция программы: обновление информации о цене

и наличии товаров в Walmart по их ID через

Walmart Open API. Работа с АПИ очень проста,

документации одна страница.

В одном запросе к АПИ мы можем указать до 20 товаров, ответ нам придёт

в XML или JSON.

Соответственно, программа должна это учитывать, и делать по одному

запросу на каждые 20 товаров. Если в базе

101 товар, то она должна сделать 6 запросов

(20+20+20+20+20+1)

В полученных ответах содержится полная информация о товарах, нас волнует

только информация о цене и о наличии

каждого товара. Если у каких-то товаров

поменялась инфа, то её надо обновить в

базе, а также обязательно пометить линию

(можно для этого использовать отдельный

столбец), чтобы человек мог выставить

фильтр и среагировать на обновления.

Было-бы хорошо, перед обновлением сохранять текущую версию базы. Что-то

вроде бекапа.

Вкратце суть программы –формирование запросов к API, обработка

ответов XML/JSON, обновление базы исходя

из итогов обработки.

Прочие тонкости:

В запросах указывается ключ к API, его хорошо-бы вывести в отдельный

конфиг, чтобы можно было быстро поменять.

API ограничивает количество запросов до 5 в секунду, во избежание

ошибок желательно ограничить программе их число до 1 в секунду, ибо если она обработает 2000 товаров за секунду, то вряд-ли Walmart ответит больше чем на 100, содержащиеся в первых пяти запросах.

Подробности:

Запрос к АПИ выглядит вот так:

http://api.walmartlabs.com/v1/items?ids=12417832,19336123&apiKey={apiKey}

ids – ID товаров. В один запрос можно поместить до 20 товаров.

ApiKey –Ключ АПИ, генерируется при регистрации.

Как выглядит ответ лучше глянуть здесь: https://developer.walmartlabs.com/docs

Из ответа мы игнорим всё, и находим параметры salePrice, availableOnline и

Stock.

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

Заявки фрилансеров