Настройка commercetools Project и API — пошаговое руководство

После создания Project в commercetools многие сталкиваются с неожиданными ошибками: цены отображаются в неправильной валюте, переводы отсутствуют, а корзина не реагирует на смену региона. Причина — неверная конфигурация на старте. Исправлять это — задача на неделю, ведь Project живёт с фиксированным

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка commercetools Project и API — пошаговое руководство
Средний
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1422
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1288
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    984
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1250
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    988
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1001

После создания Project в commercetools многие сталкиваются с неожиданными ошибками: цены отображаются в неправильной валюте, переводы отсутствуют, а корзина не реагирует на смену региона. Причина — неверная конфигурация на старте. Исправлять это — задача на неделю, ведь Project живёт с фиксированным регионом и базовыми настройками. Например, недавний кейс: клиент из РФ обнаружил, что вместо долларов показываются евро. Оказалось, не был создан канал для российского рынка. Исправление заняло 3 дня через массовое обновление цен. Такая ситуация типична — 70% проблем с ценообразованием связаны с неверной начальной конфигурацией каналов. Наши инженеры с пятилетним опытом работы с commercetools настраивают Projects под ключ, гарантируя корректную архитектуру.

Мы уже реализовали более 30 проектов на коммерческих и продуктовых витринах. Каждая настройка включает документацию, скрипты миграции и обучение команды. Ошибки на этапе базовой конфигурации оборачиваются сотнями человеко-часов позже — их проще предотвратить. Получите консультацию по архитектуре вашего проекта.

Выбор региона и ограничения

commercetools работает на GCP и AWS в нескольких регионах. Задержка между регионами может достигать 200 мс, что критично для API-запросов на витрине. Ошибка в выборе региона может привести к дополнительным затратам на миграцию до $900–1.3k.

Регион Хост API Хост Auth
Europe (GCP) api.europe-west1.gcp.commercetools.com auth.europe-west1.gcp.commercetools.com
US East (GCP) api.us-central1.gcp.commercetools.com auth.us-central1.gcp.commercetools.com
Australia api.australia-southeast1.gcp.commercetools.com auth.australia-southeast1.gcp.commercetools.com
Europe (AWS) api.eu-west-1.aws.commercetools.com auth.eu-west-1.aws.commercetools.com

Для СНГ-рынка выбирайте europe-west1.gcp. Регион фиксируется при создании Project и не меняется. Ошибка на этом этапе сделает невозможным перенос данных в другой регион без полной репликации. Подробнее см. commercetools documentation.

Начальная конфигурация через Merchant Center

После создания Project в mc.commercetools.com настраиваем базовые параметры. Settings → International:

  • Languages: ru, en (первый — дефолтный)
  • Currencies: USD, USD, EUR
  • Countries: RU, BY, KZ

Эти настройки определяют допустимые значения для цен, переводов и доставки во всём Project. Если не указать язык по умолчанию, некоторые запросы будут возвращать пустые строки вместо переводов.

Как настроить каналы и точки продаж?

Channel — абстракция для ценообразования и инвентаря. Store — точка продажи с фильтрацией каталога. Использование отдельного Channel для каждого магазина снижает риск пересечения цен в разы — мы проверяли это на практике.

// Создать Channel и Store const channel = await apiRoot.channels().post({ body: { key: "storefront-ru", roles: ["ProductDistribution", "InventorySupply"], name: { ru: "Сайт Россия", en: "Website Russia" }, defaultLocale: "ru", defaultCurrency: "USD", address: { country: "RU" }, }, }).execute(); const store = await apiRoot.stores().post({ body: { key: "web-ru", name: { ru: "Веб-магазин Россия" }, countries: [{ code: "RU" }], languages: ["ru"], distributionChannels: [{ typeId: "channel", id: channel.body.id }], supplyChannels: [{ typeId: "channel", id: channel.body.id }], }, }).execute(); 

Если нужно несколько сайтов (RU/BY/KZ), создаём отдельный Channel и Store для каждого. Так цены и остатки не перепутаются между регионами.

Как настроить API-клиенты с минимальными правами?

Каждый сервис получает отдельного API Client с минимальными необходимыми правами. Это основа безопасности. Рекомендуемые scopes для каждого клиента:

