Sell your own theme


Selling a theme in the Theme Store

Every month over 1,000 merchants look for new themes to apply to their shop. The Theme Store is a great place for theme designers to showcase and monetize their design skills.

What kind of themes are accepted?

Only a small percentage of submitted themes are published. Beautiful aesthetic and a unique layout are key ingredients to ensuring your theme gets accepted. Design quality should be on par with shops featured on our examples page.

The majority of submissions are rejected because it does not meet the Theme Review Team's design standards. It's difficult to articulate a subjective design opinion and Shopify cannot give in-depth feedback on your aesthetics.

The theme review process

To submit a theme, please email with the following:

  1. .jpg or .png mockups of your theme’s index page, collection page and product page.
  2. A link to your portfolio website.

A member of the Theme Review Team will then get in touch with you to let you know if the theme has been accepted for further review.

After the Theme Review Team has approved your mockups' designs, you can start coding your theme. Keep in mind that your theme must meet all of the requirements in the Theme Review Checklist.

The Theme Review Team would like to see only your best work. For this reason, theme submissions are limited to two themes per month.

Once a theme has been approved, it may only be distributed via the Theme Store or your own independent channels (personal/company website). However, if your theme is on the "50/50 Split" option (details below), it may not be sold through any other channels. Please do not distribute your theme on other marketplaces/3rd party channels and try and solicit customers away from the Theme Store. If you sell via your personal/company website you must keep the price of the theme on par with the Theme Store price.

Theme support

If there is a technical issue with your theme (broken layout, dead link, logic error, etc.) you will be responsible for fixing the issue. Critical bug fixes must be fixed immediately or your theme may be temporarily hidden.

Themes will be re-evaluated if they fail to make at least 15 sales in the last 3 months. Themes must also keep up-to-date with core Shopify features.

What are the payout options for theme designers?

Theme designers have two options for revenue share:

  • 1. 70/30 Split

    The theme designer receives 70% of each theme sale. The theme designer is responsible for bug fixes, as well as answering any questions from customers regarding the theme.

  • 2. 50/50 Split*

    The theme designer receives 50% of each theme sale. The theme designer is still responsible for bug fixes, but Shopify can help answer any questions regarding the theme. If you select this option, you may not sell your theme through any other channels.

  • *The 50/50 Split option is taken on a case-by-case basis. Theme designers may be asked to select the 70/30 option should the Theme Review Team feel it is the best choice.

Theme Review Checklist

General Theme Requirements

  1. Layout must be responsive
  2. Contains a search box in the header or footer, and in search.liquid
  3. All RTE-generated content is consistent (h1-h5, blockquotes, ul, ol, etc.) across all templates
  4. Layout works in IE8+, and latest versions of Safari, Firefox, and Chrome
  5. Theme must have at least one demo shop
  6. Demo shops must use the latest version of the theme
  7. Theme must use Shopify's option selection script - {{ 'option_selection.js' | shopify_asset_url | script_tag }}
  8. Assets must link using protocol independent URLs
  9. Theme must include {{ powered_by_link }} with no redirects


  1. Includes a product grid of a collection that can be selected through Theme Settings
  2. (Optional) includes a collection grid of the shop's collections

page.liquid and 404.liquid

  1. A contact form template is included with the theme (


  1. When 1st variant is sold out, the whole product should not look sold out (see this article).
  2. Prices and Compare At prices are shown and update correctly as you select
  3. Thumbnails grid does not break when product images have different aspect ratio
  4. Uses lightbox or large main image or zoom plugin
  5. One variant handled well (ex: dropdowns shouldnʼt be used for one variant)
  6. Whole product sold out handled well
  7. Multiple uses OptionSelector JS (see this article)
  8. image.alt is used for product images
  9. Breadcrumb to provide a link back to the collection and/or NEXT and PREVIOUS links
  10. Social buttons for Twitter, Facebook, Pinterest, Google+ (optional)
  11. Include Google's rich product snippets


  1. Price variation is shown (i.e. "from $x to $y" when product.price_varies).
  2. A "Sale" tag or Compare At price is shown where appropriate
  3. Product titles cannot be truncated (i.e. Liquid filter "truncate" or "truncatewords" should not be used)
  4. Collection description is shown
  5. Product tags is output for filtering ()
  6. Intuitive UI for selecting/deselecting tags
  7. Layout does not break even with images with different aspect ratios
  8. Pagination works


  1. Outputs additional checkout buttons using {{ content_for_additional_checkout_buttons }}
  2. Contains textarea for cart.note
  3. Update button properly updates quantities while retaining cart note
  4. Proper message is displayed when cart is empty


  1. Blog tags are presented elegantly and can be used for filtering articles
  2. Blog excerpt used when there is one in blog.liquid (you can use {{ article.excerpt_or_content }})
  3. When blog is filtered with tag, must be clear which tag is being used to filter.
  4. Pagination works properly
  5. Blog atom feed subscribe link is visible on all blog pages


  1. Comments are paginated
  2. article.published_at is used (not article.created_at)
  3. Uses blog.previous_article and blog.next_article to navigate between blog articles
  4. Comments workflow works with and without moderation, and all success/error messages are properly output.


  1. Proper message when there are no search results
  2. Pagination works properly


  1. collection.image must be used as the collection thumbnails. If collection.image does not exist for a collection, use the thumbnail image of the first product in that collection.

Customer accounts

  1. Must have log in, log out, and register link in theme.
  2. All seven customer account templates are properly styled.

Theme settings

  1. Theme Settings should not be overwhelming nor tedious.
  2. The demo store should be easily reproduced using the theme settings (i.e. no custom modifications were made to the demo store.)
  3. Do not include a setting to remove “{{ powered_by_link }}”
  4. Logo upload must work with images of different aspect ratios (ex: landscape vs. portrait).
  5. Include a setting for uploading a custom background image.
  6. Include settings to set CSS background-position and background-color
  7. Include settings for social icons. Customers must be able to enter the URL of their social pages, and the URL must be applied to their respective icons
  8. Settings to change fonts for headings and regular text

Slideshow (Optional)

Having a slideshow in your theme is optional. If you do have a slideshow, your theme must meet the following requirements:

  1. Slideshow can be disabled without causing any Liquid/Javascript errors
  2. Each slide must have a checkbox to turn enable/disable.
  3. Exact dimensions suggested on theme settings page
  4. data-max-width used in settings.html
  5. Does not break when slides have unequal height
  6. Match between suggested size and data-max-width/data-max-height
  7. Slides can point somewhere and the links are editable
  8. Default links are to pages that exist by default in a new shop

Checkout pages

  1. Styled via a checkout.css file
  2. Uses same logo that is uploaded through Theme Settings
  3. Uses same background image that is uploaded through Theme Settings


  1. Theme must contain the code snippet for Title, Meta Description, Duplicate Content from the SEO for Theme Designers article.
  2. Heading tags are used in a way that makes sense for SEO


  1. Theme contains multiple presets (maximium of three)
  2. Uses matching link lists to create dropdowns in the Main Menu (see this article).
  3. Uses tags for dropdowns for the Main Menu link list.