Daftar Tags & Filters
Reference lengkap semua dynamic tag (per context) dan filter pipe yang tersedia.
Reference lengkap semua tag dan filter yang tersedia. Daftar ini sinkron dengan picker UI dan MCP server — yang muncul di sini adalah yang sebenarnya bisa dipakai.
Bagian A — Daftar Dynamic Tags
1. Product Context
Resolve di template single_product dan single_bundle. Sebagian besar juga resolve di dalam Query Loop yang data source-nya iterasi product — tag akan binding ke row aktif.
| Tag | Deskripsi | Kind | Sample | Suggested Filter |
|---|---|---|---|---|
{product_title} | Nama produk. | string | Cotton T-Shirt | — |
{product_price} | Harga pre-formatted. Deprecated — pakai _raw + |currency. | string | Rp 250.000 | — |
{product_price_raw} | Harga sebagai angka mentah. | number | 250000 | currency |
{product_sale_price_raw} | Harga sale aktif (kosong kalau tidak sedang sale). | number | 199000 | currency |
{product_original_price_raw} | Harga sebelum sale — cocok untuk strikethrough. | number | 250000 | currency |
{product_description} | Deskripsi HTML (sanitized). | html | <p>Long...</p> | — |
{product_image} | URL gambar utama. | image | media.alus.io/... | image_url:cardMedium |
{product_gallery_images} | JSON array URL gallery (dikonsumsi productImageGallery). Page-level only — tidak tersedia di dalam Query Loop. | json | ["..."] | — |
{product_sku} | SKU varian pertama (kosong kalau tidak ada varian). Page-level only. | string | SKU-001 | — |
{product_url} | URL canonical halaman produk. | url | /product/cotton-t-shirt | — |
{product_sale_ends_at} | ISO 8601 kapan sale berakhir. Page-level only. | date | 2026-05-27T00:00:00Z | date:long |
{product_in_stock} | "true" / "false". Page-level only. | boolean | true | — |
{product_stock_status} | Label stok yang readable. Page-level only. | string | In stock | — |
2. Post Context
Resolve di template single_post dan di dalam Query Loop yang iterasi post.
| Tag | Deskripsi | Kind | Sample | Suggested Filter |
|---|---|---|---|---|
{post_title} | Judul post. | string | Hello World | — |
{post_content} | Body HTML (sanitized). | html | <p>...</p> | — |
{post_excerpt} | Ringkasan singkat post. | string | Brief summary... | — |
{post_author} | Nama display penulis. | string | Author Name | — |
{post_date} | Tanggal publish. | date | 5 Mei 2026 | date:long |
{post_category} | Kategori utama. | string | News | — |
{post_featured_image} | URL gambar utama. | image | media.alus.io/... | image_url:cardWide |
{post_url} | URL canonical halaman detail post. | url | /blog/hello-world | — |
3. Page Context
Resolve di template single_page saja — page tags tidak tersedia di dalam Query Loop.
| Tag | Deskripsi | Kind | Sample | Suggested Filter |
|---|---|---|---|---|
{page_title} | Judul page. | string | About Us | — |
{page_content} | Body HTML (sanitized). | html | <p>...</p> | — |
{page_featured_image} | URL hero image. | image | media.alus.io/... | image_url:hero |
4. Course Context
Resolve di template single_course dan di dalam Query Loop yang iterasi course.
| Tag | Deskripsi | Kind | Sample | Suggested Filter |
|---|---|---|---|---|
{course_title} | Nama course. | string | Belajar React dari Nol | — |
{course_description} | Deskripsi HTML (sanitized). | html | <p>...</p> | — |
{course_image} | URL thumbnail. | image | media.alus.io/... | image_url:cardWide |
{course_instructor} | Nama instruktur. | string | Instruktur Contoh | — |
{course_price_raw} | Harga course sebagai angka mentah. | number | 500000 | currency |
{course_url} | URL canonical halaman detail course. | url | /course/belajar-react-dari-nol | — |
5. Archive Context
Resolve di template post_archive, shop_catalog, course_archive.
{product_*} / {post_*} / {course_*}).
| Tag | Deskripsi | Kind | Sample |
|---|---|---|---|
{archive_title} | Judul archive (kategori / catalog). | string | All Products |
{archive_description} | Deskripsi archive. | html | <p>Browse...</p> |
{post_count} | Jumlah item di archive (post archive only). | number | 12 |
6. Loop Context — Di dalam Query Loop
Saat element punya queryLoop.enabled = true, descendant-nya di-render sekali per row hasil query. Entity tags biasa resolve ke row aktif — loop postQuery melihat {post_*}, loop product melihat {product_*}, loop course melihat {course_*}.
Selain itu, tag loop metadata tetap pakai sintaks double-brace karena tidak punya padanan entity:
| Tag | Deskripsi | Kind | Sample |
|---|---|---|---|
{{loop.index}} | Index 0-based iterasi saat ini. | number | 0 |
{{loop.number}} | Index 1-based (lebih friendly untuk display). | number | 1 |
{{loop.count}} | Total item dalam loop. | number | 12 |
{{loop.first}} | "true" di iterasi pertama, "false" lainnya. Berguna untuk Display Conditions. | boolean | true |
{{loop.last}} | "true" di iterasi terakhir, "false" lainnya. | boolean | false |
7. Global Context
Resolve di SEMUA context — selalu tersedia tanpa peduli template type.
| Tag | Deskripsi | Kind | Sample | Suggested Filter |
|---|---|---|---|---|
{site_name} | Nama site dari Settings. | string | Acme Store | — |
{site_tagline} | Tagline site dari Settings. | string | Endless Possibilities | — |
{site_logo} | URL logo site. | image | media.alus.io/sites/1/logo.png | image_url:logo |
{site_year} | Tahun sekarang (4 digit). | string | 2026 | — |
{cart_count} | Jumlah item di cart (placeholder, belum runtime). | number | 3 | — |
{cart_total} | Total cart pre-formatted (placeholder, belum runtime). | string | Rp 750.000 | — |
Bagian B — Filters & Sintaks Pipe
Sintaks
{tag|filter1:arg1:arg2|filter2}
Pipe (|) chain dieksekusi kiri-ke-kanan. Argument dipisah : (titik dua). Argument dgn spasi harus dikutip:
{post_author|default:"Tidak ada"}
Daftar 9 Filter
| Filter | Deskripsi | Args | Contoh | Applies To |
|---|---|---|---|---|
currency |
Format angka mentah sebagai mata uang (pakai settings site). | currency (ISO code, opsional) |
{product_price_raw|currency}→ Rp 250.000 |
number, string |
truncate |
Strip HTML + potong N karakter + ellipsis. | length (number) |
{product_description|truncate:120} |
string, html |
image_url |
Apply preset transformation (resize/crop). Pass-through kalau transform di-disable. | preset |
{product_image|image_url:cardMedium} |
image, url |
date |
Format ISO date. | format (opsional, default long) |
{post_date|date:long}→ 5 Mei 2026 |
date, string |
default |
Fallback string kalau nilai tag kosong. | fallback (string literal) |
{post_author|default:"Anonim"} |
semua kind |
upper | UPPERCASE. | — | {product_title|upper} | string |
lower | lowercase. | — | {product_title|lower} | string |
strip_html | Hapus semua tag HTML. | — | {product_description|strip_html} | html, string |
raw | Pass-through eksplisit (override suggested filter). | — | {product_price_raw|raw}→ 250000 | semua kind |
Preset untuk filter image_url
Nama preset valid (dari IMAGE_PRESETS): thumbnail, cardMedium, cardWide, productMain, hero, avatar, logo, invoice.
Preset untuk filter date
Nama preset valid: long (5 Mei 2026), short (5/5/2026), iso, year, month, day, time.
Chaining Filter
Filter bisa di-chain. Urutan eksekusi kiri-ke-kanan:
{product_description|strip_html|truncate:120}
→ Strip HTML dulu, baru potong 120 karakter.