פיתוח Sections ו-Blocks מותאמים אישית ל-Shopify

הגדרת סקשנים ובלוקים ב-Shopify הופכת פעמים רבות לכאוס: עריכות לא חלות, בלוקים זזים, ומנהלי תוכן תקועים בשגרה. אנחנו מפתחים סקשנים ובלוקים מותאמים אישית עבור Online Store 2.0, מה שהופך את התמה לגמישה וידידותית באמת. הצוות שלנו מוסר את הפרויקט במפתח מלא—מסכמת הנתונים ועד לתמיכה—כך שאתה מנהל את האתר ללא כאבים וללא פספוס מועדים.

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פיתוח Sections ו-Blocks מותאמים אישית ל-Shopify
פשוט
~2-3 ימים

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

שאלות נפוצות

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

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1506
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1345
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1310
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1050
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1034

אתם פותחים את עורך התמה, משנים טקסט בקטע (Section), ובאתר—כלום לא קורה. או שהבלוקים זזים, או שההגדרות לא חלות. נשמע מוכר? כמפתחים עם 8 שנות ניסיון ב-Shopify, אנחנו מכירים כל מכשול. נראה לכם כיצד להגדיר נכון Sections ו-Blocks כך שצוות התוכן שלכם יוכל לעבוד בלעדיכם, ועורך התמה לא ישבור את הפריסה.

Online Store 2.0 הביא כלי עוצמתי—קטעים עם בלוקים. אבל צריך להשתמש בהם בחוכמה. סכמה (Schema) שגויה הופכת גמישות לסיוט: בלוקים חופפים, הגדרות לא נשמרות, פרסטים לא מופיעים. להלן הפרקטיקה שמבטלת את הבעיות האלה.

כיצד להימנע מהתנגשויות בלוקים

לכל בלוק בתוך קטע חייב להיות type ייחודי. אם לשני בלוקים יש אותו type, הם מתנהגים כאחד—ההגדרות דורסות זו את זו. השתמשו בערכי type שונים או הגבילו את הכמות דרך max_blocks. כמו כן, תמיד הוסיפו את המאפיין {{ block.shopify_attributes }}—הוא מאפשר לעורך התמה לזהות נכון כל בלוק.

מדוע קטעים סטטיים מסוכנים

קטעים סטטיים מקודדים קשיח ב-layout/theme.liquid. לא ניתן להזיז או למחוק אותם מהעורך—רק דרך קוד. זה מגדיל את זמן העריכה פי 3 בהשוואה לקטעים דינמיים. לכל הפרויקטים החדשים, אנו ממליצים על קטעים דינמיים: הם מנוהלים דרך תבנית ה-JSON של הדף, מה שנותן למנהל התוכן שליטה מלאה ללא גישה לקוד.

כיצד קטעים עובדים

קטע הוא קובץ ב-/sections/ המכיל תבנית Liquid וסכמת JSON בקובץ אחד. הסכמה מתארת את הגדרות הקטע ואת סוגי הבלוקים שהוא מקבל. השדה המרכזי הוא presets: בלעדיו, הקטע לא יופיע ברשימת "הוסף קטע". מידע נוסף על Liquid ניתן למצוא בויקיפדיה.

קטע מינימלי:

{%- 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 %}

קטעים סטטיים לעומת דינמיים: השוואה

מאפיין קטע סטטי קטע דינמי
ניהול רק דרך קוד דרך עורך התמה ותבנית JSON
הזזה לא אפשרי אפשרי (גרירה ושחרור)
מחיקה מהעורך לא אפשרי אפשרי
גמישות נמוכה גבוהה
מהירות שינוי ימים דקות

קטעים דינמיים מנצחים פי 3 במהירות ביצוע עריכות. זה חשוב במיוחד לחנויות שבהן התוכן משתנה מדי שבוע.

סוגי הגדרות

סוג שימוש
{%- 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 %} מחרוזת קצרה
text טקסט רב-שורתי
textarea טקסט מעוצב (מודגש, נטוי, קישורים)
richtext HTML מותאם אישית
html בחירת תמונה מספריית המדיה
image_picker קישור (פנימי או חיצוני)
url תפריט ניווט
link_list צבע
color סכמת צבעים (מתוך color_scheme)
config/settings_schema.json גופן מ-Google Fonts
font_picker רשימה נפתחת
select לחצן רדיו
radio תיבת סימון
checkbox מחוון עם מספר
range קישור לאוסף
collection קישור למוצר
product קישור לבלוג
blog קישור לדף
page וידאו מספריית המדיה
video כתובת YouTube / Vimeo
video_url מספר
number טקסט רמז שאינו ניתן לעריכה בממשק
paragraph כותרת קטע בממשק (לא מציגה תוכן)

בלוקים בתוך קטע

בלוקים הם אלמנטים דינמיים הניתנים לחזרה בתוך קטע. דוגמה—קטע "רשת תכונות":

{%- 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 %}

המאפיין header הוא חובה—הוא מוסיף מאפייני נתונים לעריכה מובנית בעורך התמה.

תהליך יצירת קטע שלב-אחר-שלב

  1. צרו קובץ {%- 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 }}.
  2. כתבו את סימון ה-Liquid באמצעות .liquid ו-/sections/.
  3. הוסיפו section.settings עם block.settings, {% schema %}, name, ואופציונלית tag.
  4. כללו לפחות settings אחד כדי שהקטע יופיע בעורך.
  5. חברו את הקטע בתבנית ה-JSON של הדף (לדוגמה, blocks).
  6. בדקו בעורך התמה: הוסיפו את הקטע, הגדירו בלוקים, שמרו.

מגבלות למניעת שבירה

preset בהגדרות קטע או בלוק מונע הוספת אלמנטים מיותרים:

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

מה העבודה שלנו כוללת

  • ביקורת על התמה הנוכחית שלכם לקטעים מקודדים קשיח ולא גמישים.
  • עיצוב ארכיטקטורת קטעים המותאמת לדרישות החנות שלכם.
  • פיתוח של 5–8 קטעים מותאמים אישית עם בלוקים לפי מוקאפים.
  • הגדרת סכמות צבעים וגופנים גלובליות.
  • שילוב קטעים בתבניות JSON של דפים.
  • תיעוד הרכיבים שנוצרו והדרכה לצוות התוכן שלכם.
  • אחריות שכל הבלוקים עובדים בעורך התמה (שבועיים של תמיכה לאחר המסירה).

לוח זמנים והערכת עלות

פיתוח של 5–8 קטעים מותאמים אישית עם בלוקים לפרויקט ספציפי: 3–5 ימים. רפקטורינג לתמה קיימת עם העברת תוכן מקודד קשיח לקטעים ניתנים לעריכה: 1–2 שבועות. אם כבר יש לכם תמה אבל הבלוקים מתנהגים בצורה בלתי צפויה, כתבו לנו—נעריך את הפרויקט ביום אחד ונציע תוכנית רפקטורינג. העברנו מעל 50 חנויות ל-Online Store 2.0—יש לנו את הניסיון ואת אחריות האיכות. קבלו ייעוץ למשימות שלכם.