Неполная информация о товарах

С вводом в действие новой системы работы платоформы OT, появились возможности получать неполную информацию о товаре, чтобы показать посетителю хоть что-то. Есть несколько вариантов реализации данного механизма, каждый имеет свои особенности учёта платных вызовов.

Полный запрос - это обычный запрос к API.
Неполный запрос - когда мы указываем в API, что нам достаточно любой информации о товаре. Указать это можно в специальном параметре itemParameters любого метода получения товара, например в BatchGetItemFullInfo.

При неполном запросе всегда будет выдаваться идентификатор товара, название, картинка, категория, продавец, и цена. Если разрешена неполная информация, и есть все шесть параметров - то они будут выдаваться точно, а остальное - все, что есть в наличии.

Например, если товар открыли по прямой ссылке, а мы его раньше не получали, то мы знаем только идентификатор и больше ничего. Тогда будет выдаваться ошибка, так как нет обязательных параметров.

Если товар открыли из каталога, то будут все обязательные параметры, так как они уже были показаны в каталоге и мы про них знаем.

Наличие другой информации непредсказуемо.

При запросе неполной информации, если у нас нет ничего кроме идентификатора, то сам запрос будет считаться ошибочным и будет бесплатным. Если при запросе неполной информации, у нас есть идентификатор, картинка, цена и продавец, но так как нет обязательного параметра - категория, то запрос будет считаться ошибочным и будет бесплатным.

Для запроса полной информации:

Если запрашивается полная информация, а у нас ее нет, но при этом есть название, картинка, цена, категория, но, например, нет конфигураций, хотя они должны быть, либо мы не знаем точно есть они или нет, то будет выдано сообщение об ошибке, что товар недоступен. Или в ответе в списке Features будет значение "Incomplete", если в запросе разрешено получение неполных товаров (AllowIncomplete="true"). При этом мы не покажем никаких данных, хотя могли бы. Этот запрос будет бесплатным. При этом мы в приоритетном режиме получим всю информацию, и при следующем запросе в течение 10-30 секунд скорее всего она у нас будет.

Если у нас уже есть полная информация, то запрос с данными будет платным. В этом случае полная информация - это ровно тот же минимальный набор, так как у товара может и не быть фактически других данных.

Важно! У нас есть свой маркер полноты данных. Если в процессе сбора данных мы получили внутри нашей системы сообщение что информация полная, то товар считается содержащим полные данные. Именно этот маркер влияет на то, выдаст запрос полных данных ошибку или успех.

Варианты запроса данных:

  1. Как обычно и ранее, не использовать параметр itemParameters. В этом случае никаких отличий, получаете только полные данные, в остальных случаях ошибка. Можете повторять запросы через некоторое время, платным будет только один запрос, который наконец-то выдал данные.
  2. Всегда использовать itemParameters с AllowIncomplete=true. В этом случае вы получаете ошибку, только если нет хотя бы одного из обязательных параметров, иначе сразу получаете ту информацию, какая есть. Можете повторять запросы через некоторое время, но все кроме ошибочных будут платными.
  3. Сделать первый запрос с AllowIncomplete=true, показать то что получено пользователю, если товар был неполный, повторить запросы без AllowIncomplete=true, обновить товар для пользователя, только когда наконец получено без ошибки. В этом случае, будет один платный запрос, когда товар сразу получен как полный, или два платных запроса (первый и последний), когда товар сперва получен как неполный.

Очевидно, второй вариант не рекомендуется к использованию, лучше 1 или 3. Наша коробка использует 1 в старом дизайне, и 3 в новых дизайнах.