Skip to content
  1. Компоненты
  2. msCDEK
  3. API

API

REST API

Компонент предоставляет REST API через роутер MiniShop3, доступный по базовому маршруту /api/v1/cdek.

Эндпоинты фронтенда

Все эндпоинты защищены TokenMiddleware (требуется токен ms3).

GET /suggestions

Получение подсказок адреса от сервиса DaData.

ПараметрТипОписание
querystringСтрока поиска (обязательно)
countrystringКод или название страны

GET /postal-code

Получение почтового индекса по названию города.

ПараметрТипОписание
citystringНазвание города (обязательно)
countrystringКод или название страны

GET /status

Получение статуса доставки (стоимость, сроки).

ПараметрТипОписание
postal_codestringПочтовый индекс

POST /status

Сохранение данных выбранного ПВЗ в сессии. Принимает JSON-тело запроса с произвольными полями.

GET /points

Получение списка ПВЗ.

ПараметрТипОписание
postal_codestringПочтовый индекс (обязательно)
citystringНазвание города
countrystringНазвание страны

Ответ:

json
{
  "success": true,
  "data": {
    "html": "<select>...</select>",
    "points": [
      {
        "code": "KSD20",
        "name": "Краснодар, ПВЗ",
        "location": {
          "address": "ул. Уральская, 124",
          "latitude": 45.03,
          "longitude": 38.97
        },
        "work_time": "Пн-Пт 09:00-18:00"
      }
    ],
    "postal_code": "350059",
    "coordinates": {
      "latitude": 45.03,
      "longitude": 38.97
    }
  }
}

Эндпоинт менеджера

POST /order/update-point

Обновление выбранного ПВЗ и пересчёт стоимости доставки для существующего заказа. Доступен только для администраторов (проверка isMember('Administrator')).

ПараметрТипОписание
order_idintID заказа (обязательно)
pointstringКод ПВЗ
pointDataobjectПолный объект данных ПВЗ

Ответ:

json
{
  "success": true,
  "data": {
    "point": "KSD20",
    "delivery_cost": 346.5,
    "cost": 12622.5
  }
}

Использование

API используется внутренними модулями компонента. Для кастомных интеграций можно обращаться к эндпоинтам напрямую через fetch:

javascript
const assetsUrl = '/assets/components/minishop3/';
const response = await fetch(`${assetsUrl}api.php?route=/api/v1/cdek/points&postal_code=350059`);
const data = await response.json();