Публикация

подписчиков: 4 Подписаться
0
Avatar

Фильтрация списка Модификаций

Подскажите каким образом можно отфильтровать модификации по id товара? 
Заранее спасибо!

Владимир Гришин

Войдите в службу, чтобы оставить комментарий.

Комментариев: 10

1
Avatar

Здравствуйте.

В описании есть пометка, про возможность фильтрации (Возможна фильтрация списка Модификаций по id товара - параметр productid.). Без примера, возможно, не понятно. Запрос такого вида будет: 
GET https://online.moysklad.ru/api/remap/1.1/entity/variant?filter=productid=00000000-0000-1111-1111-002590000000, где 00000000-0000-1111-1111-002590000000 - это идентификатор товара в JSON API

Про фильтрацию можно почитать в разделе документации

Михаил 1 голос
Действия с комментариями Постоянная ссылка
0
Avatar

Добрый день.

А вот в этом запросе фильтрация по productid не работает

https://online.moysklad.ru/api/remap/1.1/report/stock/all/?product.id=44dde165-bacc-11e6-7a31-d0fd005e6026

Иными словами- как получить остатки по всем модификациям заданного продукта?

Dmitryche 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

В запросе остатков stock/all можно получить данные для отдельных модификаций, используя параметр variant.id (можно указать несколько). Тогда, чтобы получить остатки для всех модификаций товара сначала нужно получить список модификаций, а затем использовать его в запросе остатков.

Другим вариантом является использование параметра search.

В документации
https://online.moysklad.ru/api/remap/1.1/doc/index.html#%D0%BE%D1%82%D1%87%D1%91%D1%82-%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B8-%D0%B2%D1%81%D0%B5-%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B8-get

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

1. А чем, простите, склеивать в запросе несколько variat.id? Пробовал запятую, точку с запятой. Типа вот так, одинvariat.id работает, дваvariat.id не работает.

https://online.moysklad.ru/api/remap/1.1/report/stock/all/?variant.id=36fa9fc7-baeb-11e6-7a69-971100509405;36ff9bce-baeb-11e6-7a69-97110050940b

 

2. Не удалось заставить search работать. И не получится, я подозреваю, так как результат не содержит кода продукта.

https://online.moysklad.ru/api/remap/1.1/report/stock/all/?search=44dde165-bacc-11e6-7a31-d0fd005e6026

Dmitryche 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

1. Параметры соединяются через &

2.При использовании search фильтрация происходит по наименованию товаров и услуг. Наименование модификаций формируется из наименования товара и значений характеристик - так по имени товара можно найти и модификации.

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

1. Спасибо, тут все получилось. Оставлю здесь пример, вдруг кому-то пригодится

https://online.moysklad.ru/api/remap/1.1/report/stock/all/?variant.id=44e10d2e-bacc-11e6-7a31-d0fd005e602c&variant.id=36fa9fc7-baeb-11e6-7a69-971100509405

Следует отметить, что это плохой подход. Так как GET запрос имеет ограничение в 2048 символов. Один variant стоит нам 48 символов. В магазине легко может быть более 50 модификаций товара. Т.е. в GET запрос это все не поместится и работать запрос не будет. Вернее, он будет как-бы работать, т.е. часть модификаций просто не покажет.

2. Вы же сейчас не серьезно? Наименования товаров могут совпадать легко и просто. Плюс я могу придумать разных вариантов, по которым наименование в МС и в магазине может отличаться.

 

ИТОГО. Вопрос, к сожалению остался открытым. Можно как-нибудь гарантированно получить по заданному товару список модификаций с остатками?

Dmitryche 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

В настоящий момент нет явного способа получить остатки всех модификаций для данного товара.

Добавление подобной функциональности будет рассмотрено в рамках следующей версии АПИ.

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
1
Avatar

Прощу прощения, ответил неправильно.

Такая возможность есть.

Включить в выборку отчета Остатки с фильтрацией по товару также остатки по модификациям и сериям этого товара возможно с помощью url параметра includeRelated.
Запрос будет вида https://online.moysklad.ru/api/remap/1.1/report/stock/all?stockMode=all&product.id={product_id}&includeRelated=true, где {product_id} - id товара.

Подробное описание функционала url-параметров опубликовано в документации по ссылке: https://online.moysklad.ru/api/remap/1.1/doc/index.html#отчёт-остатки-остатки-по-складам-get
Обратите внимание, что для открытия описания url параметров необходимо нажать кнопку "Показать"

Dtrufanov 1 голос
Действия с комментариями Постоянная ссылка