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

Неправильная конфигурация commercetools Project на старте приводит к ошибкам в ценах, валютах и регионах, которые потом требуют недель на исправление. Мы настраиваем commercetools Project и API под ключ, создавая корректную архитектуру каналов и stores с первого раза. Наша команда берёт на себя весь цикл — от аудита до внедрения и последующей поддержки, чтобы ваша витрина работала надёжно и масштабировалась вместе с бизнесом.

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

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

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

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

После создания 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 день.

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060