Skip to content

Domain, hosting, code and data — in your name, in writing

jagaweb.

E-Dagang Shopify

Structured Data Produk untuk Kedai Dalam Talian Malaysia, Diterangkan

Bacaan 6 minitOleh JagaWeb

Bagaimana structured data Produk berfungsi, apa yang Google perlukan untuk rich results, dan kenapa harga tidak sepadan ialah pelanggaran polisi.

Untuk Apa Sebenarnya Structured Data Produk

Structured data produk ialah blok kod pada laman produk — biasanya JSON-LD — yang menerangkan produk kepada Google secara terus, dalam format yang tidak perlu diteka, berbanding membiarkan Google membuat kesimpulan tentang harga daripada di mana sahaja "RM199" kebetulan terletak secara visual pada laman yang dipaparkan. Jika dilakukan dengan betul, begitulah cara produk boleh memaparkan harga, penilaian bintang, atau status stok terus dalam hasil carian. Jika dilakukan secara salah, atau dibiarkan tidak selari dengan laman sebenar, ia paling baik pun diabaikan — dan paling buruk, untuk kedai yang juga menjalankan Google Merchant Center, ia menjadi punca produk ditolak (disapproved).

Dokumentasi Google membahagikan ini kepada dua pengalaman yang berkaitan tetapi berbeza: product snippets, untuk laman di mana pelawat tidak boleh membeli secara terus, dan merchant listings, untuk laman di mana mereka boleh — kategori yang relevan bagi kedai WooCommerce atau Shopify Malaysia yang menjual terus kepada pembeli.

Apa yang Google Sebenarnya Perlukan

Untuk merchant listing, dokumentasi Google menyenaraikan sifat (properties) yang diperlukan secara jelas. Pada peringkat produk: name dan image, ditambah objek offers yang bersarang (nested). Dalam objek offers itu: price (atau priceSpecification.price), yang mesti nombor sebenar lebih besar daripada sifar, dan priceCurrency, dinyatakan sebagai kod mata wang ISO 4217 tiga huruf.

Untuk kedai Malaysia, kod mata wang itu ialah MYR — bukan "RM," yang merupakan simbol dan label mata wang, bukan kod yang dikehendaki spesifikasi Google, dan bukan dibiarkan kosong, yang menjadikan item itu terus tidak layak.

Selain keperluan ketat itu, Google turut menyenaraikan satu set sifat yang disyorkan-tetapi-semakin-penting: availability, itemCondition, priceValidUntil, hasMerchantReturnPolicy, dan shippingDetails. Tiada satu pun daripada ini berada dalam senarai "wajib" yang ketat, tetapi dua yang terakhir khususnya semakin penting setiap tahun untuk sesuatu listing dipaparkan dengan set ciri penuhnya — kedai yang hanya mengisi keperluan minimum sahaja cenderung mendapat hasil yang lebih ringkas berbanding kedai yang turut mengisytiharkan polisi pemulangan dan butiran penghantaran dalam structured data.

Availability Perlu Mencerminkan Realiti, Bukan Snapshot

Schema.org mentakrifkan satu set nilai khusus untuk availability: InStock, OutOfStock, PreOrder, BackOrder, Discontinued, dan beberapa lagi. Nilai itu perlu datang daripada data stok langsung (live) yang sama yang digunakan oleh storefront anda, dikemas kini apabila ia berubah — bukan nilai yang ditetapkan sekali sahaja semasa produk mula-mula dicipta dan dibiarkan begitu sahaja. Produk yang ditandakan InStock dalam structured data sedangkan laman yang kelihatan menyatakan "Out of stock" adalah tepat jenis ketidaksepadanan (mismatch) yang dibincangkan dalam bahagian seterusnya, dan ia sesuatu yang benar-benar biasa berlaku pada kedai di mana markup schema dan paparan stok ditarik daripada bahagian codebase yang berlainan.

Ralat Pengesahan (Validation) yang Paling Kerap Timbul