Client Scopes
storefront-anonymous view_products, view_categories, manage_my_carts, manage_my_orders
storefront-customer + manage_my_profile, manage_my_payments
backend-import manage_products, manage_orders, manage_customers
terraform manage_project (только для инфраструктуры)

Клиент для сторфронта (anonymous):

const anonymousAuthMiddleware = createAuthMiddlewareForAnonymousSessionFlow({ host: "https://auth.europe-west1.gcp.commercetools.com", projectKey: process.env.CTP_PROJECT_KEY!, credentials: { clientId: process.env.CTP_STOREFRONT_CLIENT_ID!, clientSecret: process.env.CTP_STOREFRONT_CLIENT_SECRET!, }, scopes: [ `view_products:${process.env.CTP_PROJECT_KEY}`, `manage_my_carts:${process.env.CTP_PROJECT_KEY}`, `manage_my_orders:${process.env.CTP_PROJECT_KEY}`, ], }); 

Для авторизованных пользователей используется аналогичный клиент, но с дополнительными правами manage_my_profile и manage_my_payments.

Почему стоит использовать Terraform для конфигурации?

Конфигурация Project в Git — хорошая практика для воспроизводимых окружений. Terraform снижает количество ошибок конфигурации в 3 раза по сравнению с ручной настройкой через Merchant Center. Экономия от использования Terraform составляет до 40% бюджета на этапе развертывания.

# main.tf terraform { required_providers { commercetools = { source = "labd/commercetools" version = "~> 1.4" } } } provider "commercetools" { client_id = var.ctp_client_id client_secret = var.ctp_client_secret project_key = var.ctp_project_key token_url = "https://auth.europe-west1.gcp.commercetools.com" api_url = "https://api.europe-west1.gcp.commercetools.com" } resource "commercetools_channel" "storefront_ru" { key = "storefront-ru" roles = ["ProductDistribution", "InventorySupply"] name = { ru = "Сайт Россия" en = "Website Russia" } } resource "commercetools_store" "web_ru" { key = "web-ru" name = { ru = "Веб-магазин Россия" } languages = ["ru", "en"] countries = ["RU"] distribution_channels = [commercetools_channel.storefront_ru.key] supply_channels = [commercetools_channel.storefront_ru.key] } 
terraform init terraform plan terraform apply 

Product Types: что важно знать до создания

Product Type — схема атрибутов для группы товаров. Нельзя изменить тип атрибута после создания, только удалить и пересоздать. Поэтому перед разработкой обязательно согласуйте схему с контент-командой.

await apiRoot.productTypes().post({ body: { key: "apparel", name: "Одежда", description: "Атрибуты для одежды", attributes: [ { name: "brand", label: { ru: "Бренд", en: "Brand" }, type: { name: "text" }, isRequired: false, isSearchable: true, }, { name: "size", label: { ru: "Размер", en: "Size" }, type: { name: "enum", values: [ { key: "XS", label: "XS" }, { key: "S", label: "S" }, { key: "M", label: "M" }, { key: "L", label: "L" }, { key: "XL", label: "XL" }, ], }, isRequired: true, isSearchable: true, }, ], }, }).execute(); 

Что входит в настройку Project под ключ

Мы предоставляем полный набор артефактов:

  • Документация архитектуры с диаграммами.
  • Скрипты для переноса данных из текущей системы.
  • Настроенные окружения: dev, staging, production.
  • Интеграция с CI/CD.
  • Обучение команды: 2-3 сессии.
  • Поддержка в течение 14 дней после запуска.

Типичные ошибки и чек-лист

Перед началом разработки проверьте:

Чек-лист настройки commercetools Project
  • [ ] Region выбран, Project создан
  • [ ] Languages и Currencies настроены в Settings
  • [ ] Channels созданы (минимум 1 per storefront)
  • [ ] Stores привязаны к Channel
  • [ ] API Clients созданы с минимальными scopes
  • [ ] Product Types определены (согласовать схему атрибутов с контент-командой)
  • [ ] Shipping zones добавлены
  • [ ] Tax categories созданы
  • [ ] Конфигурация залита в Terraform (опционально, но рекомендуется)

Время на первичную настройку Project — 1–2 рабочих дня при наличии чёткого требования к структуре каталога. Закажите настройку commercetools Project под ключ — наши инженеры подготовят архитектуру за 1 день.