Skip to content

disa4148/cdek-widget-3.0

Repository files navigation

Интеграция CDEK 3.0 в Next.js | Шаг за шагом

Репозиторий содержит пример реализации виджета доставки CDEK с использованием Next.js.

Столкнувшись с отсутствием официальной документации для интеграции виджета CDEK в React, я разработал собственное решение. Этот гид поможет настроить виджет CDEK в приложении шаг за шагом.

Шаг 1: Получение ключа Яндекс.Карт

Для корректного отображения виджета необходимо получить API-ключ Яндекс.Карт. Без этого ключа карта с пунктами выдачи CDEK не будет отображаться.

  1. Перейдите на страницу Кабинета Разработчика Яндекс.
  2. Нажмите кнопку «Подключить API».
  3. Во всплывающем окне выберите сервис «JavaScript API и HTTP Геокодер».
  4. Сохраните полученный ключ для дальнейшего использования.

⚠️ Важно!
Обязательно задайте параметр HTTP Referrer, равный адресу вашего сайта для ключа.
Подробнее: документации Яндекс.

Шаг 2: Получение тестовых ключей CDEK

Для интеграции с CDEK вам потребуется получить учетные данные (логин и пароль) для доступа к API.

В тестовом режиме можно использовать следующие данные:

Параметр Значение
Account wqGwiQx0gg8mLtiEKsUinjVSICCjtTEP
Secure password RmAmgvSgSl1yirlz9QupbzOJVqhCxcP5

В реальном проекте необходимо получить свои учетные данные в личном кабинете CDEK, чтобы использовать сервис в продакшене.

Шаг 3: Установка скрипта

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

<head>
  <Script src="https://cdn.jsdelivr.net/npm/@cdek-it/widget@3" strategy="beforeInteractive" />
</head> 

Шаг 4: Создание компонента для виджета CDEK

Теперь создадим компонент CdekWidget, который будет отвечать за отображение виджета.

Создайте новый файл CdekWidget.tsx

Полный код компонента CdekWidget.tsx.

Шаг 5: Настройка серверной части

Для работы виджета необходимо разместить серверный файл service.php, который будет взаимодействовать с API CDEK.

Скопируйте файл service.php на ваш сервер так, чтобы он был доступен по прямой ссылке. Пример:

https://example.com/service.php

Полный код компонента service.php

Изначально в файле service.php установлены тестовые ключи (строки 9 и 13). Для использования в продакшене замените их на ваши личные ключи, которые вы получите после заключения договора со CDEK.

⚠️ Примечание:
При работе с тестовыми данными запросы необходимо отправлять на https://api.edu.cdek.ru/v2.
Для боевого режима используйте https://api.cdek.ru/v2. Убедитесь, что вы изменили URL в файле service.php: line42 перед переходом на продакшн, чтобы избежать ошибок в интеграции.

Установка и настройка

1. Склонируйте репозиторий:

git clone https://github.com/disa4148/cdek-widget-3.0.git
cd cdek-widget-3.0

2. Установите зависимости:

pnpm install

3. Создайте файл .env в корне проекта и добавьте API-ключ Яндекс.Карт:

NEXT_PUBLIC_YANDEX_MAPS_API_KEY=ваш_ключ_яндекс_карт

4. Запуск проекта

Запуск клиентской части приложения

pnpm dev

Запуск серверной части (PHP):

php -S localhost:8000

Тестирование и отладка

  • Откройте приложение в браузере по адресу http://localhost:3000 и убедитесь, что виджет отображается корректно.
  • Проверьте соединение с сервером, отправив тестовый запрос на http://localhost:8000/service.php.
  • Если возникают ошибки, проверьте консоль браузера и лог сервера на наличие сообщений об ошибках.

Поддержка и контакты

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

Улучшения

  • Перенос серверной части с PHP на Node.js

Лицензия

Этот репозиторий лицензирован под MIT License. Подробности см. в файле LICENSE.

About

Documentation for integration of CDEK widget 3.0 into next application

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published