Beberapa corak menyumbang kepada kebanyakan masalah structured data yang kami lihat pada laman produk Malaysia:

  • priceCurrency yang tiada. Google tidak menganggap mana-mana mata wang sebagai lalai — tawaran (offer) tanpanya langsung tidak layak untuk pengalaman merchant listing, tidak kira sebaik mana pun perkara lain betul.
  • Harga dibiarkan sifar atau kosong untuk produk "hubungi untuk harga". Keperluan Google bahawa harga mesti lebih besar daripada sifar bermakna skim harga "POA" atau berasaskan pertanyaan (enquiry) tidak layak sama sekali untuk ciri khusus ini — tiada jalan pintas yang boleh mengekalkan rich result sambil menyembunyikan angka.
  • Dua mata wang pada satu URL. Panduan rasmi Google menjelaskan bahawa URL yang berbeza diperlukan bagi setiap mata wang apabila sesuatu produk ditawarkan dalam lebih daripada satu mata wang; satu laman tidak boleh secara sah membawa dua pasangan harga/mata wang untuk tawaran yang sama.
  • Structured data menerangkan varian yang salah. Pada produk boleh konfigur (saiz atau warna berbeza pada harga berbeza), markup yang tidak sepadan dengan apa yang sebenarnya sedang dilihat oleh pembeli pada URL khusus itu adalah ketidaksepadanan dalam keluarga yang sama dengan masalah harga di bawah.

Kenapa Harga Tidak Sepadan Ialah Pelanggaran Polisi, Bukan Ralat Pembundaran

Garis panduan structured data am daripada Google adalah jelas tentang perkara ini: "jangan tandakan (mark up) kandungan yang tidak kelihatan kepada pembaca laman," dan jangan gunakan structured data untuk menipu atau mengelirukan pengguna. Harga dalam JSON-LD anda yang tidak sepadan dengan harga yang sebenarnya dilihat oleh pelawat pada laman bukanlah gangguan teknikal (glitch) pada pandangan Google — ia adalah jenis ketidaktepatan khusus yang polisi ini wujud untuk mengesannya.

Untuk kedai yang turut menjalankan Google Merchant Center — menyalurkan produk ke free listings atau Shopping ads — ini bukan sekadar kenyataan polisi, ia dikuatkuasakan secara aktif. Google secara rutin meng-crawl laman pendaratan (landing page), menyemak structured data padanya, dan membandingkan kedua-duanya dengan harga yang dihantar dalam feed produk anda. Percanggahan akan muncul sebagai "Mismatched value (page crawl) [price]" dalam Merchant Center, dan ia boleh menyebabkan item berkenaan ditolak (disapproved) sehingga dibetulkan.

Ketidaksepadanan jenis ini biasanya tidak disengajakan dan bukan sengaja: plugin caching yang menyajikan versi laman yang lapuk selepas perubahan harga, kemas kini tema yang menulis ganti paparan harga yang kelihatan tetapi tidak template structured data di sebaliknya, atau jualan murah yang telah ditamatkan dalam panel admin kedai tetapi masih hardcode dalam snippet promosi yang tidak pernah dibuang. Tiada satu pun daripada itu memerlukan niat jahat untuk menyebabkan masalah — ia memerlukan kedua-dua sistem (laman yang kelihatan dan structured data) disemak silang antara satu sama lain, kerana structured data yang salah biasanya tidak merosakkan apa-apa secara visual. Laman itu masih kelihatan baik-baik sahaja. Ia hanya gagal secara senyap sebaik sahaja Google, atau alat ujian, benar-benar menyemaknya.

Memastikan Structured Data dan Laman yang Kelihatan Sentiasa Selari

Oleh sebab harga dan status stok sentiasa berubah, structured data sepatutnya dijana secara dinamik daripada sumber kebenaran (source of truth) yang sama dengan harga yang dilihat pembeli — pangkalan data produk — bukan ditulis sekali secara manual dan dibiarkan begitu sahaja. Kebanyakan tema WooCommerce dan Shopify yang dibina dengan baik mengendalikan ini secara automatik. Di mana drift cenderung merayap masuk ialah pada tema yang sangat disesuaikan (customised), page builder yang memaparkan harga secara berasingan daripada schema, atau template produk yang diedit secara manual di mana seseorang mengemas kini satu bahagian tetapi bukan bahagian yang satu lagi.

Amalan praktikal yang berbaloi dimiliki ialah ujian berkala, bukan semakan sekali sahaja semasa pelancaran — Rich Results Test daripada Google akan menunjukkan dengan tepat apa yang sedang dibaca daripada URL langsung (live), dan itulah satu-satunya cara untuk benar-benar mengesahkan kedua-dua belah pihak masih sepadan.


Jika anda mahu laman produk anda disemak berbanding keperluan semasa Google — kod mata wang, ketepatan availability, dan sama ada structured data masih sepadan dengan apa yang ada pada laman — itu adalah bahagian konkrit dan berskop dalam Essential System Review kami, RM1,500 (RM999 sehingga 16 September 2026). Untuk mengesan drift jenis ini secara berterusan dan bukan sekali sahaja, JagaWeb Care bermula pada RM450 sebulan.

WhatsApp