Разработка кастомных типов контента (Content Types) Strapi

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

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

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

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Разработка кастомных типов контента (Content Types) Strapi
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

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

Этапы разработки

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

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

Кастомные Content Types в Strapi

Content Types в Strapi бывают трёх видов: Collection Type (список записей), Single Type (одна запись — настройки сайта, главная страница), Component (переиспользуемая группа полей). Все они описываются JSON-схемой в src/api/ или src/components/.

Collection Type

// src/api/product/content-types/product/schema.json
{
  "kind": "collectionType",
  "collectionName": "products",
  "info": {
    "singularName": "product",
    "pluralName": "products",
    "displayName": "Товар"
  },
  "options": { "draftAndPublish": true },
  "pluginOptions": { "i18n": { "localized": true } },
  "attributes": {
    "name": {
      "type": "string",
      "required": true,
      "pluginOptions": { "i18n": { "localized": true } }
    },
    "slug": { "type": "uid", "targetField": "name" },
    "description": {
      "type": "richtext",
      "pluginOptions": { "i18n": { "localized": true } }
    },
    "price": { "type": "decimal", "required": true, "min": 0 },
    "stock": { "type": "integer", "default": 0, "min": 0 },
    "images": { "type": "media", "multiple": true, "allowedTypes": ["images"] },
    "category": {
      "type": "relation",
      "relation": "manyToOne",
      "target": "api::category.category",
      "inversedBy": "products"
    },
    "specs": {
      "type": "component",
      "repeatable": true,
      "component": "product.spec"
    }
  }
}

Single Type

// src/api/homepage/content-types/homepage/schema.json
{
  "kind": "singleType",
  "collectionName": "homepages",
  "info": {
    "singularName": "homepage",
    "pluralName": "homepages",
    "displayName": "Главная страница"
  },
  "attributes": {
    "hero": { "type": "component", "component": "sections.hero", "repeatable": false },
    "sections": { "type": "dynamiczone", "components": ["sections.text", "sections.gallery", "sections.cta"] },
    "seo": { "type": "component", "component": "shared.seo", "repeatable": false }
  }
}

Component

// src/components/shared/seo.json
{
  "collectionName": "components_shared_seos",
  "info": { "displayName": "SEO", "icon": "search" },
  "attributes": {
    "metaTitle": { "type": "string", "maxLength": 60 },
    "metaDescription": { "type": "text", "maxLength": 160 },
    "ogImage": { "type": "media", "multiple": false, "allowedTypes": ["images"] },
    "noIndex": { "type": "boolean", "default": false }
  }
}

API-запросы к content types

# Collection Type
GET /api/products?populate=images,category,specs&sort=createdAt:desc

# Single Type
GET /api/homepage?populate=hero,sections,seo

# Dynamic Zone — нужно populate каждого компонента
GET /api/homepage?populate[sections][populate]=*

Программное создание записей

// В контроллере или сервисе Strapi
await strapi.entityService.create('api::product.product', {
  data: {
    name: 'Новый товар',
    slug: 'novy-tovar',
    price: 1500,
    publishedAt: new Date(),
  },
})

Сроки

Создание 3–5 content types с компонентами через Content-Type Builder и JSON — 1–2 дня.