Настройка Shopify Sections и Blocks

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

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

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

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка Shopify Sections и Blocks
Простая
~2-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

Настройка Shopify Sections и Blocks

Sections и Blocks — архитектурная основа Online Store 2.0. Правильная настройка позволяет команде контента самостоятельно собирать страницы без привлечения разработчика. Неправильная — превращает Theme Editor в источник боли с непредсказуемым поведением.

Как устроены Sections

Секция — файл в /sections/ с Liquid-шаблоном и JSON-схемой в одном файле. Схема описывает настройки секции и типы блоков, которые она принимает.

Минимальная секция:

{%- comment -%} sections/text-banner.liquid {%- endcomment -%}
<div class="text-banner text-banner--{{ section.settings.alignment }}">
  <div class="container">
    {% if section.settings.heading != blank %}
      <h2>{{ section.settings.heading }}</h2>
    {% endif %}
    {% if section.settings.text != blank %}
      <div class="text-banner__body">{{ section.settings.text }}</div>
    {% endif %}
  </div>
</div>

{% schema %}
{
  "name": "Текстовый баннер",
  "tag": "section",
  "class": "section-text-banner",
  "settings": [
    {
      "type": "text",
      "id": "heading",
      "label": "Заголовок",
      "default": "Заголовок секции"
    },
    {
      "type": "richtext",
      "id": "text",
      "label": "Текст"
    },
    {
      "type": "select",
      "id": "alignment",
      "label": "Выравнивание",
      "options": [
        { "value": "left", "label": "По левому краю" },
        { "value": "center", "label": "По центру" },
        { "value": "right", "label": "По правому краю" }
      ],
      "default": "center"
    }
  ],
  "presets": [
    {
      "name": "Текстовый баннер"
    }
  ]
}
{% endschema %}

Ключевое поле — presets: секция появится в списке «Добавить секцию» в Theme Editor только при его наличии.

Типы настроек (settings types)

Тип Использование
text Короткая строка
textarea Многострочный текст
richtext Текст с форматированием (bold, italic, ссылки)
html Произвольный HTML
image_picker Выбор изображения из медиабиблиотеки
url Ссылка (внутренняя или внешняя)
link_list Меню навигации
color Цвет
color_scheme Цветовая схема (из config/settings_schema.json)
font_picker Шрифт из Google Fonts
select Выпадающий список
radio Переключатель
checkbox Флажок
range Слайдер с числом
collection Ссылка на коллекцию
product Ссылка на товар
blog Ссылка на блог
page Ссылка на страницу
video Видео из медиабиблиотеки
video_url YouTube / Vimeo URL
number Число
paragraph Нередактируемый текст-подсказка в UI
header Разделитель-заголовок в UI (не выводит контент)

Blocks внутри секции

Блоки — динамические повторяемые элементы секции. Пример — секция «Карточки преимуществ»:

{%- comment -%} sections/features-grid.liquid {%- endcomment -%}
<div class="features-grid features-grid--cols-{{ section.settings.columns }}">
  {%- for block in section.blocks -%}
    {%- case block.type -%}
      {%- when 'feature_card' -%}
        <div class="feature-card" {{ block.shopify_attributes }}>
          {%- if block.settings.icon != blank -%}
            <img
              src="{{ block.settings.icon | image_url: width: 80 }}"
              alt="{{ block.settings.icon.alt | escape }}"
              width="80"
              height="80"
              loading="lazy"
            >
          {%- endif -%}
          <h3>{{ block.settings.title }}</h3>
          <p>{{ block.settings.description }}</p>
        </div>
    {%- endcase -%}
  {%- endfor -%}
</div>

{% schema %}
{
  "name": "Сетка преимуществ",
  "tag": "section",
  "settings": [
    {
      "type": "range",
      "id": "columns",
      "min": 2,
      "max": 4,
      "step": 1,
      "label": "Количество колонок",
      "default": 3
    }
  ],
  "blocks": [
    {
      "type": "feature_card",
      "name": "Карточка преимущества",
      "settings": [
        {
          "type": "image_picker",
          "id": "icon",
          "label": "Иконка"
        },
        {
          "type": "text",
          "id": "title",
          "label": "Заголовок",
          "default": "Преимущество"
        },
        {
          "type": "textarea",
          "id": "description",
          "label": "Описание"
        }
      ]
    }
  ],
  "max_blocks": 12,
  "presets": [
    {
      "name": "Сетка преимуществ",
      "blocks": [
        { "type": "feature_card" },
        { "type": "feature_card" },
        { "type": "feature_card" }
      ]
    }
  ]
}
{% endschema %}

Атрибут {{ block.shopify_attributes }} обязателен — он добавляет data-атрибуты для inline-редактирования в Theme Editor.

Статичные и динамичные секции

Статичная секция — жёстко прописана в layout/theme.liquid через {% section 'header' %}. Не может быть перемещена или удалена в Theme Editor.

Динамическая секция — управляется через JSON-шаблон страницы. Именно они добавляются через кнопку «Добавить секцию»:

// templates/index.json
{
  "sections": {
    "main-banner": {
      "type": "hero-banner",
      "settings": {
        "heading": "Добро пожаловать",
        "subheading": "Лучшие товары по лучшим ценам"
      }
    },
    "features": {
      "type": "features-grid",
      "block_order": ["block-1", "block-2", "block-3"],
      "blocks": {
        "block-1": { "type": "feature_card", "settings": { "title": "Быстрая доставка" } },
        "block-2": { "type": "feature_card", "settings": { "title": "Гарантия качества" } },
        "block-3": { "type": "feature_card", "settings": { "title": "Возврат 30 дней" } }
      }
    }
  },
  "order": ["main-banner", "features"]
}

Цветовые схемы

Глобальные цветовые схемы задаются в config/settings_schema.json и переиспользуются в любой секции:

{
  "name": "Цветовые схемы",
  "settings": [
    {
      "type": "color_scheme_group",
      "id": "color_schemes",
      "definition": [
        {
          "type": "color",
          "id": "background",
          "label": "Фон"
        },
        {
          "type": "color",
          "id": "foreground",
          "label": "Текст"
        },
        {
          "type": "color",
          "id": "button",
          "label": "Кнопки"
        }
      ],
      "role": {
        "background": "background",
        "text": "foreground"
      }
    }
  ]
}

В секции используется через "type": "color_scheme".

Ограничения для защиты от поломки

"limit" в конфигурации секции или блока предотвращает добавление лишних элементов:

// Запрет на дублирование hero-секции
{ "type": "hero-banner", "limit": 1 }

// Не более 6 блоков в слайдере
"max_blocks": 6

Сроки

Разработка 5–8 кастомных секций с блоками для конкретного проекта: 3–5 дней. Рефакторинг существующей темы с переносом хардкода в редактируемые секции: 1–2 недели.