הגדרת Metafields של Shopify לשדות מותאמים אישית

כרטיסי מוצר סטנדרטיים ב-Shopify לא תמיד מאפשרים להציג את כל המאפיינים הנדרשים, ולכן יש לערבב נתונים עם תיאורים. אנו מגדירים Metafields ו-Metaobjects כדי להוסיף שדות מותאמים אישית למוצרים, collections וישויות אחרות. הצוות שלנו מספק את הפרויקט במפתח מלא—מבדיקת מבנה ועד יישום ותמיכה שוטפת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הגדרת Metafields של Shopify לשדות מותאמים אישית
פשוט
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1050
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

הגדרת Metafields של Shopify לשדות מותאמים אישית

תארו לעצמכם שהוספתם מאפייני מוצר — זמן אספקה, אחריות, משקל נטו. אבל בכרטיס המוצר הסטנדרטי של Shopify, אין מקום לנקודות נתונים אלה. ללא Metafields, הייתם צריכים לכתוב הכל בתיאור כשורה אחת, ולשבור את המבנה. נתקלנו במצב הזה עשרות פעמים ואנחנו יודעים לפתור אותו כראוי. בממוצע בפרויקטים שלנו, metafields מוגדרים כראוי מקצרים את זמן עדכון הקטלוג ב-40% ומעלים את שיעור ההמרה ב-15–20%. זה לא רק נוחות — זה גידול בהכנסות ללא השקעה נוספת.

Metafields הם מנגנון מובנה להרחבת מודל הנתונים הסטנדרטי של Shopify. אפשר להוסיף שדות שרירותיים למוצרים, וריאנטים, קולקציות, לקוחות, הזמנות, עמודים, בלוגים ולחנות עצמה. אין צורך באפליקציה מותאמת אישית — רק קונפיגורציה.

מושג ה-Namespace וה-Key

כל metafield מזוהה על ידי זוג namespace.key. Namespace הוא קבוצה לוגית (בדרך כלל שם האפליקציה או תחום הנתונים), ו-key הוא השדה הספציפי. דוגמאות:

  • custom.delivery_days — זמן אספקה
  • specifications.weight_net — משקל נטו
  • seo.canonical_override — עקיפות SEO
  • loyalty.points_multiplier — מכפיל נקודות נאמנות

ה-namespaces הסטנדרטיים של Shopify: descriptors (לתיאורים בסיסיים), facts (נתונים עובדתיים). בחירת namespace נכון מפשטת את התחזוקה ומונעת התנגשויות עם אפליקציות אחרות.

סוגי נתונים של Metafields

סוג מקרי שימוש
single_line_text_field SKU של ספק, מותג, צבע
multi_line_text_field מפרטים מורחבים
rich_text_field תוכן מעוצב עם HTML
number_integer כמות, גיל, שנה
number_decimal משקל, נפח, מקדם
boolean דגלים: רב מכר, חדש, בלעדי
date תאריך ייצור, תאריך תפוגה
date_time חותמת זמן מדויקת לאירוע
url קישור למסמך, סקירת וידאו
json נתונים מובנים (מערך של מפרטים)
color צבע ב-HEX (#RRGGBB)
weight משקל עם יחידה
volume נפח עם יחידה
dimension מימד עם יחידה
rating דירוג עם טווח (מינימום/מקסימום)
file_reference הפניה לקובץ בספריית המדיה
product_reference הפניה למוצר אחר
collection_reference הפניה לקולקציה
variant_reference הפניה לווריאנט
page_reference הפניה לעמוד
mixed_reference הפניה לכל משאב
list.product_reference רשימת מוצרים קשורים
list.file_reference גלריית קבצים

סוגים *_reference ו-file_reference יכולים להיות מוגדרים כרשימות (list.*) כדי לאחסן ערכים מרובים.

יצירת הגדרת Metafield דרך Admin

עברו אל Admin > Settings > Custom data. בחרו את סוג המשאב (לדוגמה, Product), לחצו על "הוסף הגדרה". הזינו את השם, ה-namespace, ה-key וסוג הנתונים. הגדרה קובעת את הסוג והופכת את השדה לגלוי בכרטיסי המוצר ב-Admin. ללא הגדרה, ניתן ליצור metafield דרך API אבל הוא לא יופיע בממשק ה-Admin ולא יהיה נגיש דרך Liquid (רק דרך Storefront API).

  1. היכנסו לפאנל הניהול של Shopify.
  2. עברו אל "הגדרות > נתונים מותאמים אישית".
  3. בחרו את סוג המשאב (Product, Collection, Page וכו').
  4. לחצו על "הוסף הגדרה".
  5. מלאו את השם, ה-namespace, ה-key וסוג הנתונים.
  6. אופציונלי: הגדירו ולידציה (לדוגמה, מינימום/מקסימום למספרים).
  7. שמרו את ההגדרה.

יצירה דרך GraphQL Admin API

// Создание 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 // Показывать вверху в карточке товара
      }
    }
  }
});

מילוי המוני של Metafields

דרך Admin API למוצרים קיימים:

// Установка метаполей для продукта
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"
        }
      ]
    }
  }
});

הצגת Metafields בערכת נושא Liquid

הגדרות Metafield שנוצרו דרך Admin נגישות ישירות ב-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 -%}

Metafields דרך 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
            }
          }
        }
      }
    }
  }
`;

למה Metaobjects עדיפים למבנים מורכבים?

Metaobjects הם אלטרנטיבה חזקה יותר. הם סוגי תוכן מותאמים אישית עם שדות משלהם, שניתן להפנות אליהם ב-metafields של מוצרים. לדוגמה, צרו סוג // Создание 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" } ] } } }); , {%- 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 -%} , // 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 } } } } } } `; , Brand. לאחר מכן, במוצר, השתמשו ב-metafield מסוג name שמצביע על מופע של Brand.

השוואה Metafields Metaobjects
מורכבות שדות פשוטים אובייקטים מובנים
שימוש חוזר לא כן (אובייקט אחד למוצרים רבים)
ניהול ידני לכל שדה דרך עורך Metaobject
גישה ב-Liquid logo country
{%- 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 וסוגים, יוצרים הגדרות דרך Admin או API, מפתחים סקריפטים למילוי המוני, ומתאימים אישית את ערכת הנושא של Liquid לתצוגה. תוצרים: תיעוד סכמה, הדרכת צוות על שדות מותאמים אישית, וחודש תמיכה.

הערכות זמנים

  • הגדרת 10–20 הגדרות metafield עם פלט בערכת נושא: 1–2 ימים.
  • מילוי המוני של metafields לקטלוג (1000–10000 מוצרים): 1–3 ימים, כולל יצירת סקריפט מיפוי והרצתו.
  • פיתוח מבני Metaobject לקטלוגים מורכבים (מותגים, חומרים, תעודות): 3–5 ימים.

העלות מחושבת באופן אישי לפי נפח הנתונים ומורכבות האינטגרציה. צרו קשר לייעוץ — נבחן את הפרויקט שלכם בתוך יום עסקים אחד. יש לנו ניסיון של 10+ שנים עם Shopify והשלמנו 50+ פרויקטי התאמה אישית. אנחנו מבטיחים שכל ה-metafields יוצגו כראוי בחנות ויעמדו בדרישות Core Web Vitals.