Загрузка вариантов полей
PATCH /api/reload_customer_app возвращает варианты для зарегистрированного поля формы покупателя. Фильтры зависимостей ограничивают список, например регионами выбранной страны.
/api/reload_customer_app?lang=rureload_customer_appЗапрос и ответ
Поля ответа
При успешном запросе 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[].id | ID региона. |
page_data[].locales | Названия регионов по кодам языков. Для отсутствующих переводов — пустые объекты. |
page_data[].country | Двухбуквенный код страны (ISO 3166-1 alpha-2). |
page_data[].country_id | ID страны для filters.country. |
page_data[].region_iso | Сохранённый ISO-код региона. Может быть пустым; ответ сохраняет исходный текст. |
Как работает метод
Запросы стран и регионов
Эти запросы загружают варианты для формы адреса покупателя. В примере регионов замените ID страны 1 на value выбранного варианта страны.
Страны
Загрузка включённых стран из fUserAddress.country. Ответ содержит переводы названий, ISO-коды, доступность текстовых подсказок и локаль доставки.
{
"form": "fUserAddress",
"field_name": "country",
"filters": {}
}Регионы страны
Перезагрузка fUserAddress.state с filters.country. В запрос подсказок адреса выбранный value передаётся как region.
{
"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 — рейтинг. Гость тоже может загрузить варианты; это продавцы, которых показывает этот список.
{
"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 с теми же фильтрами.
{
"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__, в том числе ошибку авторизации. Загрузка вариантов не отправляет основной запрос подсказок.