NextiPress
NextiPressDocs
SaaS Documentation Portal
OverviewTheme JSON GuidePricing
Main PlatformMerchant Login
সমস্ত গাইড (All Docs)
Advance Theme JSON & AI Guide
সহজ নির্দেশিকা ও সম্পূর্ণ আর্কিটেকচার

অ্যাডভান্স কাস্টম থিম তৈরি ও JSON গাইড

কোনো জটিল পেজ বিল্ডার বা কোডিং ছাড়া শুধুমাত্র একটি সাধারণ JSON ফাইল দিয়ে আপনার পুরো স্টোরের ডিজাইন, রং, বাটন, কার্ড স্টাইল ও হোমপেজ লেআউট নিজের মনের মতো নিয়ন্ত্রণ করুন।

থিমের ৪টি স্তম্ভ↓প্রোডাক্ট প্রদর্শন গাইড↓AI মাস্টার প্রম্পট↓

থিম JSON-এর ৪টি মূল স্তম্ভ (The 4 Pillars)

একটি থিম তৈরি করতে মূলত ৪টি প্রধান বিষয়ের ওপর নিয়ন্ত্রণ থাকে:

স্তম্ভ ১

ডিজাইন টোকেন (Tokens)

আপনার স্টোরের ব্র্যান্ড কালার, ফন্ট স্টাইল, লেখার সাইজ, এবং বাটন ও কার্ডের কোনা কতটা গোল হবে তা এখানে ঠিক করা হয়।

colors, typography, shapes, shadows
স্তম্ভ ২

ডিজাইন ভ্যারিয়েন্ট (Variants)

প্রোডাক্ট কার্ড ক্লাসিক, গ্লাস, মিনিমাল নাকি নিজস্ব কাস্টম HTML হবে? স্লাইডার স্প্লিট হবে নাকি ফুল স্ক্রিন হবে—তা এক ক্লিকে বদলানো যায়।

productCard (classic|glass|minimal|custom), heroSlider, header, footer
স্তম্ভ ৩

ফিচার সুইচ (Capabilities)

উইশলিস্ট বাটন, প্রোডাক্ট কুইক ভিউ, হোয়াটসঅ্যাপে সরাসরি অর্ডার বাটন—কোন কোন ফিচার চালু (true) বা বন্ধ (false) থাকবে তার টগল।

showWishlist, showWhatsApp, showQuickView
স্তম্ভ ৪

হোমপেজ রেসিপি (Recipes)

হোমপেজে ওপর থেকে নিচে কোন সেকশনের পর কোন সেকশন বসবে: স্লাইডার, ক্যাটাগরি, প্রোডাক্ট গ্রিড, ফ্ল্যাশ সেল, ব্যানার, ব্র্যান্ড ক্যারোসেল, কাউন্টডাউন, টেস্টমোনিয়াল, ভিডিও, টেক্সট, নাকি কাস্টম HTML।

১২টি সেকশন: hero_slider, products_grid, category_carousel, flash_sale, banner, text_block, brand_carousel, countdown_timer, testimonials, video_embed, custom_html, newsletter
প্রোডাক্ট প্রদর্শন গাইড

স্টোর প্রোডাক্ট প্রদর্শন ও কাস্টম কার্ড গাইড (৩টি সুনির্দিষ্ট পদ্ধতি)

ইউজারকে প্রোডাক্টের নাম, দাম বা লিঙ্ক JSON-এ ম্যানুয়ালি কপি-পেস্ট করতে হয় না—সব প্রোডাক্ট স্বয়ংক্রিয়ভাবে ডাটাবেজ থেকে আসে:

রিকমেন্ডেড বেস্ট প্র্যাকটিসগ্লোবাল কাস্টম প্রোডাক্ট কার্ড (customProductCardHtml) বনাম হোমপেজ কাস্টম ব্লক

আপনার স্টোরের জন্য নিজস্ব ডিজাইনের প্রোডাক্ট কার্ড তৈরি করতে চাইলে সর্বোত্তম ও মানসম্মত উপায় হলো থিম JSON-এর রুট লেভেলে customProductCardHtml ডিফাইন করা এবং variants.productCard: "custom" সেট করা। এর ফলে একই কার্ড ডিজাইন পুরো স্টোরে (হোমপেজ ফ্ল্যাট গ্রিড, ক্যাটাগরি গ্রিড, ক্যাটাগরি পেজ, ব্র্যান্ড পেজ, ফ্ল্যাশ সেল স্লাইডার, সার্চ রেজাল্ট ও রিলেটেড প্রোডাক্টস) সর্বত্র প্রযোজ্য হবে—অটো ইভেন্ট ডেলিগেশন, স্টাইল ডিডুপ্লিকেশন ও জিরো রিপিটেশনের সাথে। অন্যদিকে recipes.homepage-এর custom_html সেকশনটি মূলত ট্রাস্ট ব্যাজ, গ্যারান্টি স্ট্রিপ, প্রমো ব্যানার বা বিশেষ একক হোমপেজ লেআউট ব্লকের জন্য সংরক্ষিত।

পদ্ধতি ১: রিকমেন্ডেড

গ্লোবাল কাস্টম কার্ড (customProductCardHtml)

থিমের রুটে নিজস্ব HTML/CSS কার্ড বসিয়ে দিন। পুরো স্টোরের সব পেজে (হোমপেজ, ক্যাটাগরি, ব্র্যান্ড, সার্চ, ফ্ল্যাশ সেল, রিলেটেড) স্বয়ংক্রিয়ভাবে কার্যকর হবে।

{
  "customProductCardHtml": "<div class=\"card\"><img src=\"{{image}}\" /><h4>{{title}}</h4><button data-add-to-cart=\"{{id}}\">ক্রয়</button></div>",
  "variants": {
    "productCard": "custom"
  }
}
পদ্ধতি ২: সবচেয়ে সহজ

অটোমেটিক প্রোডাক্ট গ্রিড (products_grid)

