Запасы
Запасы в API и на octopart.com
Данные о наличии, возвращаемые API, могут отличаться от того, что вы видите на octopart.com. На это есть две причины:
-
Data freshness – API возвращает данные о наличии из регулярно загружаемых каналов данных дистрибьюторов. octopart.com для некоторых дистрибьюторов использует данные в реальном времени, которые могут отражать более недавние изменения складских остатков.
-
Country defaulting – octopart.com определяет страну пользователя по его IP-адресу и показывает предложения, соответствующие региону. API по умолчанию использует US, если не указан параметр
country. Если вы выполняете запрос для региона за пределами США, всегда явно передавайте параметрcountry(и при необходимостиcurrency).
Запрос данных о наличии
Информация о наличии распределена по двум уровням ответа:
-
SupPart– агрегированные поляtotalAvailиavgAvailсуммируют наличие по всем продавцам -
SupOffer– полеinventoryLevelпоказывает количество на складе для конкретного предложения от конкретного продавца
query InventoryCheck {
supSearchMpn(q: "LM358DR", limit: 2) {
results {
part {
mpn
totalAvail
avgAvail
sellers(includeBrokers: false) {
company {
name
}
isAuthorized
offers {
inventoryLevel
updated
}
}
}
}
}
}
Поле updated в SupOffer показывает, когда данные о наличии были в последний раз получены из канала дистрибьютора, что помогает оценить их актуальность.
inventoryLevelСпециальные коды
inventoryLevel обычно возвращает неотрицательное целое число, обозначающее количество единиц на складе. Когда дистрибьютор не может предоставить точное количество, вместо него возвращается отрицательный специальный код:
Код |
Значение |
|
Non-Stocked – у дистрибьютора нет этой позиции |
|
Yes – в наличии, но количество не указано |
|
Unknown – значение количества не было предоставлено либо оно не являлось корректным целым числом |
|
RFQ – обратитесь к дистрибьютору для получения ценового предложения |
totalAvail и avgAvail
totalAvail — это сумма остатков по всем дистрибьюторам; avgAvail — это среднее значение на одного дистрибьютора. Оба поля находятся в SupPart.
Наличие у брокеров влияет на эти значения особым образом: если у обычных дистрибьюторов товара нет, но один или несколько брокеров имеют inventoryLevel > 0 или inventoryLevel == -2, тогда totalAvail устанавливается в 1. Фактическое количество у брокера никогда не добавляется численно — сигнализируется только сам факт наличия у брокера.
Это означает, что значение totalAvail, равное 1, при отсутствии остатков у обычных дистрибьюторов служит сигналом проверить предложения брокеров, а не буквальным количеством единиц.
Чтобы различать дистрибьюторов и брокеров в вашем приложении, используйте поле isBroker в SupPartSeller:
sellers(includeBrokers: true) {
company { name }
isAuthorized
isBroker
offers {
inventoryLevel
}
}