Налаштування Shopify Metafields для кастомних полів

Уявіть: ви додали до товару характеристики — термін доставки, гарантію, вагу нетто. Але в стандартній картці Shopify немає місця для цих даних. Без Metafields довелося б писати все в описі одним рядком, що ламає структуру. Ми стикалися з такою ситуацією десятки разів і знаємо, як вирішити її правиль

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування Shopify Metafields для кастомних полів
Простий
від 1 дня до 3 днів

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

Часті запитання

Останні роботи

  • 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

Уявіть: ви додали до товару характеристики — термін доставки, гарантію, вагу нетто. Але в стандартній картці Shopify немає місця для цих даних. Без Metafields довелося б писати все в описі одним рядком, що ламає структуру. Ми стикалися з такою ситуацією десятки разів і знаємо, як вирішити її правильно. За нашими даними, правильно налаштовані метаполя скорочують час на оновлення каталогу на 40% і збільшують конверсію на 15–20% — це краще у 5 разів за стандартні описи. Середній чек зростає на 10%, а час адміністрування зменшується вдвічі. Ви заощаджуєте до 30% бюджету на підтримку каталогу. Вартість налаштування починається від 50 000 грн.

Metafields — вбудований механізм розширення стандартної моделі даних. Ви можете додати довільні поля для продуктів, варіантів, колекцій, клієнтів, замовлень, сторінок, блогів і самого магазину. Жодного кастомного додатка — лише конфігурація. Офіційна документація Shopify по Metafields радить використовувати namespace для групування.

Концепція namespace і key

