Publish a theme to the marketplace
Listing, media, pricing, the frozen submission, review, updates, retiring, and insights.
On this page
This page is for anyone who finished a theme on a sandbox store and wants merchants to install it from the Dukkan marketplace. By the end you know the whole path from the last push to the first update after publication.
Before you list#
- A version pushed to your sandbox (
theme pushortheme dev); submitting without one returnsPush a theme version before submitting. - One sandbox per theme; see Sandbox stores.
- A paid listing requires a verified developer team; contact Dukkan to get verified.
1. The listing#
From Themes → New listing pick your sandbox theme and fill in:
| Field | Rule |
|---|---|
Handle (handle) |
3–60 characters of a-z, 0-9 and dashes; immutable after publication |
| Industry | one of fashion, grocery, electronics, restaurant, beauty, home, services, general |
| Feature highlights | up to 6 of mega-menu, quick-buy, product-video, size-guide, lookbook, countdown, store-locator, wishlist-ready, minimal, photography-first; the reviewer verifies them against the bundle |
| Name | Arabic and English, up to 80 characters each |
| Tagline | up to 160 characters per language |
| Description | up to 10,000 characters per language |
| Support URL | HTTPS, optional per language |
Both languages are required at submission. You can save an incomplete draft and come back.
2. Media#
| Item | Rule |
|---|---|
| Cover image | exactly one, required |
| Screenshots | at least 3 at submission, at most 8 |
| Format | PNG, JPEG or WebP, detected from the bytes, not the extension |
| Size | up to 8 MB per image |
| Alt text | Arabic is required on every image (up to 200 characters); English is optional |
Images are stored as uploaded and appear in the composer immediately. Realistic Arabic pages are what sell; screenshot your sandbox with Arabic data.
3. Pricing#
Free, or a one-time purchase with lifetime updates in Syrian pounds or US dollars. No recurring subscriptions for themes. A merchant can preview a paid theme as a draft in their editor before buying; the license is required at publish time on their storefront. Refund requests are handled by Dukkan finance under the Developer Terms. Fees and payouts are in Earnings and payouts.
Preview and demo settings#
The Preview tab of a listing renders the exact pushed version in a device frame (desktop 1280, tablet 834, phone 390) with an Arabic/English switch and a page switcher. Nothing there touches your live store: previews run against your sandbox store through a short-lived grant that the portal mints on demand and never puts in the page URL. When in-page frames are not enabled in an environment, the same grant opens in a new tab.
The loop#
- Push a version to your sandbox (
theme push). - Preview it on the Preview tab; switch device, language and page.
- Open in the editor to tune settings on your sandbox store. The link opens the design editor on that store at that version; your published stores are not affected.
- Capture the tuned settings from the editor as a demo preset (the editor offers it when you arrive from the portal, or from any saved look). The portal lists every captured preset with the number of settings that differ from the theme defaults.
- Select one preset for the listing. The dialog shows each changed setting as before → after, plus any value that could not be carried over.
- Submit. The selected preset is frozen into the submission next to the bundle hash; the reviewer previews with it, and after publication the marketplace demo store and the merchant's pre-purchase preview use it.
Without a selected preset, merchants see the theme with its default settings.
Preset rules#
A preset is a copy of settings, not a copy of your sandbox. When it is captured:
- References to your sandbox's products and categories are replaced by placeholders that the demo store fills from its own seeded catalog (in the same order). A reference that has no counterpart is dropped and listed under "could not be carried over".
- Images and videos must be bundle assets or media from the listing itself; uploads that live only on your sandbox are dropped.
- URLs must point at the same host as the storefront; external links are dropped.
- The preset must validate against the version's settings schema; text is limited in size and depth, and control characters are rejected. Approval fails closed on an invalid preset.
A preset the runtime rejects at publish time never breaks the demo store: the demo store falls back to the defaults and the listing shows the reason.
Staleness#
A preset belongs to the version it was captured from. Pushing a newer version marks the selected preset stale: the preview keeps working, but submitting is refused until you either capture the settings again on the new version or remove the preset. The submit sheet offers both inline.
4. Submit#
Write release notes in Arabic and English (up to 2,000 characters each; reviewers read them and merchants see them on update), then submit. Submission freezes everything that is judged: the theme version and bundle hash, listing text, media checksums, prices and release notes. While under review the listing stays frozen (This listing is under review. Withdraw the submission before editing.), and you can withdraw at any time to keep editing. Submitting a version identical to the published one is refused with Nothing changed since the published version.
5. Review#
- Automated pass: content checks in the portal, then a sandboxed render of your exact bundle on the merchant runtime (
theme_scan). A render failure is a blocking finding. - A human reviewer judges the quality bar and the accuracy of your listing claims.
- The decision: approve, request changes with a reason and a note, or reject. Findings appear on the Review tab.
First response within 5 business days at most; most reviews conclude faster. The clock restarts when you resubmit.
6. Published#
- Approved bytes are content-hash pinned and immutable: merchants install exactly what was reviewed.
- A public, platform-owned demo store is provisioned for your listing, pinned to the reviewed version and seeded with realistic Arabic data, read-only.
- The listing appears in the merchant marketplace with the Arabic name first.
7. Updates#
Push a new version to your sandbox and submit again with new release notes. Every version is a full review: a new submission, a new scan, a new publication. The merchant gets an "update available" notice and receives the new version as a draft they preview and then publish themselves; there is never an auto-update, and stores that do not update stay on their version. The merchant's settings are re-materialized under the new schema (added settings take their defaults), with a 30-day revert.
8. Manage#
| Action | Effect |
|---|---|
Retire (retire) |
the listing disappears and new installs stop; installed stores keep working and stay on their version |
Restore (restore) |
brings a retired listing back with its existing publication |
Delist by a reviewer (delisted) |
a forced takedown by Dukkan; stores using the theme are moved to the platform default storefront |
| Insights | installs, updates and active stores as aggregates, never store identities |
Common errors#
| Message | Meaning |
|---|---|
This theme does not belong to your sandboxes |
the theme was pushed from a sandbox your organization does not own |
This theme is already listed by another team |
a shared or transferred sandbox |
A cover image and at least 3 screenshots are required |
media missing |
Every image needs Arabic alt text |
Arabic alt text missing |
Paid listings require a verified developer team. Contact Dukkan to get verified. |
paid pricing without verification |
A submission is already open |
an open submission exists; withdraw it or wait for the decision |