С вводом в действие новой системы работы платоформы OT, появились возможности получать неполную информацию о товаре, чтобы показать посетителю хоть что-то. Есть несколько вариантов реализации данного механизма, каждый имеет свои особенности учёта платных вызовов.
Полный запрос - это обычный запрос к API.
Неполный запрос - когда мы указываем в API, что нам достаточно любой информации о товаре. Указать это можно в специальном параметре itemParameters любого метода получения товара, например в BatchGetItemFullInfo.
При неполном запросе всегда будет выдаваться идентификатор товара, название и картинка.
Если разрешена неполная информация, и есть все нужные параметра - то они будут выдаваться точно, а остальное - все, что есть в наличии.
Для провайдера JD есть настройка, при включении которой цена товара тоже считается обязательной информацией.
Например, если товар открыли по прямой ссылке, а мы его раньше не получали, то мы знаем только идентификатор и больше ничего. Тогда будет выдаваться ошибка, так как нет обязательных параметров.
Если товар открыли из каталога, то будут все обязательные параметры, так как они уже были показаны в каталоге и мы про них знаем.
Наличие другой информации непредсказуемо.
При запросе неполной информации, если у нас нет ничего кроме идентификатора, то сам запрос будет считаться ошибочным и будет бесплатным. Если при запросе неполной информации, у нас есть идентификатор и название, но нет обязательного параметра — картинка, то запрос будет считаться ошибочным и будет бесплатным.
Для запроса полной информации:
Если запрашивается полная информация, а у нас её нет, но при этом есть все обязательные поля, но, например, нет конфигураций, хотя они должны быть, либо мы не знаем точно есть они или нет, то будет выдано сообщение об ошибке, что товар недоступен. Или в ответе в списке Features будет значение "Incomplete", если в запросе разрешено получение неполных товаров (AllowIncomplete="true"). При этом мы не покажем никаких данных, хотя могли бы. Этот запрос будет бесплатным. При этом мы в приоритетном режиме получим всю информацию, и при следующем запросе в течение 10-30 секунд скорее всего она у нас будет.
Если у нас уже есть полная информация, то запрос с данными будет платным. В этом случае полная информация - это ровно тот же минимальный набор, так как у товара может и не быть фактически других данных.
Важно! У нас есть свой маркер полноты данных. Если в процессе сбора данных мы получили внутри нашей системы сообщение что информация полная, то товар считается содержащим полные данные. Именно этот маркер влияет на то, выдаст запрос полных данных ошибку или успех.
Очевидно, второй вариант не рекомендуется к использованию, лучше 1 или 3. Наша коробка использует 1 в старом дизайне, и 3 в новых дизайнах.