Страница 1 из 11
Форум » API » Правила работы, справочник методов, работа с API-методами истории » Обновление остатков через API
Обновление остатков через API
Selevanov
#1
Вторник, 20.06.2017, 17:55
Группа: Пользователи
Сообщений: 1
Статус: Оффлайн
Добрый день, коллеги Помогите пожалуйста разобраться с обновлением остатков через api C# (https://github.com/retailcrm/api-client-dotnet). Можете показать примеры: 1. выгрузки товаров с соответствием id - артикул (или подскажите, как можно синхронизировать остатки у нескольких поставщиков, при условии, что поставщики предоставляют данные в формате артикул - количество?) 2. обновления остатков на 2х складах одновременно (то есть, как указать, что на одном из складов у нас осталось n товаров, а на другом складе m товаров, одного артикула)?
 
Lola
#2
Вторник, 20.06.2017, 18:23
Группа: Администраторы
Сообщений: 32
Статус: Оффлайн
Добрый день!

Цитата Selevanov ()
1. выгрузки товаров с соответствием id - артикул (или подскажите, как можно синхронизировать остатки у нескольких поставщиков, при условии, что поставщики предоставляют данные в формате артикул - количество?)
В данный момент такая возможность отсутствует, выгрузка осуществляется по externalId или xmlId. После обновления API клиента до последней версии, можно будет использовать метод API /store/products, который поможет сопоставить по артикулу. Релиз новой версии клиента выйдет в июле. При наличии срочной необходимости, рекомендуем адаптировать текущую версию под собственные потребности.

Цитата Selevanov ()
2. обновления остатков на 2х складах одновременно (то есть, как указать, что на одном из складов у нас осталось n товаров, а на другом складе m товаров, одного артикула)?
Требуется обновить на двух складах, или узнать сколько на каком складе?
В документации оба варианта описаны: Получение - (filter[details]), загрузка остатков.
Приводим пример выгрузки остатков (очень приблизительный):
Код
ApiClient api = new ApiClient("https://demo.retailcrm.ru", "T9DMPvuNt7FQJMszHUdG8Fkt6xHsqngH");try
{
    Dictionary(string, object) offers = new Dictionary(string, object);
    //productData заранее подготовлен с помощью данных из внешнего источника (например БД) и содержит пары склад - количество
    //Dictionary<string, float> productData = new Dictionary<string, float>();

    List<object> stores = new List<object>();
    foreach (KeyValuePair<string, int> pair in productData)
    {
        string key = pair.Key;
        int value = pair.Value;
        stores.Add(new Dictionary<string, object> { { "available", value }, { "code", key } });
    }

    Dictionary<string, object> offer = new Dictionary<string, object>
    {
        { "externalId", "externalId_value" },
        { "stores", stores }
    };

    offers.Add(offer);

    ApiResponse response = api.inventoriesUpload(offers);
}
catch (WebException e)
{
    System.Console.WriteLine(e.ToString());
}
 
Форум » API » Правила работы, справочник методов, работа с API-методами истории » Обновление остатков через API
Страница 1 из 11
Поиск: