Theme kamu lolos review dari 72 Review, Listing, dan Submit dan tayang. Sekarang pekerjaan sebenarnya dimulai: theme yang disetujui otomatis di-listing, dan buat tetap di sana kamu wajib ngasih update berkelanjutan, ngedukung merchant, dan ngikutin aturan Partner Program. Bab terakhir bagian Theme Store ini soal siklus itu. Satu catatan awal dari Shopify: theme gak bisa ditransfer antar Partner account, jadi pilih akun yang tepat dari awal.

Update Theme

Setelah terbit, kamu masuk proses iteratif: nimbang umpan balik merchant, terus berinovasi lewat QA rutin, dan mengintegrasikan update yang diwajibkan Shopify (misalnya fitur baru yang jadi requirement, seperti gelombang Mei–Juli 2025 waktu semua theme lama harus disubmit ulang dengan struktur /listings baru). Ngasih update berkelanjutan adalah syarat buat tetap di Theme Store.

Buat ngehindarin kelelahan update di merchant, jeda antar update minimal empat minggu. Pengecualian: theme baru boleh update tiap dua minggu selama dua bulan pertama.

1. Proses Update

Update disubmit sebagai ZIP lewat Partner Dashboard, dengan nomor versi (ditentukan isi update) dan release notes. Tim review utamanya ngereview update di jam kerja EST, Senin–Jumat, jadi buat update penting, submit awal minggu dan awal hari kerja; submit di luar jam itu bisa memperlambat merchant nerima update. Update yang diwajibkan Shopify bisa punya tenggat buat nyesuaiin tanggal rilis fitur.

Setelah update lolos dan terbit, kamu dapat email otomatis. Kalau kamu nambah preset baru, kamu harus edit listing dan ngisi info pemasarannya dulu; preset baru baru tampil setelah info wajibnya disubmit lewat halaman edit listing. Theme Store cuma nampilin versi terbaru theme dan preset; review dari semua versi sebelumnya tampil di listing yang sama; dan kamu gak bisa ngasih harga beda per versi.

2. Update Manual vs Otomatis

Tergantung isi versi baru, theme merchant di-update lewat salah satu dari dua cara, dan karena tiap tipe punya proses berbeda, kelompokkan perubahan berdasarkan tipenya sebisa mungkin. Update otomatis lebih ramah merchant karena gak butuh tindakan, jadi ngelompokin perubahan bikin lebih banyak merchant dapat lebih banyak update otomatis.

Update manual dipublikasiin kalau ada minimal satu dari perubahan kode berikut:

  • ID setting diubah atau dihapus.
  • Tipe setting diubah atau dihapus.
  • Nilai min setting range dinaikin.
  • Nilai max setting range diturunin.
  • Section atau block dihapus.

Perubahan ini bisa membatalkan setting merchant saat ini atau maksa merchant ninjau ulang konfigurasinya. Ngubah ID setting sama saja dengan ngehapus setting lama dan nambah yang baru dengan nilai default, pengalaman merchant yang buruk dan harus dihindari. Waktu update manual terbit, merchant lihat notifikasi di Online store > Themes, dan theme versi baru dipasang sebagai theme unpublished di library mereka buat ditinjau sebelum dipublish; theme induknya gak diubah.

Update otomatis berlaku kalau gak ada perubahan yang masuk kategori manual. Versi baru menggantikan versi terpasang tanpa bikin theme baru. Syaratnya: semua file theme dalam keadaan asli, kecuali settings_data.json dan file JSON di /templates. Artinya merchant yang ngedit kode theme (Liquid, CSS, JS, bahkan section group JSON di /sections) gak bisa di-update otomatis; mereka dapat notifikasi buat nerapin update ke salinan unpublished yang bisa ditinjau dan dipublish. Ini alasan kuat kenapa kustomisasi lewat setting dan theme app extension lebih baik daripada ngedit kode (03 Kustomisasi Theme Milik Merchant).

