Bagian tools ditutup di 69 Migrasi ke Strict Liquid Parser. Empat bab berikutnya soal Shopify Theme Store: marketplace tempat merchant beli theme dan tempat kamu bisa jualan. Bab ini gambaran besarnya plus daftar requirements lengkap, yang sebenarnya juga checklist kualitas yang bagus buat theme mana pun, walau kamu gak berniat submit. Hampir semua poinnya ngerujuk balik ke bab fitur dan arsitektur yang udah dibahas, jadi bab ini juga berfungsi sebagai indeks “apa yang dianggap theme lengkap oleh Shopify”.
Gambaran Theme Store
Shopify Theme Store adalah salah satu pemberhentian pertama merchant waktu mau ngeluncurin toko online. Dengan harga yang fleksibel dan fitur pemasaran yang pintar, bikin theme buat Theme Store adalah cara ngebangun bisnis kamu sambil bantu jutaan merchant ngebangun bisnis mereka. Alurnya lima langkah:
- Kenali requirements (bab ini). Theme harus memenuhi semua requirements buat dipublikasiin. Kalau ada satu yang kurang, submission ditolak dan kamu harus ngubah theme sebelum submit ulang.
- Tes theme (71 Testing Theme buat Theme Store) biar fitur wajibnya ada dan theme-nya fleksibel, tangguh, dan performan.
- Submit theme (72 Review, Listing, dan Submit) dan bikin listing biar merchant paham potensi penuh theme kamu.
- Kembangin bisnis theme (73 Sukses di Theme Store): dukungan, update, ngelola review merchant, brand assets buat promosi.
- Pahami revenue: theme yang dijual lewat Theme Store kena revenue share 15%.
1. Revenue Share
Gak ada biaya buat submit theme. Tapi total pendapatan theme kena revenue share 15%, berlaku buat semua theme yang di-listing di Theme Store. Pendapatan lain, seperti dari App Store atau referral, gak masuk hitungan revenue share Theme Store. Revenue share dihitung dari gross sales, bukan net sales.
Semua penagihan kena biaya pemrosesan 2,9% dan pajak penjualan yang berlaku; sejak 1 Agustus 2021 biaya dan pajak ditagih terpisah. Di beberapa negara ada tambahan regulatory operating fee. Associated Theme Developer Account adalah Partner account mana pun yang didaftarin developer theme (atau developer terasosiasi) ke Shopify, yang ikut diperhitungkan.
Pendapatan dan biaya bisa dilihat di Partner Dashboard: charge per toko, halaman Payouts, halaman history, unduh CSV payout, invoice Shopify fees, atau otomatis lewat Partner API.
2. Dua Aturan Paling Penting
Sebelum masuk daftar, dua hal yang bikin theme langsung gak memenuhi syarat:
- Skeleton Theme adalah satu-satunya codebase yang disetujui buat pengembangan Theme Store (02 Bikin Theme Baru dari Skeleton). Selain itu theme harus kode sepenuhnya orisinal. Theme baru yang dibangun dari atau diturunkan dari Dawn atau Horizon gak memenuhi syarat.
- Theme yang diuji dengan buruk ditolak tanpa review lanjutan, dan masalah berulang bisa berujung suspensi atau penolakan permanen.
1. Eksklusivitas
Theme di Theme Store cuma boleh didistribusiin lewat Theme Store, gak boleh di marketplace lain. Theme gak boleh berisi kredit desainer (link ke website developer) atau link afiliasi apa pun di file theme. Alasannya: biar merchant terus dapat theme kualitas tertinggi dengan fitur terbaru, dan theme-nya bukan kendaraan pemasaran.
2. Keunikan
Theme harus secara fundamental berbeda dari theme lain di Theme Store, termasuk theme kamu sendiri. Perubahan kosmetik kecil gak cukup. Standar evaluasinya:
- Keunikan diukur dari pengalaman keseluruhan di template dan elemen inti. Kamu boleh pakai ulang komponen dan library, tapi cara merakitnya harus substansial berbeda.
- Identitas dan kemampuan theme gak boleh gampang ditiru dengan ngatur setting, styling dangkal, atau nambah beberapa section ke theme lain. Ngereproduksi pengalamannya harus butuh perubahan struktural besar.
- Art direction yang inventif, dengan sistem yang jelas buat header dan navigasi, product card, perlakuan media, dan struktur halaman.
- Gak cukup: tweak spacing, ganti warna atau tipografi, gradien, shape divider, efek background atau blur, tweak animasi, atau nambah beberapa setting/section ke codebase yang ada.
- Keunikan ditanam di level arsitektur, biar theme tetap jadi dirinya waktu setting dan fitur baru ditambah.
- Merchant gak boleh bisa beli theme kamu lalu ngustomisasinya sampai hampir identik dengan theme lain di Theme Store.
3. Desain dan UX
Theme harus memenuhi setiap checkpoint di bawah. Prinsip desainnya dibahas di 56 Design dan Color System.
1. Visual dan Art Direction
Desain unik dan disengaja yang jelas menyasar tipe merchant atau industri tertentu; visual berkualitas profesional (gak ada gambar buram, melar, pixelated, atau level clipart); palet warna sederhana dan saling melengkapi yang gak bentrok atau ngurangin keterbacaan.
2. Layout
Struktur halaman jelas mengikuti grid logis dengan spacing dan alignment yang konsisten; hierarki konten yang jelas lewat ukuran, warna, kontras, dan posisi; layout fleksibel yang tetap terlihat disengaja waktu panjang konten, jumlah gambar, atau jumlah teks berubah, tanpa celah canggung atau area kosong besar.
3. Konsistensi
Tipografi konsisten (gak kebanyakan font, pasangan font yang saling melengkapi); elemen interaktif (tombol, link, form) dengan gaya, ukuran, warna, dan perilaku yang sama di mana pun; setting yang terorganisir jelas dengan bahasa ramah merchant dan pengelompokan logis; pengalaman theme editor merchant-first, seimbang antara fleksibilitas dan setting yang opinionated.
4. Pengalaman Belanja
Navigasi jelas tanpa friksi dari home ke produk, cart, dan checkout; penemuan produk yang dipikirkan (menu intuitif, featured collections, rekomendasi); interaksi belanja bebas frustrasi: milih opsi, add to cart, edit cart, lanjut checkout semuanya jelas dan responsif seketika.
5. Demo Store
Demo store lengkap dan realistis: contoh bisnis merchant sungguhan dengan produk yang dipilih cermat, foto profesional, teks orisinal, tanpa Lorem Ipsum; semua section dan fitur yang ditampilkan cocok dengan tipe bisnis yang digambarkan; demo yang menginspirasi merchant.
4. Fitur Wajib
Semua theme harus ndukung fitur berikut. Tiap poin ngerujuk ke bab yang ngajarin implementasinya:
- Sections Everywhere: kompatibilitas OS 2.0, lihat bagian 5 di bawah dan 52 Online Store 2.0 dan Migrasinya.
- Discounts: nampilin jumlah diskon per item dan per order di cart, checkout, dan order; wajib di halaman Cart (42 Harga Diskon, Currency, Unit Pricing, Installments, B2B).
- Accelerated checkout buttons di halaman produk dan cart (43 Accelerated Checkout). Warna tombol branded gak boleh diubah.
- Faceted search filtering di halaman koleksi dan search berdasarkan ketersediaan, harga, tipe, vendor, dan opsi varian (37 Filtering).
- Gift cards: template
gift_card.liquid(24 Template per Halaman > gift_card.liquid). - Image focal points: dukung focal point dari
image_pickeratau halaman Files (30 Settings dan Input Settings > 1. image_picker). - Images for social sharing: object
page_imagebuat thumbnail waktu link dibagikan (48 SEO Metadata, hreflang, robots.txt > Open Graph dan Media Sosial). - Country selection dan Language selection waktu merchant jualan lintas negara/bahasa, mengikuti pedoman UX (47 Markets Multi Currency, Multi Bahasa, Localization > Pedoman UX Selector).
- Multi-level menus: menu bersarang buat dropdown bertingkat (36 Navigasi dan Menu).
- Newsletter forms (46 Customer Sign-in, Account Component, Contact Form, Email Consent > Persetujuan Email Marketing).
- Pickup availability di halaman produk (49 Delivery Pickup Availability).
- Related product recommendations dan Complementary product recommendations di halaman produk (41 Produk Recommendations, Gift Card, dan Bundles).
- Rich product media (model 3D, video, YouTube/Vimeo) di template produk, section featured product, dan form produk seperti quick view (40 Produk Media).
- Search box atau link ke search dengan template search dan predictive search (38 Search dan Predictive Search).
- Selling plans: selling plan yang dipilih ditampilkan di Cart (44 Subscriptions).
- Shop Pay Installments banner di halaman produk (42 Harga Diskon, Currency, Unit Pricing, Installments, B2B).
- Unit pricing di halaman koleksi, produk, dan cart.
- Variant images: gambar varian tampil waktu varian dipilih (39 Produk Variants dan High-variant Products).
- Follow on Shop lewat filter
login_button; warna tombol branded gak boleh diubah. - Account component
<shopify-account>di header, terlihat di desktop dan mobile (46 Customer Sign-in, Account Component, Contact Form, Email Consent > Komponen Akun: shopify-account).
5. Template, Section, dan Block
1. Template Wajib
theme.liquid (layout), 404.json, article.json, blog.json, cart.json, collection.json, index.json, list-collections.json, page.json, page.contact.json, password.json, product.json, search.json, gift_card.liquid, plus file config settings_data.json dan settings_schema.json. Perhatiin semuanya JSON kecuali layout dan gift card, itu artinya “Sections Everywhere”. Jangan sertakan config/markets.json waktu submit (32 Config settings_schema.json, settings_data.json, markets.json > markets.json).
2. Section
Semua template harus ndukung section (JSON template), kecuali halaman Customer Account, Gift Card, dan Checkout. Theme harus punya section Custom Liquid dengan setting tipe liquid (30 Settings dan Input Settings > 4. liquid), tersedia di semua template yang ndukung section, karena section ini jadi titik sisip buat tipe app tertentu. Header dan footer harus dirender di section group (27 Section Groups dan Migrasinya) biar merchant bisa nambah, hapus, dan ngurutin section di area itu.
3. Block dan App Block
Section utama halaman produk harus pakai block buat semua atau sebagian besar elemennya: harga, vendor, deskripsi, masing-masing block sendiri (contoh: main-product Dawn). Theme harus ndukung app block (@app) di section produk utama dan featured product (28 Blocks > App Block). Sediain juga block Custom Liquid (setting tipe liquid) di mana pun kamu pertimbangin app block, sebagai titik sisip app.
6. Lighthouse Performa dan Aksesibilitas
- Rata-rata skor performa Lighthouse minimal 60 di halaman produk, koleksi, dan home, desktop dan mobile.
- Rata-rata skor aksesibilitas minimal 90 di halaman yang sama, desktop dan mobile.
- Tes dijalanin dengan dataset benchmark (57 Performance Dasar, Metrik, dan Cara Ngukur > Benchmark Theme Store), dan waktu diverifikasi section harus berisi gambar dan konten sungguhan, gak boleh kosong.
7. Syarat per Halaman
1. Layout
Kalau logo metode pembayaran ditampilkan, pakai shop.enabled_payment_types dengan filter payment_type_img_url atau payment_type_svg_tag, dan ikonnya full color. Elemen <html> harus punya atribut lang, diisi dari request.locale:
<html ... lang="{{ request.locale.iso_code }}">Pakai object routes buat semua URL storefront: bukan href="/" tapi href="{{ routes.root_url }}", biar theme ngikutin perubahan format URL Shopify seperti halaman multi-bahasa. Jangan ubah atau parse content_for_header; kalau isinya berubah, perilaku Liquid kamu ikut berubah.
2. Product
Wajib nampilin: product.title (gak dipotong), variant.price, variant.unit_price, compare-at price varian, product.description, nama dan nilai opsi. Semua gambar produk tampil dan bisa dilihat, rasio berbeda gak boleh ngerusak layout; gambar varian tampil waktu varian dipilih; pakai cart.taxes_included buat nunjukin harga termasuk pajak.
Fungsi beli wajib: varian dipecah jadi opsi terpisah; pemilih kuantitas; tombol Add to cart (dinonaktifin atau diganti waktu kombinasi gak tersedia atau habis dipilih); callback yang ngupdate harga, compare-at, dan pesan sold-out buat varian terpilih; first available variant dimuat waktu halaman dibuka (24 Template per Halaman > product).
Fitur wajib di halaman produk: rekomendasi produk, rich media, accelerated checkout (aktif secara default), pickup availability, Shop Pay Installments. Produk gift card harus punya opsi kirim ke penerima, pakai form.email, form.name, form.message, dan gift_card.send_on. Opsi produk harus ndukung swatch lewat swatch.image dan swatch.color.
3. Collection
Wajib: collection.title (gak dipotong), collection.description, collection.image. Produk dalam grid atau list dengan product.title (gak dipotong, link ke product.url), product.price, product.images, variant.unit_price, minimal satu media. Grid gak boleh rusak karena rasio gambar; badge Sale atau product.compare_at_price_max tampil waktu relevan; bisa sort; pesan waktu koleksi kosong; product.price_varies buat nunjukin rentang price_min–price_max; paginasi atau lazy loading.
4. Collection List
collection.title (gak dipotong); pakai collection.featured_image (fallback ke gambar produk pertama kalau koleksi gak punya gambar); paginasi atau lazy loading.
5. Cart
Detail line_item: title, unit_price, image, final_price, quantity, options_with_values. cart.total_price terlihat; cart.taxes_included; tombol checkout yang submit form cart; refresh semua line item waktu kuantitas berubah biar total benar; bisa ubah kuantitas tiap item; pesan waktu cart kosong. Fitur: cart notes, selling plans, kode diskon otomatis, accelerated checkout (aktif default) (24 Template per Halaman > cart).
6. Page, Blog, Article
Page: page.title, page.content, plus alternate template buat form kontak. Blog: blog.title, tiap artikel dengan article.title (gak dipotong, link ke article.url), article.image, article.excerpt_or_content bukan article.content, paginasi. Article: article.title, article.comments, article.published_at bukan article.created_at, komentar dipaginasi, alur komentar berfungsi tanpa moderasi dengan semua pesan sukses/error tampil (24 Template per Halaman > article).
7. Search, 404, Gift Card, Password
Search: pesan waktu gak ada hasil, bisa ngembaliin beragam tipe object (produk, blog, page) pakai object_type, paginasi. 404: pesan jelas plus jalan keluar (search bar atau link ke home). Gift card: dukung Apple Wallet, tampilin kode, QR code minimal 120 × 120px, logo atau shop.name (24 Template per Halaman > gift_card.liquid). Password: logo atau shop.name, shop.password_message, cara masukin password storefront (24 Template per Halaman > password).
8. Konsistensi dan Fungsionalitas
- Konten hasil rich text editor (
h1–h6, blockquote,ul,ol) konsisten di semua template: artikel blog, deskripsi produk, deskripsi koleksi. - Script di theme harus di-host di server Shopify, kecuali library pihak ketiga yang disetujui.
- Dilarang JavaScript atau kode yang mengganggu atau menambah fitur native Shopify di theme editor atau admin (54 Best Practices Umum).
- Link ke domain Shopify boleh punya banyak atribut tapi wajib
rel="nofollow". - Aset di-link pakai URL protocol-relative;
http/httpseksplisit gak diizinkan. - Lisensi yang tepat buat semua plugin dan gambar pihak ketiga.
- Theme gak boleh punya fungsi yang bergantung ke app, dan gak boleh punya fitur ala app yang butuh akses API buat lengkap: wishlist, penjadwalan, kode diskon level cart, feed Instagram. Fitur setengah jadi yang mirip app ditolak.
- Gak boleh menipu merchant atau pelanggan dengan data atau klaim palsu: countdown fiktif, stok palsu, hitungan pengunjung palsu.
9. Kompatibilitas Browser
- Desktop: Safari dua rilis terakhir (Mac); Chrome tiga rilis terakhir (Mac dan PC); Firefox tiga rilis terakhir (Mac dan PC); Edge dua rilis terakhir (PC).
- Mobile: theme harus responsif; Mobile Safari dua rilis terakhir (iOS); Chrome Mobile tiga rilis terakhir (Android dan iOS); Samsung Internet dua rilis terakhir (Android).
- Webview: browsing dan pembelian harus jalan di webview Instagram, Facebook, dan Pinterest (rilis terakhir, Android dan iOS).
10. Aset
Theme gak boleh pakai Sass atau nyertain file .scss / .scss.liquid; pakai CSS native, tulis atau compile ke .css / .css.liquid. Theme gak boleh nyertain file .css / .js yang sudah di-minify, kecuali ES6 dan library pihak ketiga, karena Shopify otomatis me-minify CSS dan JavaScript ES5 waktu diminta storefront (57 Performance Dasar, Metrik, dan Cara Ngukur > 3. Minifikasi). Kode yang belum di-minify juga bikin reviewer bisa baca kodenya.
11. SEO
Wajib ada snippet metadata SEO dengan title, meta description, dan canonical URL (48 SEO Metadata, hreflang, robots.txt > Metadata di head); wajib rich product snippets Google (structured data, tes pakai Structured Data Testing Tool); dan theme gak boleh nyertain robots.txt.liquid (25 Template Spesial robots.txt, llms.txt, agents.md).
12. Aksesibilitas
Semua bagian halaman bisa diakses keyboard, termasuk navigasi dropdown; elemen yang bisa difokus punya focus state terlihat; semua gambar punya alt lewat image.alt atau image_tag: alt:; input form punya ID unik dan label dengan for yang cocok; HTML valid; kontras 4.5:1 buat teks utama, 3:1 buat teks di atas 18pt dan elemen non-teks (border, ikon); urutan fokus keyboard = urutan DOM (atas-bawah, kiri-kanan); touch target minimal 24 × 24 CSS px (kecuali teks inline dan pengecualian WCAG); heading h1–h6 tampak berbeda satu sama lain. Detailnya di 55 Accessibility.
13. Media Sosial
Ada set ikon media sosial yang bisa dipilih; ada tag Open Graph dan Twitter card; teks placeholder media sosial dibiarkan kosong.
14. Settings
1. Dasar
Setting section, block, dan preset dinamai jelas dan disusun sesuai ekspektasi merchant, tanpa block bersarang terlalu dalam. Label dan teks info bebas typo dan gramatikal; nilai default konten nunjukin cara pakai setting, bukan Lorem Ipsum atau konten demo; wajib ada setting favicon; upload logo jalan buat rasio apa pun (landscape atau portrait); semua setting punya label; setting link_list di Header/Footer punya default main-menu atau footer; default buat setting sumber daya (misalnya produk) harus ngerujuk sumber daya yang ada; setting metaobject dan metaobject_list cuma boleh pakai definisi standar sebagai metaobject_type, bukan kustom atau milik app; wajib section theme_info (32 Config settings_schema.json, settings_data.json, markets.json > 1. theme_info: Metadata Theme).
2. Theme Editor
Perubahan di theme editor harus tercermin di preview. Kalau gak, cek request.design_mode dan event editor di 54 Best Practices Umum > 1. Event JavaScript.
3. Gaya Teks
- Nama section, preset, kategori dalam sentence case (cuma kata pertama dan nama diri yang kapital, seperti “Facebook”).
- Nama setting deskriptif buat opsi ganda; hindari opsi bernomor kecuali warna dan palet:
❌
Logo position on large screens: Position 1, Position 2, Position 3
Theme sections: Image 1, Image 2, Image 3✅
Logo position on large screens: Middle left, Top left, Top center
Theme sections: Collage, Image banner, Image with text- Bahasa yang intuitif: “Horizontal position” bukan “X position”, “Button label” bukan “CTA label”.
- American English: canceled, catalog, center, color, customize, dialog, gray, organize (bukan cancelled, catalogue, centre, colour, customise, dialogue, grey, organise).
- Gak pakai ampersand (&).
- Pernyataan deklaratif, bukan pertanyaan: “Use a custom logo”, bukan “Use a custom logo?”.
- Subjek section disebut sekali di heading, gak diulang di tiap setting (“slideshow”, “slideshow color”, “slideshow image” ❌).
- Kalimat aktif; semua tombol dan aksi dimulai dengan kata kerja.
- Format spesifikasi teknis:
64 x 64px required,3:2 aspect ratio recommended,1200 x 300px .jpg recommended,32 words max, “Use basic HTML to format text”.
4. Terminologi
Pakai istilah Shopify: home page (bukan homepage), top bar (bukan meta-nav/search bar), bottom bar (bukan below footer/legal), slideshow (bukan slider), checkout (bukan check out), heading (bukan title), subheading, body text (bukan main text), signup (bukan sign-up), favicon, sidebar, button label (bukan button name), social media dan social media icons, navigation buat semua elemen navigasi, main menu / secondary menu / footer menu buat menu spesifik, cart type dengan opsi “drawer”, “page”, “modal” (bukan Ajax cart), .png (bukan PNG). Tiga kata kerja setting: use buat opsi yang butuh langkah lanjutan (upload file), show buat nampilin/nyembunyiin elemen dasar, enable buat app/plugin atau yang ngubah layout secara signifikan.
5. Nama Section dan Preset
Nama section sesuai fungsinya: Header, Featured products, Featured collections, Slideshow, Image gallery, Logo list, Newsletter, Map, Blog posts, Testimonials, Footer. Nama preset sesuai tipe kontennya: Image and text, Map, Columns, Blog articles. Preset dengan gambar, video, atau ikon harus nampilin placeholder: ikon gambar buat gambar non-produk, ikon logo buat daftar logo, lifestyle image buat slideshow / gambar dengan teks / gambar full-width, dan ID video YouTube default buat video.
15. Font Picker
Semua font pakai setting font_picker (30 Settings dan Input Settings > 4. font_picker); ada font default (misalnya default: work_sans_n6); font di default dan preset harus font yang masih tersedia (31 Dynamic Sources dan Fonts > 5. Daftar Font yang Tersedia); CSS memuat varian bold, italic, bold-italic lewat font_modify; font kustom gak diterima.
16. Sistem Warna
Minimal 4 warna; tiap setting warna background punya pasangan setting foreground; setting warna pakai type: color (56 Design dan Color System > Sistem Warna).
17. Gambar Responsif
Gambar harus pakai strategi responsif (srcset/sizes, 59 Performance Gambar dan LCP), kecuali gambar kecil seperti ikon; dan gambar dimuat hanya waktu dibutuhkan buat ngurangin jumlah gambar awal per halaman.
18. Penamaan Theme dan Preset
1. Syarat
Nama theme dan preset harus berbeda dari produk Shopify (bukan Shopify, Unite, Polaris), dari nama perusahaan (nama Partner account otomatis tampil di listing), dari website, platform, atau manfaat SEO (bukan Performance, Mobile, Sales), dari industri dan koleksi Theme Store (bukan Fashion, Electronics, Jewelry). Satu preset harus bernama sama dengan theme induknya. Nama 1–2 kata, kurang dari 30 karakter, unik dari theme yang udah ada.
2. Pedoman
Merangkum tujuan preset; ngasih gambaran ke merchant soal ide inti dan target demografinya; pakai kata benda (lebih melekat dan berkarakter); gampang dieja dan diucapin; aman lintas dialek (cek kamus idiom); beda dari nama theme di platform lain. Hindari nama trendi, ejaan aneh (gampang kena autocorrect), nama panjang, dan nama yang sama dengan theme di platform lain atau di Theme Store.
3. Preset di Zip Submission
Kalau ada lebih dari satu preset, sertakan set template unik buat tiap preset di folder /listings, isinya mirip demo store terkait:
.
├── assets
├── blocks
├── config
├── layout
├── locales
├── listings
├── preset-name-one
└── templates
└── *.json
└── sections (optional)
└── *.json
└── another-preset-name
└── templates
└── *.json
└── sections (optional)
└── *.json
├── sections
├── snippets
└── templatesKalau cuma satu preset, /listings gak perlu. Folder sections di tiap preset opsional buat section group khusus preset. Detail struktur zip di 73 Sukses di Theme Store.
4. Paritas Preset dengan Demo
Waktu diinstal, theme harus cocok dengan tampilan demo store; tiap preset punya install state yang mencerminkan demonya; layout, warna, dan tipografi harus sama; pakai teks demo yang sesuai (sesuaikan atau hapus teks yang bisa bikin tiket support; teks spesifik industri disarankan tapi opsional); gambar demo gak ikut waktu instal.
19. Versi dan Release Notes
Tiap submit, pertama kali atau update, theme harus punya nomor versi dan release notes yang nyorot fitur utama versi itu (73 Sukses di Theme Store).
20. Demo Store
Bikin demo store sebagai Client transfer store dari Partner Dashboard. Development store dengan developer preview aktif gak bisa ditransfer, jadi jangan bikin demo di store yang punya preview {% block %}/{% partial %} dari 35 Developer Preview tag {% block %} dan {% partial %}.
1. Syarat
Tiap preset punya minimal satu demo store; tiap demo cocok dengan industri utama dan ukuran katalog yang di-tag ke preset; install store tiap preset cocok dengan ekspektasi demonya; demo pakai Bogus Gateway atau Shopify Payments test mode dengan opsi checkout lain dinonaktifin; semua halaman pakai teks autentik (tanpa Lorem Ipsum, teks onboarding, atau kata kasar); link powered_by_link gak diubah dan cuma berisi powered_by_link; tanpa link afiliasi; link ke domain Shopify pakai rel="nofollow". Demo cuma boleh nampilin yang built-in di theme: tanpa teks atau tombol yang ditanam di gambar (kecuali teks di produk fisik, infografik, badge, atau gambar Instagram), tanpa GIF animasi yang bisa disalahartikan sebagai fitur theme, tanpa app (pengecualian terbatas buat app review produk gratis dan app terjemahan gratis, dengan semua konten diterjemahkan). Hak atas semua aset demo harus diperoleh sesuai Partner Agreement; izin brand harus langsung dari pemiliknya. Sumber gambar bebas royalti: Shopify Burst.
2. Rekomendasi (Gak Wajib)
Sebutin sumber gambar produk di deskripsi; pakai versi theme terbaru; manfaatin fitur built-in Shopify; tunjukin keberagaman: produk diskon, produk atau varian habis, produk multi-varian, produk gift card.
21. Dokumentasi dan Form Kontak
Wajib ada dokumentasi theme dan form kontak support publik, siap sebelum peluncuran, dan di-link dari halaman listing. Dokumentasi harus bebas typo, konsisten dengan teks di setting theme, dijaga tetap mutakhir seiring perubahan Shopify dan theme, dan sebaiknya punya FAQ. Cantumin kebijakan support yang jelas: kamu wajib memperbaiki bug dan menjawab pertanyaan merchant, boleh nawarin layanan tambahan (kustomisasi, integrasi app, bantuan update) tapi gak boleh dimasukin ke harga theme. Kalau ada tutorial custom code, sebutin apakah didukung, ingatin merchant buat duplikasi theme sebelum edit kode, dan saranin sewa Shopify Partner.
Form kontak: kalau berupa modal, harus mobile-friendly dan bisa di-link dari Theme Store; hindari pertanyaan gak perlu (budget, telepon, tipe proyek). Field yang disarankan: nama, email, URL toko (dengan contoh seperti http://www.storename.myshopify.com), deskripsi masalah (text area), upload file (screenshot masalah), auto-responder (biar merchant gak nanya ke Shopify apakah permintaannya diterima), nama theme (kalau kamu punya beberapa), subject (auto-isi subjek email).
22. Mendukung Theme
Kamu wajib bantu merchant dengan pertanyaan terkait theme, balas dalam dua hari kerja, memperbaiki masalah teknis (layout rusak, dead link, error logika) tepat waktu, dan memperbaiki bug kritis segera, atau theme bisa dihapus sementara dari Theme Store.
Tips instalasi merchant (yang sering jadi tiket support): file .json gak boleh berisi sumber daya khusus admin demo kamu (metafield kustom, URL shopify://); link_list di Header/Footer default main-menu / footer; default setting sumber daya harus ada di semua toko; metaobject cuma definisi standar.
Perkiraan beban: jadi Theme Partner adalah pekerjaan penuh waktu, dan semua Theme Partner saat ini punya tim support khusus. Merchant menghasilkan ribuan tiket support per bulan buat theme berbayar, dan terus tumbuh. Partner baru biasanya meremehkan waktu yang dibutuhkan buat support.
Ringkasan
- Theme Store: kenali requirements → tes → submit → kembangin bisnis; revenue share 15% dari gross sales, plus fee pemrosesan 2,9% dan pajak; gak ada biaya submit.
- Hanya Skeleton Theme yang disetujui sebagai dasar; turunan Dawn/Horizon ditolak; theme harus eksklusif di Theme Store, tanpa kredit desainer atau link afiliasi, dan secara arsitektural unik (perubahan kosmetik gak cukup).
- Desain dan UX: art direction yang menyasar industri, grid dan hierarki jelas, layout tahan variasi konten, tipografi dan interaksi konsisten, setting merchant-first, belanja tanpa friksi, demo realistis tanpa Lorem Ipsum.
- Fitur wajib (20+): sections everywhere, diskon, accelerated checkout (produk + cart, warna asli), faceted filtering (koleksi + search), gift card, focal point,
page_image, pemilih negara dan bahasa, menu bertingkat, newsletter, pickup availability, related + complementary recommendations, rich media, search + predictive, selling plan di cart, Shop Pay Installments, unit pricing (koleksi + produk + cart), gambar varian, Follow on Shop,<shopify-account>di header desktop dan mobile. - 16 template wajib (semua JSON kecuali
theme.liquiddangift_card.liquid), tanpamarkets.json; section Custom Liquid dan block Custom Liquid; header/footer di section group; block per elemen di section produk utama; app block@appdi produk utama dan featured product. - Lighthouse: performa rata-rata ≥ 60, aksesibilitas ≥ 90, home + produk + koleksi, desktop + mobile, dataset benchmark, section berisi konten nyata.
- Per halaman:
<html lang="{{ request.locale.iso_code }}">,routes, jangan ubahcontent_for_header; produk (semua info, first available variant, callback harga, swatch, gift card recipient); koleksi (sort, kosong,price_varies, paginasi); cart (line item lengkap, refresh total, cart notes, selling plan, diskon otomatis); blog (excerpt_or_content), article (published_at, komentar tanpa moderasi), search (object_type), 404, gift card (Apple Wallet, QR 120px), password. - Fungsionalitas: RTE konsisten, script di Shopify, gak ganggu editor/admin,
rel="nofollow"ke domain Shopify, URL protocol-relative, lisensi, tanpa fitur ala app atau ketergantungan app, tanpa urgency palsu; browser desktop/mobile/webview yang didukung; tanpa Sass dan tanpa file minified. - SEO (title, description, canonical, rich snippets, tanpa
robots.txt.liquid), aksesibilitas (keyboard, focus, alt, label, kontras 4.5:1 / 3:1, target 24px, heading berbeda), media sosial (ikon, OG, Twitter card, placeholder kosong). - Settings: label bebas typo, favicon,
theme_info,link_listdefaultmain-menu/footer, sentence case, American English, tanpa&, deklaratif, kata kerja di tombol, terminologi Shopify (home page, heading, signup, use/show/enable), nama section dan preset fungsional, placeholder konten. font_pickerdengan default, font tersedia, varian bold/italic viafont_modify, tanpa font kustom; minimal 4 warnatype: colorberpasangan foreground/background; gambar responsif dan lazy.- Nama theme/preset 1–2 kata < 30 karakter, kata benda, bukan produk Shopify/perusahaan/industri/SEO, satu preset senama theme; multi-preset lewat
/listings/<preset>/templates; install state = demo (gambar gak ikut); versi + release notes tiap submit. - Demo store = client transfer store (bukan dev store dengan developer preview), Bogus Gateway/test mode, teks autentik,
powered_by_linkutuh, tanpa app dan tanpa fitur palsu di gambar, hak aset jelas. - Dokumentasi + form kontak publik sebelum launch, kebijakan support jelas, form dengan URL toko, deskripsi, upload, auto-responder; balas ≤ 2 hari kerja, bug kritis segera, support adalah pekerjaan penuh waktu.
Bab selanjutnya kita bahas cara ngetes theme sebelum submit: checklist pengujian per fitur dan per halaman, dan aset serta data uji yang disediain Shopify buat mastiin theme kamu fleksibel, tangguh, dan performan.