Загрузка вариантов полей

PATCH /api/reload_customer_app возвращает варианты для зарегистрированного поля формы покупателя. Фильтры зависимостей ограничивают список, например регионами выбранной страны.

PATCH/api/reload_customer_app?lang=ru
reload_customer_app

Запрос и ответ

JSON запроса

JSON
{
  "form": "fUserAddress",
  "field_name": "country",
  "filters": {}
}

Ответ

JSON

Отправьте запрос, чтобы увидеть ответ сервера.

Поля запроса

Передавайте form, field_name и filters в корне JSON. Здесь form указывает форму-владельца; этот метод не отправляет саму форму и не сохраняет адрес.

СвойствоНазначение
Обязательное имя зарегистрированной формы, например fUserAddress. Вспомогательный метод, использующий варианты, может иметь другую форму.
Обязательное перезагружаемое поле этой формы. У формы адреса это country и state; у формы подсказок города — region.
Обязательный объект условий для подфильтра этого поля. Если условия не нужны, передайте пустой объект; для регионов передайте ID выбранной страны в filters.country.

Поля ответа

При успешном запросе form_errors равен null.

СвойствоНазначение
page_dataМассив вариантов запрошенного поля. Ниже — поля одного варианта.
page_data[].keyПодпись варианта: текст, число или переводы. Для периода — число дней.
page_data[].valueЗначение выбранного варианта для запроса.
page_data[].localeТолько у страны: переводы названия в printable_name.
page_data[].iso_3166_1_a2Только у страны: ISO-код для отображения флага.
page_data[].suggestionsТолько у страны: true — можно запрашивать подсказки городов и улиц; false — используйте ручной ввод города и улицы.
page_data[].shipping_localeТолько у страны: код локали, используемой для доставки.
page_data[].is_shipping_countryТолько у страны: true, если доставка в эту страну доступна.
page_data[].idID региона.
page_data[].localesНазвания регионов по кодам языков. Для отсутствующих переводов — пустые объекты.
page_data[].countryДвухбуквенный код страны (ISO 3166-1 alpha-2).
page_data[].country_idID страны для filters.country.
page_data[].region_isoСохранённый ISO-код региона. Может быть пустым; ответ сохраняет исходный текст.

Как работает метод

Запросы стран и регионов

Эти запросы загружают варианты для формы адреса покупателя. В примере регионов замените ID страны 1 на value выбранного варианта страны.

Страны

Загрузка включённых стран из fUserAddress.country. Ответ содержит переводы названий, ISO-коды, доступность текстовых подсказок и локаль доставки.

json
{
  "form": "fUserAddress",
  "field_name": "country",
  "filters": {}
}

Регионы страны

Перезагрузка fUserAddress.state с filters.country. В запрос подсказок адреса выбранный value передаётся как region.

json
{
  "form": "fUserAddress",
  "field_name": "state",
  "filters": {
    "country": 1
  }
}

Выбор продавцов

Для выбора продавцов в sellers_get запросите ffSellerAccountViewer.sellers. filters.seller_name сужает поиск по имени, filters.id задаёт точный аккаунт, filters.owner_rating_from — минимальный рейтинг. Ответ содержит до 15 вариантов: value — ID аккаунта, key — имя, seller_raiting — рейтинг. Гость тоже может загрузить варианты; это продавцы, которых показывает этот список.

json
{
  "form": "ffSellerAccountViewer",
  "field_name": "sellers",
  "filters": {}
}

Периоды подписки

Для subscriptions_subscribe используйте fSubscribe.period с ID выбранного тарифа. Необязательный option_must_be_present ограничивает список периодами с ценой выбранной опции. Полученный value — ID цены тарифа, числовой key — дни. Для продления используются fPaidSubsRenewTarriff.period_to_add или .renew_period; для настройки — fPaidSubsChangeRenewPeriod.renew_period с теми же фильтрами.

json
{
  "form": "fSubscribe",
  "field_name": "period",
  "filters": {
    "tariff": 1
  }
}

Для подсказок города используйте form: "fCitySuggestion" и field_name: "region" с тем же filters.country. На связанных страницах подсказок доступны селекторы и просмотр фактических запросов и ответов загрузки вариантов.

Обнаружение, доступ и ошибки

Этот корневой метод отсутствует в page_data.unauth.paths и page_data.auth.paths. Используйте его фиксированный локальный путь с общим транспортом запросов, cookies сессии и обработкой CSRF; не ищите его через API.fromName().

Доступ проверяет запрошенный подфильтр. Показанные источники стран и регионов требуют входа активного покупателя. Методы адресных подсказок также требуют авторизации; их доступность определяется текущими путями в ответе загрузки приложения. Метаданные формы не предоставляют права доступа.

Отсутствующие ключи запроса, незарегистрированные формы и неподдерживаемые поля отклоняются. Проверяйте HTTP-статус и form_errors отдельно: HTTP 200 может содержать общую ошибку в __all__, в том числе ошибку авторизации. Загрузка вариантов не отправляет основной запрос подсказок.