3. Pertimbangan Versi Baru

  • Kalau kamu ngubah setting sehingga nilai merchant gak valid lagi, nilainya direset ke default versi baru. Pertahankan default yang sama sebisa mungkin.
  • Kalau kamu ngubah class section atau nama class CSS, custom CSS merchant bisa rusak. Hindari me-rename class yang ada kecuali perlu, dan dokumentasiin di release notes.
  • Gak bisa disubmit sama sekali (bikin theme yang terpasang rusak dan gak layak update): ngurangin limit instance section (26 Sections dan Section Schema > 4. limit); ngurangin batas block di section; nambah pembatasan section group lewat disabled_on/enabled_on (26 Sections dan Section Schema > 15. disabled_on); nambah pembatasan yang nyegah section tampil di template tertentu. Singkatnya: kamu boleh memperluas apa yang boleh dilakukan merchant, gak boleh menyempitkan.

4. Versioning

Pakai semantic versioning X.Y.Z:

  • X (major): fitur yang gak backward compatible: ngubah nilai setting, ngehapus setting/section/block, nambah global setting. Contoh 1.4.8 → 2.0.0. Perhatiin ini hampir selalu jadi update manual.
  • Y (minor): fitur backward compatible: ngubah label atau default setting yang ada, nambah section atau block, ngubah desain visual atau fungsi section/block tanpa ngubah schema setting-nya. Contoh 1.4.8 → 1.5.0.
  • Z (maintenance): perbaikan bug atau keamanan, perbaikan kode non-visual. Contoh 1.4.8 → 1.4.9.

Versinya ditulis di theme_version dalam theme_info (32 Config settings_schema.json, settings_data.json, markets.json > 1. theme_info: Metadata Theme).

5. Release Notes

Tiap versi butuh release notes yang nyorot fitur utamanya. Audiensnya merchant, jadi bahasanya buat merchant: bukan changelog, tapi daftar kurasi hal yang berdampak ke merchant atau pembelinya. Masukin semua perubahan yang dilihat pengguna, keluarkan perubahan yang cuma buat developer, dan cuma info rilis saat ini.

Sertakan sebagai file release-notes.md di root zip. File ini cuma wajib setelah theme terbit, dan harus dikeluarkan selama proses review awal. Isinya: deskripsi ringkas perubahan terpenting, lalu daftar perubahan di bawah heading ### Added, ### Changed, ### Removed, ### Security, ### Fixes and other improvements, tiap perubahan sebagai bullet, dan perubahan yang perlu perhatian diawali Important: biar disorot waktu dirender:

We've added the ability to add Shop Pay Installment payment options for your customers, removed the Instagram section, and changed how the social media section works.
### Added
- Important: Added search faceted filtering
- Added selling plans to cart notifications
### Changed
- Important: Changed default social media sharing image with the one from the Shopify admin. You can add a default image to be used when a featured image for the page can't be found.
### Removed
- Removed the Instagram section since the API has been deprecated with no suitable replacement. From now on you'll need to switch to using an app to display your Instagram feed.
### Security
- Fixed security issues
### Fixes and other improvements
- The collection page sidebar is now aligned with the utility bar
- The products in the collection 'list-view' no longer have a long blue outline when viewed on an iOS device
- Fixed the 'forgot your password' link on the customer login page
- Fixed collection list pagination displaying incorrectly with large collection sets

❌ gaya changelog developer

### Changed
- Refactored product-form.js to use custom elements
- Renamed .product__price to .price

✅ gaya merchant, dengan dampak dan dokumentasi class yang di-rename

### Changed
- Important: The product form now updates price and availability faster when you switch variants. If you added custom CSS targeting the old price class, update it to the new class name (see documentation).

6. Urgent Update

Urgent update adalah update yang merchant butuhkan segera buat ngejalanin bisnis tanpa gangguan; bisa manual atau otomatis, dan status “urgent” cuma buat ngasih tahu tim review bahwa ini lebih kritis dari update biasa. Biasanya cuma update yang ngatasin masalah alur pembelian yang dianggap urgent: dari halaman produk ke checkout lewat tombol accelerated checkout, atau dari cart ke checkout lewat tombol checkout atau accelerated checkout. Update penting yang gak nyentuh alur pembelian bisa dikonsultasiin ke Theme Partner Manager sebelum submit.

7. Nambah Preset