কোনো ডিজাইন কোড লিখতে হয় না। আপনি শুধু বলবেন কোন ক্যাটাগরির প্রোডাক্ট এবং সর্বোচ্চ কয়টি দেখাবেন (যেমন ২০-৩০টি)। থিমের প্রি-বিল্ট স্টাইল অনুযায়ী স্বয়ংক্রিয় কার্ড তৈরি হয়ে যাবে।

{
  "type": "products_grid",
  "config": {
    "title": "জনপ্রিয় পণ্য",
    "categoryFilter": "all",
    "limit": 20
  }
}
পদ্ধতি ৩: হোমপেজ ব্লক

কাস্টম ডিজাইনার গ্রিড (custom_html লুপ)

হোমপেজে বিশেষ কোনো ওয়ান-অফ সেকশন বা ট্রাস্ট ব্যাজের জন্য টেমপ্লেট লুপ ব্যবহার করে লাইভ ডেটা সহ ইউনিক সেকশন তৈরি করতে পারেন।

<!-- {{#products category="all" limit="20" sort="price-asc"}} -->
<div class="my-bespoke-card">
  <img src="{{image}}" alt="{{title}}" />
  <h4>{{title}}</h4>
  <span>{{currency}}{{price}}</span>
  <button type="button" data-add-to-cart="{{id}}" aria-label="{{accessibleActionLabel}}">অর্ডার করুন</button>
</div>
<!-- {{/products}} -->
category: ক্যাটাগরি আইডি, নাম (যেমন "Fashion") বা সব পণ্যের জন্য "all"
limit: সর্বোচ্চ কয়টি পণ্য আসবে (১-৫০, ডিফল্ট ২০)
sort: "price-asc" (কম দাম আগে) বা "price-desc" (বেশি দাম আগে)

কাস্টম HTML লুপে ব্যবহারের জন্য উপলব্ধ ট্যাগসমূহ:

ক্লিন ও রিয়েল-টাইম ডাটাবেজ বাইন্ডিং
ট্যাগ / প্লেসহোল্ডারকী ডেটা আসে?ব্যবহারের সহজ উদাহরণ
{{id}}প্রোডাক্টের সুরক্ষিত ইউনিক আইডিdata-add-to-cart="{{id}}"
{{title}} বা {{name}}প্রোডাক্টের নাম (XSS সুরক্ষিত)<h4>{{title}}</h4>
{{price}} বা {{sellingPrice}}বর্তমান বিক্রয় মূল্য (ফরম্যাটেড, যেমন ১২৫০)<span>{{currency}}{{price}}</span>
{{currency}}স্টোরের কারেন্সি প্রতীক (৳ বা $)<span>{{currency}}</span>
{{rawPrice}}বিক্রয় মূল্যের কাঁচা সংখ্যা (1250)data-price="{{rawPrice}}"
{{oldPrice}} বা {{originalPrice}}পূর্বের আসল মূল্য (ছাড় থাকলে আসে)<del>{{currency}}{{oldPrice}}</del>
{{rawOldPrice}}পূর্বের আসল মূল্যের কাঁচা সংখ্যা (1500)data-old-price="{{rawOldPrice}}"
{{discountAmount}}সাশ্রয়ের পরিমাণ (যেমন: ৩০০)<span>{{discountAmount}} টাকা সাশ্রয়!</span>
{{discountPercent}}ছাড়ের শতকরা হার সংখ্যায় (যেমন ২০)<span>-{{discountPercent}}%</span>
{{discountText}}ছাড়ের টেক্সট লেবেল (যেমন: -২০%)<span>{{discountText}}</span>
{{hasDiscount}}ছাড় আছে কিনা ("true"/"false")কন্ডিশনাল স্টাইলিং
{{image}}প্রোডাক্টের ছবির নিরাপদ URL<img src="{{image}}" alt="{{title}}" />
{{url}}প্রোডাক্ট বিস্তারিত পেজের লিঙ্ক<a href="{{url}}">বিস্তারিত</a>
{{badge}}স্মার্ট ব্যাজ (কাস্টম ব্যাজ বা -২০% ব্যাজ)<span class="badge">{{badge}}</span>
{{customBadge}}প্রোডাক্টের নিজস্ব কাস্টম ব্যাজ (বেস্ট সেলার)<span>{{customBadge}}</span>
{{category}}ক্যাটাগরি নাম (যেমন Skincare, Shoes)<small>{{category}}</small>
{{brand}}ব্র্যান্ড নাম (যেমন Apple, L'Oréal)<span>{{brand}}</span>
{{description}}সংক্ষিপ্ত বিবরণ (Short summary)<p>{{description}}</p>
{{stock}}মোট স্টকে পণ্যের পরিমাণ (সংখ্যা)<span>স্টক: {{stock}}</span>
{{inStock}}স্টকে মজুদ আছে কিনা ("true"/"false")স্টক আউট নোটিশের জন্য
{{isOutOfStock}}স্টক শেষ কিনা ("true"/"false")স্টক আউট ওভারলে দেওয়ার জন্য
{{stockStatus}}স্টক স্ট্যাটাস টেক্সট (স্টকে আছে / স্টক শেষ)<span>{{stockStatus}}</span>
{{isFreeDelivery}}ফ্রি ডেলিভারি কিনা ("true"/"false")ফ্রি শিপিং ব্যাজ
{{hasVariants}}একাধিক সাইজ/কালার আছে কিনা ("true"/"false")ভ্যারিয়েন্ট ড্রপডাউনের জন্য
{{rating}}গড় স্টার রেটিং (রিভিউ থেকে ক্যালকুলেটেড, ৪.৮)★ {{rating}}
{{stars}}ভিজ্যুয়াল স্টার সিম্বল (★★★★★ / ★★★★☆)<span>{{stars}}</span>
{{reviewsCount}}মোট রিভিউ সংখ্যা (যেমন ৪৮)({{reviewsCount}} রিভিউ)
{{reviewsText}}ফরম্যাটেড রিভিউ টেক্সট ((৪৮ টি রিভিউ))<span>{{reviewsText}}</span>
{{accessibleActionLabel}}দৃষ্টিপ্রতিবন্ধীদের জন্য অডিও লেবেলaria-label="{{accessibleActionLabel}}"
কন্ডিশনাল লজিক: {{#if condition}} ও {{#unless condition}}

প্রোডাক্টের অবস্থার ওপর ভিত্তি করে কোনো উপাদান দেখাতে বা লুকাতে কন্ডিশনাল ব্লক ব্যবহার করতে পারেন:

<!-- {{#if hasDiscount}} --><span class="badge">{{discountText}}</span><!-- {{/if}} -->
<!-- {{#if inStock}} --><button data-add-to-cart="{{id}}">অর্ডার করুন</button><!-- {{/if}} -->
<!-- {{#if isOutOfStock}} --><button disabled>স্টক শেষ</button><!-- {{/if}} -->
অনুমোদিত কন্ডিশনসমূহ: hasDiscount, inStock, isOutOfStock, isFreeDelivery, hasVariants, badge, customBadge, description
ইন্টারঅ্যাক্টিভ অ্যাকশন ট্রিগারসমূহ:
  • data-add-to-cart="{{id}}" — পেজ রিলোড ছাড়াই পণ্যটি কার্ট ড্রয়ারে যোগ হয়। একাধিক সাইজ/কালার ভ্যারিয়েন্ট থাকলে গ্রাহককে ভুল অর্ডার ঠেকাতে স্বয়ংক্রিয়ভাবে প্রডাক্ট পেজে রিডাইরেক্ট করে। কিবোর্ড ইউজাররা Enter চাপলেও কাজ করে।
  • data-toggle-wishlist="{{id}}" — পছন্দের তালিকায় পণ্য যোগ বা রিমুভ করার জন্য হার্ট বা উইশলিস্ট বাটনে বসিয়ে দিন। গ্রাহক ক্লিক করলেই লাইভ উইশলিস্ট টগল হবে।
  • data-select-product="{{id}}" বা <a href="{{url}}"> — সরাসরি প্রোডাক্ট বিস্তারিত পেজে গ্রাহককে নিয়ে যায়।
থিমের ১১টি নিজস্ব CSS ভ্যারিয়েবল (স্টাইল সিঙ্ক):

আপনার কাস্টম HTML-এ সরাসরি এই সিএসএস ভ্যারিয়েবলগুলো ব্যবহার করুন। মার্চেন্ট থিমের রং পাল্টালে আপনার কাস্টম কার্ডের রংও অটোমেটিক আপডেট হয়ে যাবে:

var(--theme-primary)var(--theme-secondary)var(--theme-accent)var(--theme-bg)var(--theme-surface)var(--theme-surface-muted)var(--theme-text)var(--theme-text-muted)var(--theme-border)var(--theme-card-radius)var(--theme-btn-radius)
সহজ সেটিংস গাইড

কোন সেটিংস কী পরিবর্তন করে? (Allowed Settings Matrix)

সিস্টেম ভ্যালিডেশনে টিকতে নিচের তালিকা থেকে আপনার পছন্দের মানগুলো বেছে নিন:

সেটিংস ফিল্ডঅনুমোদিত মানসমূহ (Allowed Values)কী কাজ করে? (মানুষের ভাষায় সহজ অর্থ)
typography.fontFamilyBase"sans" | "serif" | "mono"সাধারণ লেখার ফন্ট: ক্লিন সানস, ক্লাসিক সেরিফ, বা টেকনিক্যাল মনো
typography.fontFamilyHeadings"sans" | "serif" | "mono"শিরোনামের ফন্ট পরিবার
typography.headingWeight"normal" | "medium" | "semibold" | "bold" | "extrabold"শিরোনাম কতটা মোটা বা বোল্ড হবে
typography.baseSize"sm" | "base" | "lg"মূল লেখার সাইজ
typography.letterSpacing"normal" | "wide" | "widest"অক্ষরগুলোর মধ্যবর্তী ফাঁকা জায়গা
layout.containerMaxWidth"4xl" | "5xl" | "7xl" | "full"ওয়েবসাইটের কন্টেইনারের সর্বোচ্চ প্রস্থ
layout.sectionSpacing"compact" | "comfortable" | "relaxed"সেকশনগুলোর মধ্যকার ফাঁকা জায়গা বা প্যাডিং
layout.gridGap"sm" | "md" | "lg"গ্রিডের ভেতরের আইটেমগুলোর মধ্যবর্তী দূরত্ব
shapes.buttonRadius"none" | "sm" | "md" | "lg" | "xl" | "full"বাটন চারকোনা থাকবে ("none") নাকি ক্যাপসুলের মতো গোল হবে ("full")
shapes.cardRadius"none" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl"প্রোডাক্ট কার্ডের কোনা কতটা গোল হবে
shapes.imageRadius"none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full"প্রোডাক্ট ছবির কোনা কতটা গোল হবে
shadows.card"none" | "sm" | "md" | "lg" | "xl"কার্ডের নিচে থ্রিডি ছায়া কতটা গভীর হবে
shadows.dropdown"none" | "sm" | "md" | "lg" | "xl" | "2xl"ড্রপডাউন ও ফ্লোটিং মেনুর ছায়ার গভীরতা
shadows.button"none" | "sm" | "md" | "lg"বাটনের ওপর এলিভেশন ছায়া
motion.duration"fast" | "normal" | "slow"হোভার ও ট্রানজিশনের স্পিড
motion.easing"linear" | "ease-in" | "ease-out" | "ease-in-out" | "bounce"অ্যানিমেশনের ছন্দ ও ফিজিক্স কার্ভ
iconography.strokeWidth"1" | "1.5" | "2" | "2.5"আইকনের রেখার পুরুত্ব
iconography.style"solid" | "outline"আইকন আউটলাইন হবে নাকি ভরাট (সলিড) হবে
media.productImageAspect"auto" | "square" | "video" | "portrait"প্রোডাক্ট ছবির অনুপাত (square 1:1, video 16:9, portrait 3:4)
media.hoverEffect"none" | "zoom" | "swap" | "lift"প্রোডাক্টে মাউস নিলে ছবি জুম হবে, বদলাবে ("swap"), বা কার্ড ভেসে উঠবে ("lift")
variants.productCard"classic" | "glass" | "minimal" | "custom"কার্ড কি ক্লাসিক বর্ডার হবে, ফ্রস্টেড গ্লাস হবে, মিনিমাল হবে, নাকি নিজস্ব HTML কাস্টম ডিজাইন হবে
customProductCardHtmlযেকোনো নিরাপদ HTML/CSS স্ট্রিংগ্লোবাল কাস্টম প্রোডাক্ট কার্ডের HTML টেমপ্লেট (যখন variants.productCard: "custom")
variants.heroSlider"carousel" | "split" | "fullbleed"স্লাইডার কি ফুল ব্যানার ("carousel"), স্প্লিট 50/50 ("split"), নাকি সিনেম্যাটিক ("fullbleed") হবে
variants.categoryCarousel"square" | "capsules" | "pills"ক্যাটাগরি বাটন কি চারকোনা, ক্যাপসুল নাকি ছোট পিল স্টাইল হবে
variants.header"classic" | "search_focused" | "luxury" | "warm"হেডার কি ক্লিন ক্লাসিক, মার্কেটপ্লেস সার্চ ফোকাসড, প্রিমিয়াম ডার্ক, নাকি অর্গানিক লুক হবে
variants.footer"classic" | "luxury" | "warm"ফুটার কি ক্লাসিক সাদা, ডার্ক মেটালিক, নাকি ওয়ার্ম আর্থি লুক হবে
variants.bottomNav"docked_ai" | "docked_cart" | "none"মোবাইল বটম বার: উঁচু সেন্টার AI বাটন (শপিং অ্যাসিস্ট্যান্ট), উঁচু সেন্টার কার্ট বাটন, নাকি বন্ধ
variants.productDetailLayout"standard" | "sticky" | "single"প্রোডাক্ট পেজ কি দুই কলাম, স্টিকি বাই-বার সহ, নাকি একক কলাম হবে
variants.productGallery"horizontal" | "vertical" | "swipe"প্রোডাক্ট ছবির গ্যালারি কি অনুভূমিক, খাড়া থাম্বনেইল, নাকি সোয়াইপ হবে
variants.productTabs"classic" | "accordion" | "minimal"বিবরণী ট্যাব কি অনুভূমিক ট্যাব, অ্যাকর্ডিয়ন ভিউ, নাকি মিনিমাল হবে
recipes.homepage[].type"hero_slider" | "products_grid" | "category_carousel" | "flash_sale" | "banner" | "text_block" | "brand_carousel" | "countdown_timer" | "testimonials" | "video_embed" | "custom_html" | "newsletter"হোমপেজে ব্যবহারের জন্য অনুমোদিত ১২টি সেকশন টাইপ
hero_slider.config.source"store" | "json" (optional)স্লাইডার কি স্টোর সেটিংস (settings.heroSlides) থেকে ডায়নামিকালি আসবে নাকি থিম JSON থেকে আসবে
newsletter.config.variant"card" | "minimal" | "fullbleed" (optional)নিউজলেটার সেকশনের ডিজাইন স্টাইল: প্রিমিয়াম কার্ড, মিনিমাল বর্ডারহীন, নাকি এজ-টু-এজ ওয়াইড ব্যানার
capabilities.productCard.cartButtonShow"always" | "onHover" (optional, default "always")প্রোডাক্ট কার্ডের কার্ট বাটন সর্বদা দৃশ্যমান থাকবে ("always") নাকি কার্ডে মাউস নিলে ভেসে উঠবে ("onHover")

রেডিমেড পূর্ণাঙ্গ থিম JSON উদাহরণ (১-ক্লিকে কপি করুন)

এটি একটি ভেরিফায়েড ডার্ক লাক্সারি ও গোল্ড থিম। আপনি এটি কপি করে সরাসরি Theme Studio-তে পেস্ট করে ব্যবহার করতে পারেন:

{
  "id": "velvet_obsidian_atelier",
  "name": "Velvet Obsidian Atelier (ভেলভেট অবসিডিয়ান)",
  "tagline": "ডার্ক লাক্সারি ভাইব, মেটালিক গোল্ড অ্যাকসেন্ট ও স্প্লিট শোকেস",
  "description": "প্রিমিয়াম জুয়েলারি, সুগন্ধি, লাক্সারি ঘড়ি ও এক্সক্লুসিভ ফ্যাশন ব্র্যান্ডের জন্য ডিজাইনকৃত ডার্ক লাক্সারি থিম।",
  "badge": "লাক্সারি ও জুয়েলারি",
  "previewBadgeColor": "bg-slate-900 text-amber-300 border-amber-600/40",
  "tag": "special",
  "schemaVersion": "1.0",
  "tokens": {
    "colors": {
      "primary": "#d4af37",
      "secondary": "#b8860b",
      "accent": "#ffd700",
      "background": "#0b0b0f",
      "surface": "#14141a",
      "surfaceMuted": "#1c1c24",
      "text": "#f8fafc",
      "textMuted": "#94a3b8",
      "border": "#272732"
    },
    "typography": {
      "fontFamilyBase": "sans",
      "fontFamilyHeadings": "serif",
      "headingWeight": "bold",
      "baseSize": "base",
      "letterSpacing": "wide"
    },
    "layout": {
      "containerMaxWidth": "7xl",
      "sectionSpacing": "relaxed",
      "gridGap": "lg"
    },
    "shapes": {
      "buttonRadius": "full",
      "cardRadius": "3xl",
      "imageRadius": "xl"
    },
    "shadows": {
      "card": "xl",
      "dropdown": "2xl",
      "button": "md"
    },
    "motion": {
      "duration": "slow",
      "easing": "ease-out"
    },
    "iconography": {
      "strokeWidth": "1.5",
      "style": "outline"
    },
    "media": {
      "productImageAspect": "portrait",
      "hoverEffect": "swap"
    }
  },
  "variants": {
    "productCard": "glass",
    "heroSlider": "split",
    "categoryCarousel": "capsules",
    "header": "luxury",
    "footer": "luxury",
    "productDetailLayout": "sticky",
    "productGallery": "vertical",
    "productTabs": "accordion"
  },
  "capabilities": {
    "productCard": {
      "showWishlist": true,
      "showCategory": false,
      "showBadge": true,
      "showQuickView": true
    },
    "heroSlider": {
      "showDescription": true,
      "showBadge": true,
      "showArrows": true,
      "showDots": true,
      "showProgressBar": false
    },
    "header": {
      "showWishlist": true,
      "showSearchInline": false
    },
    "footer": {
      "showNewsletter": true,
      "showCategories": true
    },
    "productDetail": {
      "showBreadcrumb": true,
      "showStars": true,
      "showWhatsApp": true,
      "showShare": true,
      "stickyBuyBarOnMobile": true
    }
  },
  "recipes": {
    "homepage": [
      {
        "id": "hero-split-obsidian",
        "type": "hero_slider",
        "config": {
          "variant": "split",
          "slides": [
            {
              "title": "Timeless Haute Joaillerie",
              "subtitle": "Private Atelier Edition 2026",
              "desc": "Handcrafted with ethically sourced conflict-free diamonds and 24-karat gold.",
              "ctaText": "Explore High Jewelry",
              "ctaUrl": "/jewelry",
              "image": "https://images.unsplash.com/photo-1515562141207-7a88fb7ce338?auto=format&fit=crop&q=80&w=1200",
              "badge": "Rare Collector"
            }
          ]
        }
      },
      {
        "id": "bespoke-luxury-grid",
        "type": "custom_html",
        "config": {
          "html": "<style>.obsidian-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; margin: 30px 0; } .obsidian-card { background: var(--theme-surface, #14141a); border: 1px solid var(--theme-border, #272732); border-radius: var(--theme-card-radius, 24px); padding: 18px; display: flex; flex-direction: column; transition: transform 0.25s ease, border-color 0.25s ease; position: relative; } .obsidian-card:hover { transform: translateY(-5px); border-color: var(--theme-primary, #d4af37); } .obsidian-badge { position: absolute; top: 26px; left: 26px; background: var(--theme-primary, #d4af37); color: #000; font-size: 11px; font-weight: 900; padding: 4px 10px; border-radius: 999px; } .obsidian-img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: calc(var(--theme-card-radius, 24px) - 8px); margin-bottom: 14px; } .obsidian-title { font-size: 16px; font-weight: 700; color: var(--theme-text, #f8fafc); margin: 0 0 8px; line-height: 1.3; } .obsidian-price-row { display: flex; align-items: baseline; gap: 10px; margin-top: auto; margin-bottom: 14px; } .obsidian-price { font-size: 20px; font-weight: 900; color: var(--theme-accent, #ffd700); } .obsidian-old { font-size: 13px; color: var(--theme-text-muted, #94a3b8); text-decoration: line-through; } .obsidian-btn { width: 100%; background: var(--theme-primary, #d4af37); color: #0b0b0f; border: none; font-weight: 800; font-size: 13px; padding: 12px 16px; border-radius: var(--theme-btn-radius, 9999px); cursor: pointer; transition: opacity 0.2s; min-height: 44px; } .obsidian-btn:hover { opacity: 0.9; }</style><div class=\"obsidian-grid\"><!-- {{#products category=\"all\" limit=\"8\" sort=\"price-desc\"}} --><div class=\"obsidian-card\"><span class=\"obsidian-badge\">{{badge}}</span><a href=\"{{url}}\" style=\"text-decoration:none;\"><img src=\"{{image}}\" alt=\"{{title}}\" class=\"obsidian-img\" loading=\"lazy\" /><h4 class=\"obsidian-title\">{{title}}</h4></a><div class=\"obsidian-price-row\"><span class=\"obsidian-price\">৳{{price}}</span><del class=\"obsidian-old\">৳{{oldPrice}}</del></div><button type=\"button\" class=\"obsidian-btn\" data-add-to-cart=\"{{id}}\" aria-label=\"{{accessibleActionLabel}}\">সরাসরি অর্ডার করুন</button></div><!-- {{/products}} --></div>"
        }
      },
      {
        "id": "featured-masterpieces",
        "type": "products_grid",
        "config": {
          "title": "Masterpiece Creations",
          "limit": 8,
          "showViewAll": true
        }
      }
    ]
  }
}
AI কোলাবোরেশন টুল

যেকোনো AI (ChatGPT / Claude / Gemini) দিয়ে থিম তৈরি করুন

নিচের প্রম্পটটি কপি করে AI-কে দিন। AI আপনার পছন্দ অনুযায়ী সঠিক ফরম্যাটে থিম JSON ফাইল বানিয়ে দেবে:

You are an expert AI E-Commerce Theme Architect for NextiPress Theme Studio.
Your objective is to help me design and generate an advanced, high-converting, fully customized ThemeDefinition JSON file for my storefront.

============================================================
MANDATORY PRE-REQUISITE: INSPECT OFFICIAL DOCUMENTATION FIRST
============================================================
CRITICAL INSTRUCTION FOR THE AI MODEL:
Before generating, suggesting, or reviewing any ThemeDefinition JSON, you MUST inspect and reference the official NextiPress SaaS Platform Documentation page:
👉 Official Docs URL: https://nextipress.shop/docs/advance-theme-guide
👉 LLM Machine-Readable Index: https://nextipress.shop/llms.txt

If you have web browsing, URL fetching, search, or retrieval tools:
1. You MUST FETCH, BROWSE, and PARSE https://nextipress.shop/docs/advance-theme-guide BEFORE answering or generating code.
2. Verify all tokens, 8-state styles, allowed enums, capabilities, and dynamic custom_html product loop syntax against the official live docs.
3. STRICT ZERO-HALLUCINATION CONTRACT: Every single property key, enum value, and section type in your output JSON MUST strictly match the official specification. Never invent custom enum strings (e.g. fontFamily "inter" is invalid - only "sans" | "serif" | "mono" are supported; buttonRadius "50%" or "circle" is invalid - only "full" is supported).

============================================================
STAGE 1: INTERACTIVE BRIEF QUESTIONS (DO THIS FIRST)
============================================================
Before generating the JSON, please ask me the following 5 targeted questions in simple, friendly terms:

1. **Store Niche & Products:** What kind of products do you sell? (e.g. luxury perfume, children toys/clothing, organic honey/groceries, high-tech electronics, fashion boutique, etc.)
2. **Brand Visual Tone & Mood:** What atmosphere do you want? (e.g. Clean & Minimalist, Dark Luxury Obsidian & Gold, Warm Earthy Parchment, Vibrant & Playful Neon, Calming Zen Spa)
3. **Primary Brand Colors:** Do you have specific hex color codes in mind, or should I curate a harmonic color palette for you?
4. **Layout, Card Style & Hero Slider Sourcing:**
   - Product Cards: classic (standard borders & dual buttons), glass (frosted glass blur & luxury glow), minimal (borderless with hover overlay), or custom (your own bespoke HTML product card)?
   - Hero Slider: carousel (traditional slider), split (split copy + image layout), or fullbleed (cinematic edge-to-edge)?
   - Hero Slider Source: Should the slides be controlled dynamically from the merchant store settings in admin dashboard ("source": "store" - recommended so merchant can swap banners anytime without touching JSON), or statically hardcoded inside this JSON ("source": "json")?
5. **Special Sections & Custom Product Cards:** Would you like:
   - A global custom product card design via customProductCardHtml? (Yes / No - provide your HTML or describe your desired card design)
   - A custom HTML trust & assurance badge strip? (Yes / No)
   - A bespoke custom HTML homepage section? (Yes / No)
   - A functional newsletter subscription section ("type": "newsletter") to capture subscriber leads? (Yes / No)

Tell me: "Please answer these questions or provide your own custom description, and I will generate your production-ready ThemeDefinition JSON."

============================================================
STAGE 2: JSON GENERATION RULES (WHEN ANSWERS ARE PROVIDED)
============================================================
Once I provide my answers (or if I provide all details upfront), generate a SINGLE, 100% syntactically valid JSON object conforming strictly to the following ThemeDefinition schema.

STRICT VALIDATION RULES & CONSTRAINTS:
1. ONLY return the raw JSON object inside a single markdown code block (```json). No conversational filler outside the JSON.

2. ROOT FIELDS SCHEMA SPECIFICATION:
   - "id": string (unique snake_case string, e.g. "velvet_obsidian_atelier")
   - "name": string (display name, e.g. "Velvet Obsidian Atelier")
   - "tagline": string (short compelling punchline)
   - "description": string (detailed description of mood and target niche)
   - "badge": string (short admin badge label, e.g. "Luxury & Gold")
   - "previewBadgeColor": string (Tailwind color classes for badge, e.g. "bg-slate-900 text-amber-300 border-amber-600/40")
   - "tag"?: "hot" | "special" (optional highlight tag)
   - "schemaVersion"?: "1.0" (optional schema version)
   - "customProductCardHtml"?: string (optional: HTML template when variants.productCard is "custom")

3. ENUMS MUST MATCH EXACTLY (Never fabricate custom values):
   - tokens.colors: { primary: "#hex", secondary: "#hex", accent: "#hex", background: "#hex", surface: "#hex", surfaceMuted: "#hex", text: "#hex", textMuted: "#hex", border: "#hex" }
   - tokens.typography.fontFamilyBase: ONLY "sans" | "serif" | "mono"
   - tokens.typography.fontFamilyHeadings: ONLY "sans" | "serif" | "mono"
   - tokens.typography.headingWeight: ONLY "normal" | "medium" | "semibold" | "bold" | "extrabold"
   - tokens.typography.baseSize: ONLY "sm" | "base" | "lg"
   - tokens.typography.letterSpacing: ONLY "normal" | "wide" | "widest"
   - tokens.layout.containerMaxWidth: ONLY "4xl" | "5xl" | "7xl" | "full"
   - tokens.layout.sectionSpacing: ONLY "compact" | "comfortable" | "relaxed"
   - tokens.layout.gridGap: ONLY "sm" | "md" | "lg"
   - tokens.shapes.buttonRadius: ONLY "none" | "sm" | "md" | "lg" | "xl" | "full"
   - tokens.shapes.cardRadius: ONLY "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl"
   - tokens.shapes.imageRadius: ONLY "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full"
   - tokens.shadows.card: ONLY "none" | "sm" | "md" | "lg" | "xl"
   - tokens.shadows.dropdown: ONLY "none" | "sm" | "md" | "lg" | "xl" | "2xl"
   - tokens.shadows.button: ONLY "none" | "sm" | "md" | "lg"
   - tokens.motion.duration: ONLY "fast" | "normal" | "slow"
   - tokens.motion.easing: ONLY "linear" | "ease-in" | "ease-out" | "ease-in-out" | "bounce"
   - tokens.iconography.strokeWidth: ONLY "1" | "1.5" | "2" | "2.5"
   - tokens.iconography.style: ONLY "solid" | "outline"
   - tokens.media.productImageAspect: ONLY "auto" | "square" | "video" | "portrait"
   - tokens.media.hoverEffect: ONLY "none" | "zoom" | "swap" | "lift"
   - variants.productCard: ONLY "classic" | "glass" | "minimal" | "custom"
   - variants.heroSlider: ONLY "carousel" | "split" | "fullbleed"
   - variants.categoryCarousel: ONLY "square" | "capsules" | "pills"
   - variants.header: ONLY "classic" | "search_focused" | "luxury" | "warm"
   - variants.footer: ONLY "classic" | "luxury" | "warm"
   - variants.bottomNav: ONLY "docked_ai" | "docked_cart" | "none"
   - variants.productDetailLayout: ONLY "standard" | "sticky" | "single"
   - variants.productGallery: ONLY "horizontal" | "vertical" | "swipe"
   - variants.productTabs: ONLY "classic" | "accordion" | "minimal"

4. MANDATORY CAPABILITIES (Feature Toggles Object):
   The JSON MUST include a full "capabilities" object containing all booleans (never omit this):
   - capabilities.productCard: { showWishlist: boolean, showCategory: boolean, showBadge: boolean, showQuickView: boolean, cartButtonShow?: "always" | "onHover" }
   - capabilities.heroSlider: { showDescription: boolean, showBadge: boolean, showArrows: boolean, showDots: boolean, showProgressBar: boolean }
   - capabilities.header: { showWishlist: boolean, showSearchInline: boolean }
   - capabilities.footer: { showNewsletter: boolean, showCategories: boolean }
   - capabilities.productDetail: { showBreadcrumb: boolean, showStars: boolean, showWhatsApp: boolean, showShare: boolean, stickyBuyBarOnMobile: boolean }

5. COMPLETE SECTION BLOCK SPECIFICATION & CONFIG OPTIONS (recipes.homepage):
   - Allowed block types: "hero_slider", "products_grid", "category_carousel", "flash_sale", "banner", "text_block", "brand_carousel", "countdown_timer", "testimonials", "video_embed", "custom_html", "newsletter".
   - Each section block MUST have a unique "id" (string), "type" (one of the 12 above), and "config" (object matching the exact specifications below):
     1. "hero_slider": {
          "source"?: "store" | "json" (optional: if "store", slides load dynamically from store admin settings settings.heroSlides; if "json", from slides array below),
          "variant"?: "carousel" | "split" | "fullbleed",
          "title"?: string (optional section title),
          "categoryFilter"?: string (optional category filter),
          "slides"?: Array<{
            "title": string,
            "subtitle"?: string,
            "desc"?: string,
            "ctaText"?: string,
            "ctaUrl"?: string,
            "image"?: string,
            "imageUrl"?: string,
            "badge"?: string,
            "actionText"?: string,
            "actionLink"?: string
          }>
        }
     2. "products_grid": {
          "title"?: string,
          "categoryFilter"?: string ("all" or category name/id),
          "limit"?: number (1 to 50, default 24),
          "showViewAll"?: boolean
        }
     3. "category_carousel": {
          "title"?: string,
          "variant"?: "square" | "capsules" | "pills"
        }
     4. "flash_sale": {} (empty config: renders live flash sale products & countdown timer from store database)
     5. "banner": {
          "image"?: string (valid URL),
          "title"?: string,
          "subtitle"?: string,
          "ctaText"?: string,
          "ctaUrl"?: string,
          "layout"?: "center" | "left" | "right"
        }
     6. "text_block": {
          "headline"?: string,
          "body"?: string,
          "align"?: "left" | "center" | "right"
        }
     7. "brand_carousel": {
          "title"?: string,
          "brands"?: Array<{ "name": string, "logo"?: string }>
        }
     8. "countdown_timer" (PRO): {
          "targetDate": string (required: ISO format e.g. "2026-12-31T23:59:59" or "YYYY-MM-DD"),
          "title"?: string,
          "subtitle"?: string
        }
     9. "testimonials" (PRO): {
          "title"?: string,
          "items"?: Array<{ "name": string, "quote": string, "avatar"?: string, "rating"?: number }>
        }
     10. "video_embed" (PRO): {
           "url": string (required: YouTube or video embed URL),
           "title"?: string,
           "aspectRatio"?: "16:9" | "4:3" | "1:1"
         }
     11. "custom_html" (PRO): {
           "html": string (required: safe HTML/CSS, trust strips, or dynamic {{#products}} loops)
         }
     12. "newsletter": {
           "title"?: string (headline, e.g. "আমাদের নিউজলেটারে যুক্ত থাকুন"),
           "subtitle"?: string (subtext / discount promise),
           "badge"?: string (header pill badge),
           "namePlaceholder"?: string (name field placeholder),
           "contactPlaceholder"?: string (email or phone placeholder),
           "buttonText"?: string (CTA button text),
           "variant"?: "card" | "minimal" | "fullbleed"
         }

   - STRICT MANDATORY COMPLETE STOREFRONT RULE (NEVER OUTPUT A SINGLE SECTION):
     - You MUST ALWAYS generate a complete, rich, multi-section storefront layout.
     - EVEN IF the user only provides a reference for a single product card or a single custom HTML block, unless they explicitly state "only output this single section and nothing else", you MUST build a full, high-converting homepage recipe incorporating:
       1. "hero_slider": Engaging hero carousel (use "source": "store" if controlled from admin settings, or "source": "json" with 2-3 niche-tailored slides, compelling headings, CTAs, and high-quality imagery).
       2. "category_carousel": Niche-relevant category pills/capsules for instant browsing.
       3. "custom_html" (Trust & Assurance Strip): A 4-pillar trust badge strip (e.g. 100% authentic, express delivery, certified quality, easy returns) styled with theme CSS variables.
       4. Bespoke Product Card Grid ("custom_html" or "products_grid"): The user's custom product showcase using the dynamic {{#products}} loop with {{#if}} conditionals.
       5. "flash_sale" or "countdown_timer": Urgency and promotional sales driver.
       6. "banner": High-impact promotional or brand commitment banner with CTA.
       7. "products_grid": Secondary product catalog grid (e.g., "New Arrivals" or "Best Sellers").
       8. "brand_carousel": Niche-appropriate partner brands or authentic supplier logos.
       9. "testimonials": 3+ genuine customer reviews with star ratings and authentic quotes.
       10. "text_block": A heartfelt brand story, purity pledge, or mission statement.
       11. "video_embed": Demonstration, testing, or brand heritage video.
       12. "newsletter": Engaging newsletter subscription banner with high-converting title, subtitle, and badge.
     - NEVER output a barren theme with only 1 custom_html block. Every generated theme must look like a complete, multi-million dollar flagship e-commerce storefront out of the box!

   - CUSTOM PRODUCT CARDS & STORE PRODUCTS (CRITICAL ARCHITECTURAL RULES):
     - NEVER hardcode product names, links, prices, or store inventory into JSON!
     - BEST PRACTICE FOR CUSTOM PRODUCT CARDS (MANDATORY RULE FOR AI):
       * When a merchant provides custom product card HTML or requests a custom product card design, the AI MUST put the HTML template into `customProductCardHtml` at the ROOT of Theme JSON and set `variants.productCard: "custom"`.
       * This is the official RECOMMENDED BEST PRACTICE because it ensures global consistency: the custom card design automatically cascades across all product surfaces storewide (Homepage flat grids, category grids, Category listing page, Brand listing page, Flash Sale Slider, Search results, and Product Details Related Products) with automated event delegation and style deduplication.
       * Inside `customProductCardHtml`:
         - Style scoping: Wrap all card CSS in a `<style>` block using theme CSS variables.
         - Placeholders: Use safe dynamic placeholders ({{image}}, {{title}}, {{price}}, {{currency}}, {{oldPrice}}, {{discountText}}, {{stars}}, {{reviewsCount}}, etc.) and {{#if}} / {{#unless}} conditionals.
         - Interactive triggers:
           • Add to Cart: `data-add-to-cart="{{id}}"` and `aria-label="{{accessibleActionLabel}}"` on button.
           • Wishlist Toggle: `data-toggle-wishlist="{{id}}"` on heart/wishlist button.
           • Navigation: `<a href="{{url}}">` or `data-select-product="{{id}}"`.
     - METHOD A (Standard / Automated Grids): Use block type "products_grid" in recipes.homepage with config: { "title": "...", "categoryFilter": "all" | "Category Name", "limit": 20-30, "showViewAll": true }. Renders using the theme's variant (classic, glass, minimal, or your root custom card if variants.productCard is "custom").
     - METHOD B (Homepage Custom Blocks via custom_html):
       * The "custom_html" section in recipes.homepage is intended for custom homepage layout blocks (trust & guarantee badge strips, promo banners, or bespoke one-off homepage sections).
       * If used for a bespoke homepage product showcase, use the secure product loop syntax:
         <!-- {{#products category="all" limit="20" sort="price-asc"}} --> ... <!-- {{/products}} -->
     - Supported 8 Conditionals ({{#if condition}} / {{#unless condition}}):
       • hasDiscount: true if discount is active
       • inStock: true if product has units in stock
       • isOutOfStock: true if out of stock (variant-aware)
       • isFreeDelivery: true if product has free shipping
       • hasVariants: true if product has > 1 variant
       • badge: true if custom badge or discount badge exists
       • customBadge: true if merchant specified custom badge
       • description: true if short description exists
     - Supported 29+ Safe & Calculated Placeholders (applicable to both customProductCardHtml and custom_html loops):
       - Identity & Info: {{id}}, {{title}} (or {{name}}), {{url}}, {{image}} (or {{imageUrl}}), {{category}}, {{brand}}, {{description}} (or {{shortDesc}})
       - Price & Currency: {{price}} (or {{sellingPrice}}), {{currency}}, {{rawPrice}}, {{oldPrice}} (or {{originalPrice}}), {{rawOldPrice}}
       - Discounts & Savings: {{hasDiscount}}, {{discountAmount}} (savings in currency), {{discountPercent}} (calculated percentage number, e.g. 20), {{discountText}} (e.g. -20%)
       - Stock & Inventory: {{stock}} (total units across all variants), {{inStock}}, {{isOutOfStock}}, {{stockStatus}} ("In Stock"/"Out of Stock" or "স্টকে আছে"/"স্টক শেষ")
       - Social Proof & Ratings: {{rating}} (calculated average 1.0-5.0), {{stars}} (visual stars ★★★★★), {{reviewsCount}}, {{reviewsText}}
       - Badges & Shipping: {{badge}} (smart: custom badge or calculated -20%), {{customBadge}}, {{isFreeDelivery}}, {{hasVariants}}
       - Actions & Navigation:
         - Instant Add to Cart: Attach data-add-to-cart="{{id}}" and aria-label="{{accessibleActionLabel}}" to any <button type="button">.
         - Wishlist Toggle: Attach data-toggle-wishlist="{{id}}" to any wishlist/heart button.
         - Product Navigation: Use <a href="{{url}}"> or attach data-select-product="{{id}}" to any clickable element.
   - If "custom_html" is included:
     - Can be used for decorative trust badges, guarantee strips, or 100% bespoke dynamic product grids.
     - Keep all CSS in a scoped <style> block using theme CSS variables:
       var(--theme-primary), var(--theme-secondary), var(--theme-accent), var(--theme-bg), var(--theme-surface), var(--theme-surface-muted), var(--theme-text), var(--theme-text-muted), var(--theme-border), var(--theme-card-radius), var(--theme-btn-radius)
     - NEVER include <script> tags, inline javascript (onclick/onload), or <iframe> tags.
     - Mark root "tag": "special" or "hot" if custom_html or customProductCardHtml is included!

6. WCAG CONTRAST COMPLIANCE:
   - For light backgrounds (e.g. #ffffff, #fafafa, #fffdfa): text must be dark (#0f172a, #1c1917, #1e293b).
   - For dark backgrounds (e.g. #0b0b0f, #020617, #111827): text must be light (#f8fafc, #ffffff).
   - Never output unreadable, low-contrast text.

Please ask me the questions now to get started!

© 2026 NextiPress Cloud. Official Platform Documentation for All Merchants and Developers.

Hosted strictly on the primary SaaS apex domain: nextipress.shop/docs