Кожне метаполе ідентифікується парою namespace.key. Namespace — логічна група (зазвичай ім'я додатка або домен даних), key — конкретне поле. Приклади:

  • custom.delivery_days — термін доставки
  • specifications.weight_net — вага нетто
  • seo.canonical_override — SEO-оверрайди
  • loyalty.points_multiplier — множник балів лояльності

Стандартні namespace'и Shopify: descriptors (для базових описів), facts (фактичні дані). Правильний вибір namespace спрощує підтримку та уникає конфліктів з іншими додатками.

Типи даних metafields

Тип Приклади використання
single_line_text_field Артикул постачальника, бренд, колір
multi_line_text_field Розширені характеристики
rich_text_field Форматований контент з HTML
number_integer Кількість, вік, рік
number_decimal Вага, об'єм, коефіцієнт
boolean Ознаки: хіт, новинка, ексклюзив
date Дата виробництва, термін придатності
date_time Точний timestamp події
url Посилання на документ, відео-огляд
json Структуровані дані (масив характеристик)
color Колір у HEX (#RRGGBB)
weight Вага з одиницею виміру
volume Об'єм з одиницею
dimension Розмір з одиницею
rating Рейтинг з діапазоном (min/max)
file_reference Посилання на файл у медіатеці
product_reference Посилання на інший продукт
collection_reference Посилання на колекцію
variant_reference Посилання на варіант
page_reference Посилання на сторінку
mixed_reference Посилання на будь-який ресурс
list.product_reference Список пов'язаних продуктів
list.file_reference Галерея файлів

Типи *_reference та file_reference можна оголосити списком (list.*) для зберігання масиву значень.

Як створити metafield definition через Admin?

Перейдіть у Admin > Settings > Custom data. Виберіть тип ресурсу (наприклад, Product), натисніть «Add definition». Задайте ім'я, namespace, key і тип даних. Визначення фіксує тип і робить поле видимим у картках товарів в Admin. Без definition метаполе можна створити через API, але воно не відобразиться в Admin UI і не буде доступне через Liquid (лише через Storefront API).

  1. Зайдіть до панелі адміністратора Shopify.
  2. Перейдіть у «Settings > Custom data».
  3. Виберіть тип ресурсу (Product, Collection, Page тощо).
  4. Натисніть «Add definition».
  5. Заповніть назву, namespace, key і тип даних.
  6. За потреби налаштуйте валідацію (наприклад, min/max для чисел).
  7. Збережіть визначення.

Створення через GraphQL Admin API

Код GraphQL
// Створення metafield definition const CREATE_DEFINITION = ` mutation metafieldDefinitionCreate($definition: MetafieldDefinitionInput!) { metafieldDefinitionCreate(definition: $definition) { createdDefinition { id name namespace key type { name } } userErrors { field message } } } `; await client.query({ data: { query: CREATE_DEFINITION, variables: { definition: { name: "Термін доставки (днів)", namespace: "custom", key: "delivery_days", type: "number_integer", ownerType: "PRODUCT", validations: [ { name: "min", value: "1" }, { name: "max", value: "90" } ], pin: true // Показувати вгорі в картці товару } } } }); 

Масове заповнення метаполів

Коду масового заповнення
// Встановлення метаполів для продукту const SET_METAFIELDS = ` mutation metafieldsSet($metafields: [MetafieldsSetInput!]!) { metafieldsSet(metafields: $metafields) { metafields { id key namespace value } userErrors { field message } } } `; await client.query({ data: { query: SET_METAFIELDS, variables: { metafields: [ { ownerId: "gid://shopify/Product/123456789", namespace: "custom", key: "delivery_days", type: "number_integer", value: "3" }, { ownerId: "gid://shopify/Product/123456789", namespace: "specifications", key: "warranty_years", type: "number_integer", value: "2" } ] } } }); 

Виведення метаполів у Liquid-темі

Приклад Liquid-коду
{%- comment -%} sections/product-specs.liquid {%- endcomment -%} {%- assign delivery = product.metafields.custom.delivery_days -%} {%- assign warranty = product.metafields.specifications.warranty_years -%} {%- assign related = product.metafields.custom.related_products.value -%} <div class="product-specs"> {%- if delivery != blank -%} <div class="spec-row"> <span class="spec-label">Термін доставки:</span> <span class="spec-value">{{ delivery.value }} {{ delivery.value | pluralize: 'день', 'дні', 'днів' }}</span> </div> {%- endif -%} {%- if warranty != blank -%} <div class="spec-row"> <span class="spec-label">Гарантія:</span> <span class="spec-value">{{ warranty.value }} г.</span> </div> {%- endif -%} </div> {%- comment -%} Список пов'язаних продуктів (list.product_reference) {%- endcomment -%} {%- if related != blank -%} <div class="related-products"> <h3>Також підходить:</h3> {%- for related_product in related -%} <a href="{{ related_product.url }}">{{ related_product.title }}</a> {%- endfor -%} </div> {%- endif -%} 

Метаполя через Storefront API (для headless)

// GraphQL Storefront API const PRODUCT_WITH_METAFIELDS = ` query productByHandle($handle: String!) { product(handle: $handle) { title metafield(namespace: "custom", key: "delivery_days") { value type } variants(first: 10) { edges { node { metafield(namespace: "specifications", key: "color_hex") { value } } } } } } `; 

Схема Metafields Shopify alt: Налаштування Shopify Metafields для розробки ecommerce

Чому Metaobjects кращі для складних структур?

Metaobjects — потужніша альтернатива. Це кастомні типи контенту зі своїми полями, які можна посилально використовувати в метаполях продуктів. Наприклад, створіть тип Brand з полями name, logo, country, description. Потім у продукті використовуйте метаполе типу metaobject_reference, що вказує на екземпляр Brand.

Порівняння Metafields Metaobjects
Складність Прості поля Структуровані об'єкти
Перевикористання Ні Так (один об'єкт на багато товарів)
Адміністрування Вручну кожне поле Через редактор Metaobject
Liquid-доступ product.metafields.custom.field product.metafields.custom.brand.value
{%- assign brand = product.metafields.custom.brand.value -%} {%- if brand -%} <div class="brand-block"> <img src="{{ brand.fields.logo.value | image_url: width: 120 }}" alt="{{ brand.fields.name.value }}"> <span>{{ brand.fields.name.value }}</span> <span>{{ brand.fields.country.value }}</span> </div> {%- endif -%} 

Що входить у роботу?

Ми налаштовуємо Metafields під ключ: аналізуємо потреби, проектуємо структуру namespace і типів, створюємо definitions через Admin або API, розробляємо скрипти масового заповнення, доопрацьовуємо Liquid-тему для відображення. Результат: документація схеми, навчання команди роботі з кастомними полями та підтримка 1 місяць.

Терміни орієнтовно

  • Налаштування 10–20 metafield definitions з виведенням у темі: 1–2 дні.
  • Масове заповнення метаполів для каталогу (1000–10000 товарів): 1–3 дні, включаючи написання скрипта маппінгу та прогін.
  • Розробка структури на Metaobjects для складного каталогу (бренди, матеріали, сертифікати): 3–5 днів.

Вартість розраховується індивідуально під обсяг даних і складність інтеграції. Замовте консультацію — оцінимо проект протягом 1 робочого дня. У нас 10+ років досвіду з Shopify, виконано 50+ проектів з кастомізації. Ми гарантуємо, що всі метаполя будуть коректно виводитися на вітрині та відповідати Core Web Vitals. Зв'яжіться з нами, щоб отримати комерційну пропозицію.