Preset ngasih sampai lima desain pra-konfigurasi dari satu codebase: kombinasi layout, palet atau color scheme, tipografi, dan elemen visual lain (32 Config settings_schema.json, settings_data.json, markets.json > 2. Theme Presets). Semua preset ada dalam satu paket theme, dan tiap preset dapat halaman listing sendiri yang diselaraskan ke industri utama dan ukuran katalog. Langkahnya:

  1. Edit kode buat nambah preset di settings_data.json, dengan struktur file /listings/<preset-name>/templates/*.json (dan sections/ opsional) seperti di 70 Theme Store Gambaran dan Requirements > 3. Preset di Zip Submission.
  2. Submit ZIP baru lewat Partner Dashboard sebagai update.
  3. Sertakan URL demo dan password preset baru di form submission.
  4. Tim review ngetes, lalu email keputusan.
  5. Setelah disetujui, edit listing buat ngisi info pemasaran dan demo preset baru; preset baru tampil setelah field wajibnya lengkap dan disubmit.

8. Praktik Terbaik Struktur Zip

Contoh yang lolos validasi: theme Embiggen (nama di settings_schema.json) dengan lima preset Embiggen, Canine Gourmand, Zenful, Embox, 7th Street:

[
  {
    "current": {...},
    "presets": {
         "Embiggen": {...},
         "Canine Gourmand": {...},
         "Zenful": {...},
         "Embox": {...},
         "7th Street": {...},
    },
  }
]

Nama preset: huruf besar-kecil sesuai kalimat, < 30 karakter dan 1–2 kata, satu preset senama theme; tanpa karakter khusus (-, ., é) kecuali satu spasi, dan gak lebih dari dua kata.

Struktur zip-nya:

/assets
/blocks
/config
/layout
/locales
/listings
	/embiggen
		/templates
			404.json
			index.json
			product.json
	/canine-gourmand
		/templates
			index.json
			blog.json
			collection.json
			cart.json
		/sections
			header-group.json
	/zenful
		/templates
			blog.json
	/embox
		/templates
			index.json
			404.json
			product.json
			cart.json
			collection.json
			blog.json
		/sections
			header-group.json
			footer-group.json
	/7th-street
		/templates
			index.json
			404.json
			product.json
			cart.json
			collection.json
			blog.json
		/sections
			header-group.json
			footer-group.json
/sections
/snippets
/templates

Aturannya: cuma sertakan file .json yang unik buat preset itu, gak perlu duplikasi file yang identik, jadi tiap folder preset boleh punya jumlah file berbeda (Zenful cuma blog.json). Folder root /templates dan /sections berisi set “base” lengkap; /templates tiap preset menimpa base-nya, /sections tiap preset opsional dan menimpa section group base kalau ada perbedaan khusus preset. Nama folder preset kebab-case biar bisa dipakai di URL (hello there → hello-there), tanpa spasi atau karakter khusus. Jangan sertakan JSON “demo” (atau section di dalamnya) yang gak seharusnya dipakai merchant, yaitu yang cuma memamerkan kemampuan theme, bukan yang merchant pakai waktu install.

Ngelola Review Merchant

Setelah install, merchant bisa nulis review dengan rating I love it!, Neutral, atau I’m not happy, plus komentar. Kamu dapat email tiap kali ada review baru atau review diubah. Review yang melanggar Partner Program Agreement dilarang dan bisa berujung tindakan ke akun kamu: review palsu atau menyesatkan, dan insentif review.

1. Cara Minta Review

Boleh minta review asal gak mendorong review positif: bahasa netral, dan gak pernah nawarin sesuatu sebagai imbalan.

✅ pantas

We value feedback! It helps us make our product better and keeps us energized. Let us know how we're doing.

❌ gak pantas

Like our service? Leave us a positive review!
Get free customizations by leaving us a review!
Positive feedback keeps us going! Help by leaving a review now!

Yang pertama cuma memotivasi pengguna yang udah puas; yang kedua ngasih sesuatu gratis, artinya mempengaruhi; yang ketiga nyiratin review harus positif.

2. Cara Bales Review

Balesan bantu nemuin masalah, engage merchant, dan nunjukin ke merchant lain seberapa aktif kamu. Yang bisa bales: owner akun atau staff dengan permission Manage public listings. Langkah: Partner Dashboard → Themes → pilih theme → di kartu Total reviews klik View all reviews (buka listing di Theme Store, bagian Reviews) → Reply di bawah review → tulis → Submit reply. Balesan tampil di bawah review, bisa diedit kapan saja, dan cuma balesan terbaru yang tampil. Merchant dapat notifikasi dan bisa mengedit review-nya termasuk rating; review yang di-update menggantikan yang lama dan kamu dapat email.

Tips: bales dulu review dengan rating terendah atau yang nyebut masalah; bales cepat biar percakapan produktif; bahasa konsisten dengan brand; jelas dan ringkas; tanpa jargon teknis, bahasa marketing, atau spam; personal tapi jangan bagikan info pribadi atau finansial (nama lengkap, kontak, percakapan privat); semua orang bisa lihat balesanmu, jadi profesional, hormat, dan empatik.

3. Review Negatif

Review negatif bantu nemuin masalah. Kalau sebabnya bug, kerja sama dengan merchant buat memperbaikinya, lalu boleh minta merchant mempertimbangkan meng-update review-nya, tanpa paksaan dan tanpa insentif. Kalau kamu gak setuju dengan isinya, bales buat memahami umpan baliknya, dan bagikan perspektif kamu dengan hormat.

Shopify turun tangan (mengedit atau menghapus review) buat: konten gak pantas (umpatan, hinaan, ancaman); informasi pribadi (telepon, email, alamat); konflik kepentingan (review yang ditawari imbalan, atau review dari developer theme dan karyawan terafiliasi di theme sendiri atau theme pesaing). Review seperti itu bisa dilaporkan.

Brand Assets: Theme Store Ad Badge

Kamu boleh memasarkan theme di luar Theme Store, tapi alur pembelian harus dialihkan ke Theme Store, karena theme yang di-listing cuma boleh dijual di sana. Buat itu Shopify nyediain Shopify Theme Store Ad Badge resmi (badge utama dan alternatif, unduh di sini) buat iklan display digital dan properti digital: website, media sosial, email, cetak.

Badge yang seragam dan cuma bisa dipakai Partner aktif dan disetujui bikin branding ekosistem konsisten dan memperkuat Theme Store sebagai sumber tepercaya, jadi badge gak boleh diubah: gak boleh di-crop, direntang atau dipipihkan, diputar atau dimiringkan, diubah warnanya, ditambah gradien atau bayangan, dianimasikan, ditumpuk gambar lain, ditambah border, atau ditaruh di atas logo atau gambar bermerek lain, dan hindari background ramai. Tinggi minimal 30px, dengan ruang kosong di sekelilingnya minimal seukuran ikon tas Shopify di badge, tanpa tipografi atau grafik apa pun di ruang itu. Semua hyperlink dari badge harus ke halaman listing theme di Theme Store (bukan URL download/install), dan alt text-nya harus berisi nama theme dan rujukan ke Shopify Theme Store. Penggunaannya tunduk ke Trademark Usage Guidelines Shopify dan otorisasinya buat Partner ada di Part A, Section 5 Partner Program Agreement.

Tindakan yang Dilarang

Pelanggaran Partner Program Agreement ditindak sesuai kebijaksanaan tim Theme Store: email yang butuh tindakan dalam tenggat, penghapusan theme segera, atau dikeluarkan dari Partner Program. Daftarnya gak lengkap, dan perilaku lain yang dianggap gak bisa diterima atau berbahaya juga bisa berujung penghapusan.

  • Pengalaman merchant: terus-menerus gak merespons permintaan support; menjual atau menyalahgunakan data merchant; gagal ngasih layanan konsisten sehingga theme punya error kritis dan “utang support”; gak ngasih pemberitahuan cukup sebelum nyabut theme; review yang melanggar (palsu, menyesatkan, berinsentif).
  • Pemasaran tanpa izin: tanpa spam, taktik ilegal, atau invasif; email dan SMS cuma ke merchant yang aktif memasang theme kamu atau jelas opt-in; tanpa link afiliasi di listing atau file theme.
  • Pelanggaran requirements: mengubah theme atau listing setelah terbit sampai gak memenuhi requirements; error fatal yang bikin theme gagal install; pelanggaran hak cipta atau memakai codebase theme pihak ketiga; menjual atau mendistribusikan theme yang di-listing di luar Theme Store.

Theme lain yang melanggar bisa dilaporkan lewat form Report a Partner violation.

Nyabut Theme dari Theme Store

Kesuksesan bisnis merchant sangat bergantung ke theme-nya, dan mencabut theme bisa berdampak buruk ke mereka: waktu beli, merchant berharap theme-nya termasuk support, update platform ke depan, dan perbaikan bug. Mencabut theme harus jadi pilihan terakhir, dan kalau alasannya penjualan buruk, coba dulu cara-cara di bab ini.

Prosedurnya: hubungi Partner Support lewat Partner Dashboard, sampaikan bahwa kamu ingin memberi tahu tim Theme Store Operations soal niat mencabut theme, beserta alasannya. Selama menunggu pencabutan, kamu tetap wajib ngasih support dan perbaikan bug, dan tetap ngedukung merchant yang ada dengan perbaikan bug umum dan pemeliharaan minimal satu bulan setelah pencabutan. Gak ngikutin ini bisa merusak hubungan kamu dengan Shopify.

Kalau theme udah dicabut atau gak aktif lebih dari dua tahun, Shopify berhak memakai ulang namanya buat theme lain.

Ringkasan

  1. Theme yang disetujui otomatis tayang; buat tetap tayang wajib update berkelanjutan, jeda ≥ 4 minggu (theme baru: 2 minggu selama 2 bulan pertama); theme gak bisa dipindah antar Partner account.
  2. Update = ZIP + versi + release notes lewat Partner Dashboard; direview jam EST Senin–Jumat (submit awal minggu); cuma versi terbaru yang tampil, review lintas versi digabung, harga gak bisa beda per versi; preset baru butuh edit listing.
  3. Manual kalau ID/tipe setting berubah atau dihapus, min range naik, max range turun, section/block dihapus (merchant dapat theme unpublished baru); otomatis kalau gak ada itu dan semua file selain settings_data.json dan /templates/*.json masih asli; kelompokkan perubahan per tipe.
  4. Pertahankan default, jangan rename class CSS tanpa dokumentasi; gak bisa disubmit kalau ngurangin limit section, batas block, atau nambah pembatasan enabled_on/disabled_on/template.
  5. SemVer: major = gak kompatibel (ubah nilai setting, hapus setting/section/block, global setting baru), minor = kompatibel (label/default, section/block baru, desain tanpa ubah schema), patch = bug/keamanan/non-visual; tulis di theme_info.
  6. release-notes.md di root zip (cuma setelah terbit, keluarkan saat review awal): deskripsi + ### Added/Changed/Removed/Security/Fixes and other improvements, bullet, Important: buat sorotan; bahasa merchant, bukan changelog developer.
  7. Urgent = masalah alur pembelian (produk → checkout, cart → checkout); yang lain konsultasi Theme Partner Manager.
  8. Sampai 5 preset dalam satu paket, tiap preset listing sendiri; /listings/<kebab-case>/templates (+ sections opsional) cuma berisi file yang unik, root = base lengkap, tanpa JSON demo; nama preset 1–2 kata < 30 karakter tanpa karakter khusus, satu senama theme.
  9. Review: rating I love it / Neutral / I’m not happy; minta dengan bahasa netral tanpa insentif; bales (owner atau Manage public listings) cepat, personal, tanpa info pribadi, mulai dari rating terendah; review negatif → perbaiki bersama, boleh minta update tanpa paksaan; Shopify hapus review gak pantas, berisi info pribadi, atau konflik kepentingan.
  10. Ad Badge: alur beli harus ke Theme Store; badge gak boleh diubah, tinggi ≥ 30px, clear space seukuran ikon tas, link ke halaman listing, alt text nyebut nama theme dan Theme Store.
  11. Dilarang: abai support, jual data merchant, spam/SMS ke non-pengguna, link afiliasi, ubah theme sampai gagal requirements, error install fatal, hak cipta, distribusi di luar Theme Store; sanksi dari email bertenggat sampai dikeluarkan dari Partner Program.
  12. Nyabut theme = pilihan terakhir via Partner Support dengan alasan; support tetap jalan selama menunggu dan ≥ 1 bulan setelahnya; nama theme yang gak aktif 2 tahun bisa dipakai ulang Shopify.

Bab selanjutnya kita mundur ke alat lama: Shopify CLI 2.x berbasis Ruby yang udah deprecated, gimana cara kerjanya dulu, perintah-perintahnya, dan cara migrasi ke CLI 3.x yang dipakai sepanjang buku ini, supaya kamu bisa baca tutorial dan repo lama tanpa bingung.