MiniApp Recommendations API

Получение персонализированных рекомендаций товаров для MiniApp приложений.

Возвращает список рекомендованных товаров на основе поведения пользователя и ML алгоритмов. При этом отправляет информацию о источнике рекомендаций для аналитики.


POST/web/client/miniapp/offers/recommended/v3/

Получить рекомендации v3 🚧 IN DEVELOPMENT

Актуальная версия API для получения рекомендаций для MiniApp приложений с поддержкой как обычных, так и модерируемых предложений.

Автоматические параметры

API автоматически устанавливает следующие параметры:

  • test_group_value: "mod_offers" (для работы с модерируемыми предложениями)
  • from_app: "MiniApp" (идентификатор канала)
  • Лимит результатов: 30 предложений
  • user_id должен быть валидным UUID
  • Автоматическое извлечение MiniApp buyer ID из ExecutionContext (если доступен)

Params

  • Name
    user_id*
    Type
    string
    Description

    Уникальный идентификатор пользователя в системе AlifShop.

  • Name
    from_layer*
    Type
    string
    Description

    Источник запроса рекомендаций. Возможные значения: main_page, offer_page, cart_page.

  • Name
    offer_ids
    Type
    array[string]
    Description

    Контекстные ID moderated_offers/offers для получения рекомендаций по ним на cart_page | offer_page (опционально). Логика использования:

    • main_page: поле не передавайте
    • cart_page: передается весь массив ID товаров в корзине
    • offer_page: передается только ID текущего просматриваемого товара

    Значение null не используйте.

  • Name
    phone
    Type
    string
    Description

    Номер телефона пользователя.

  • Name
    device_brand
    Type
    string
    Description

    Бренд устройства (например, Samsung, iPhone).

  • Name
    region
    Type
    string
    Description

    Регион пользователя для локализации рекомендаций.

  • Name
    mini_app_user_id
    Type
    string
    Description

    Специальный идентификатор пользователя для MiniApp приложения.

Структура ответа

  • Name
    offer_id
    Type
    integer
    Description

    Идентификатор обычного предложения (если применимо).

  • Name
    moderated_offer_id
    Type
    string
    Description

    UUID модерируемого предложения (если применимо).

  • Name
    name
    Type
    string
    Description

    Название товара.

  • Name
    slug
    Type
    string
    Description

    Слаг товара для URL.

  • Name
    quantity
    Type
    integer
    Description

    Количество доступного товара.

  • Name
    price
    Type
    integer
    Description

    Текущая цена товара в тийинах.

  • Name
    raw_old_price
    Type
    integer
    Description

    Исходная старая цена (может быть null).

  • Name
    old_price
    Type
    integer
    Description

    Валидная старая цена (отображается только если скидка >= 1%).

  • Name
    is_visible
    Type
    boolean
    Description

    Видимость товара.

  • Name
    rating
    Type
    number
    Description

    Рейтинг товара.

  • Name
    discount
    Type
    integer
    Description

    Размер скидки в процентах (отрицательное значение).

  • Name
    image_path
    Type
    string
    Description

    Прямая ссылка на изображение товара.

  • Name
    bnpl_details
    Type
    object
    Description

    Детали BNPL (Buy Now Pay Later) с полями:

    • has_daily_payment (boolean) - Доступность ежедневных платежей
    • prepayment_amount (integer) - Сумма предоплаты
  • Name
    partner
    Type
    object
    Description

    Информация о партнере, продающем товар.

  • Name
    events
    Type
    array
    Description

    Массив событий (акций, скидок) для данного товара. Каждое событие содержит:

    • id (string) - UUID идентификатор события
    • title (string) - Название события на русском языке
    • title_uz (string) - Название события на узбекском языке
    • slug (string) - Слаг события для URL
  • Name
    conditions
    Type
    array
    Description

    Массив упрощенных условий кредитования для MiniApp. Каждое условие содержит:

    • duration (integer) - Срок кредита в месяцах
    • commission (integer) - Комиссия в процентах
  • Name
    condition
    Type
    object
    Description

    Лучшее условие кредитования (выбирается по максимальной длительности).

  • Name
    monthly_loan_repayment
    Type
    integer
    Description

    Размер ежемесячного платежа по кредиту (если доступно).

  • Name
    product_id
    Type
    integer
    Description

    Идентификатор продукта (если доступен).

Request

POST
/web/client/miniapp/offers/recommended/v3/
curl -X POST "https://gw.alifshop.uz/web/client/miniapp/offers/recommended/v3/" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "3144fa31-1af2-4e67-ba7b-210def001db2",
    "from_layer": "main_page",
    "phone": "+998901234567",
    "device_brand": "Samsung",
    "region": "Tashkent",
    "mini_app_user_id": "miniapp_user_12345"
  }'

Response

{
  "offers": [
    {
      "offer_id": null,
      "moderated_offer_id": "fe532866-50e5-4fed-93b8-4ebf68095d30",
      "name": "Набор электроинструментов Ingco COSLI23011, желтый",
      "slug": "nabor-elektroinstrumentov-ingco-cosli23011-zh",
      "quantity": 4,
      "price": 122100000,
      "raw_old_price": null,
      "old_price": null,
      "is_visible": true,
      "rating": 0.0,
      "discount": null,
      "image_path": "https://minio.k8s-dev.alifnasiya.uz/service-shop/moderation/partner-1220/1732169500-48.png",
      "bnpl_details": {
        "has_daily_payment": false,
        "prepayment_amount": null
      },
      "partner": {
        "id": 1220,
        "name": "ikarvon.uz",
        "logo_path": "catalog/partners/1735118794-photo_2024-12-25_14-25-37.jpg",
        "slug": "ikarvon-uz",
        "rating": 4.2,
        "is_recommended": false
      },
      "events": [
        {
          "id": "942477f0-b022-4e1a-8a0e-499ee16d4bdc",
          "title": "Инструменты для строительства",
          "title_uz": "Qurilish uchun asbob-uskunalar",
          "slug": "Qurilish-uchun-asbob-uskunalar-2"
        }
      ],
      "conditions": [
        {
          "duration": 12,
          "commission": 18
        },
        {
          "duration": 6,
          "commission": 12
        }
      ],
      "condition": {
        "duration": 12,
        "commission": 18
      },
      "monthly_loan_repayment": 1100000,
      "product_id": null
    },
    {
      "offer_id": 98765,
      "moderated_offer_id": null,
      "name": "iPhone 15 Pro Max 256GB",
      "slug": "iphone-15-pro-max-256gb",
      "quantity": 10,
      "price": 1800000000,
      "raw_old_price": 1900000000,
      "old_price": 1900000000,
      "is_visible": true,
      "rating": 4.8,
      "discount": -5,
      "image_path": "https://cdn.alifshop.uz/product/lg/iphone-15.jpg",
      "bnpl_details": {
        "has_daily_payment": false,
        "prepayment_amount": 180000000
      },
      "partner": {
        "id": 123,
        "name": "Apple Store",
        "logo_path": "https://cdn.alifshop.uz/partners/apple.jpg",
        "slug": "apple-store",
        "rating": 4.9,
        "is_recommended": true
      },
      "events": [],
      "conditions": [
        {
          "duration": 24,
          "commission": 15
        }
      ],
      "condition": {
        "duration": 24,
        "commission": 15
      },
      "monthly_loan_repayment": 150000000,
      "product_id": 1234
    }
  ],
  "source": "catboost"
}