# Theme Store 要求

> 主题要在 Shoplazza Theme Store 上架必须满足的完整清单：独家性、与免费主题的差异、功能、性能与设置规范。

创建 theme 时，请参考以下要求清单。

所有 theme 必须满足以下所有要求才能在 Shoplazza Theme Store 上发布。如果您的 theme 缺少清单中的任何要求，提交将被拒绝，您需要在 theme 重新提交之前进行进一步修改。为降低被拒绝的风险，您还应彻底[测试您的 theme](./testing)。

Theme 在提交前必须经过充分测试，以确保功能和质量。测试不够充分的 theme 将被拒绝而不进行进一步审核，多次违规可能导致暂停和/或永久拒绝。

了解 theme 审核流程以及如何[将 theme 提交到 Shoplazza Theme Store](./review-process/submit-theme)。

## 1. Theme Store 独家性

Theme Store 上的 theme 必须对 Shoplazza Theme Store 保持独家，不得包含外部营销材料，以确保商家持续享有最高质量的 theme 和最新功能。

所有 theme 必须满足以下独家性要求：

* 在 Shoplazza Theme Store 上架的 theme 只能通过 Shoplazza Theme Store 分发，不得在其他平台上分发。

* Shoplazza Theme Store 上的 theme 不得包含设计者署名，例如指向 theme 开发者网站的链接或任何联盟链接。

## 2. 与 Shoplazza 免费 theme 的独特性

如果您基于我们的参考 theme [Nova 2023](../developer-tools/nova-2023) 构建 theme，您的 theme 需要与 Nova 2023 有实质性差异。您必须对 theme 的设计和功能进行有意义的改变和创新。以下是我们关注的要点：

* 与您的 theme 代码对比时，Nova 2023 的原始代码库应难以辨认。

* 您的 theme 提交应具有独特的身份。您应仅将 Nova 2023 的设计元素作为占位符，在构建 theme 时进行替换或重新设计。

* 您的 theme 应有明确的行业定位。

* 您的 theme 应具有创新的艺术方向，以区别于 Nova 2023。您应在 theme 所有主要区域对图标、布局、配色方案、图片处理和其他元素进行修改。

* 您的 theme 在所有 templates 中应具有统一的外观和风格（例如，首页、商品和合集页面、博客、搜索和购物车）。用户不应能够访问处于克隆默认状态的 section 或页面，使用这些默认资源会使 theme 缺乏统一性。

## 3. 功能

功能丰富的 theme 支持商家的多样化需求，使每位商家都能以适合其业务的方式使用 theme。

所有 theme 必须支持以下功能：

* **Sections Everywhere** - 参阅 [Templates、sections 和 blocks](#4-templatessections-和-blocks)。

* **折扣** - 在购物车、结账和订单 templates 中显示单个商品和整个订单的折扣金额。购物车页面必须支持折扣。

* **搜索筛选** - 使用搜索筛选功能，让顾客能够在合集和搜索页面根据商品库存状态、价格、类型、供应商和 variant 选项进行筛选。需要在合集页面和搜索页面支持搜索筛选。

* **社交分享图片** - 添加 page\_image object 用于社交分享，让商家在社交媒体（如 Facebook 或 Pinterest）上分享店铺链接时能显示缩略图。

* **多级菜单** - 添加嵌套菜单，使商家能够创建多级下拉菜单。

* **邮件订阅表单** - 添加邮件订阅功能，让商家可以收集顾客电子邮件地址用于电子邮件营销活动。

* **商品推荐** - 在商品页面添加 section，展示自动生成的商品推荐列表。向顾客展示推荐商品可以帮助他们发现新产品，并有助于增加在线商店销售额。

* **丰富的商品媒体** - 在 theme 商品页面添加丰富的商品媒体，例如嵌入式视频以及 Vimeo 或 YouTube 视频。

* **搜索框或搜索链接** - 包含 [search template](../architecture/templates/search)。

* **Variant 图片** - 使 theme 能够使用 variant 图片，让商家可以为商品 variant 关联图片。

## 4. Templates、sections 和 blocks

商家可以使用 sections 和 blocks 来排列页面 templates，这为店铺内容提供了更大的灵活性，让商家无需编辑代码即可控制在线商店的外观和风格。

### Template 支持要求

Theme 必须支持以下 templates 及其格式：

* `theme.liquid`（layout 文件）
* `404.liquid`
* `collection.liquid`
* `index.liquid`
* `page.liquid`
* `product.liquid`
* `search.liquid`
* `settings_schema.json`（配置文件）

### Section 支持要求

* 所有 templates 必须支持 sections（JSON templates），但顾客账户页面、礼品卡页面和结账页面除外，这些页面不需要支持 sections。

## 5. Lighthouse 性能和无障碍性

性能和无障碍性是商家选择在线店铺 theme 时的重要因素。针对性能和无障碍性优化 theme 是您所支持商家的成功以及其顾客体验的关键。

Lighthouse 性能和无障碍性要求：

* Theme 在商品、合集和首页（桌面端和移动端）的 Lighthouse **性能得分**平均值**至少**为 **60**。

* Theme 在商品、合集和首页（桌面端和移动端）的 Lighthouse **无障碍性得分**平均值**至少**为 **90**。

验证性能和无障碍性得分时，sections 必须包含实际图片和内容，不能为空。

### 测试 theme 性能

您可以在向 Shoplazza Theme Store 提交 theme 之前，通过对基准商店运行性能测试来快速测试 theme 的性能。

### 测试 theme 无障碍性

您可以在向 Shoplazza Theme Store 提交 theme 之前，通过对基准商店运行无障碍性测试来快速测试 theme 的无障碍性。

## 6. 页面

在 theme 中包含精心设计的页面类型，使商家能够构建运营在线商店所需的所有元素。

### 商品页面要求

* 商品页面必须包含以下商品信息：
  * `product.title`（不截断）
  * `variant.price`
  * `product.description`

* 所有商品图片必须可以显示和查看，不同的图片比例不应破坏布局。

* 选择关联 variant 时必须显示 variant 图片。

* 商品页面必须包含以下购买功能：
  * Variants 拆分为单独选项供用户选择。
  * 选择数量的功能。
  * **加入购物车**按钮（通常在选择不可用的 variant 组合或已售罄的 variant 时禁用或替换）。
  * 更新当前所选 variant 的价格、对比价和售罄提示的回调函数。
  * 页面加载时显示第一个可用 variant。

* 商品页面必须支持以下功能：
  * 商品推荐
  * 丰富的商品媒体

### 合集页面要求

* 必须输出 collection object 的以下属性：
  * `collection.title`（不截断）
  * `collection.description`
  * `collection.image`

* 商品必须以网格或列表形式展示，输出 [product object](/docs/theme/references/liquid/objects/product) 的以下属性：
  * `product.title`（不截断且链接到 product.url）
  * `product.price`
  * `product.images`
  * 至少一件商品媒体

* 商品网格不得因商品图片比例不同而破坏布局。

* 必须提供在[合集](../architecture/templates/collection)内对商品排序的功能。

* 如果合集中没有商品，必须显示相应提示信息。

* 如果商品的 variants 价格不同，使用 `product.price_varies` 显示价格区间。例如，显示 `product.price_min` 到 `product.price_max` 的范围。

* 必须使用分页或懒加载。

### 合集列表页面要求

* 必须输出 [collection object](/docs/theme/references/liquid/objects/collection) 的以下属性：
  * `collection.title`（不截断）

* 必须使用 `collection.featured_image`。如果[合集图片](/docs/theme/references/liquid/objects/collection)不存在，则加载该合集中第一个商品的主图。

* 必须使用分页或懒加载。

### 购物车页面要求

* 必须显示 [line\_item object](/docs/theme/references/liquid/objects/line_item) 的详情，包括：
  * `line_item.title`
  * `line_item.variant.title`
  * `line_item.image`
  * `line_item.price`
  * `line_item.quantity`

* [cart.total\_price](/docs/theme/references/liquid/objects/cart) 必须可见。

* 必须包含提交购物车表单的结账按钮。

* 更新数量时必须刷新所有行项目，确保总价正确更新。

* 必须提供更改每个行项目数量的功能。

### 页面要求

* 必须包含：
  * `page.title`
  * `page.content`

### 博客页面要求

* [blog object](/docs/theme/references/liquid/objects/blog) 的属性必须输出 [blog.title](/docs/theme/references/liquid/objects/blog)。

* 每篇 [article](/docs/theme/references/liquid/objects/article) 必须显示以下信息：
  * `article.title`
  * `article.image`
  * `article.content`

### 搜索页面要求

* 没有搜索结果时必须返回提示信息。

* 必须使用分页或懒加载。

### 404 页面要求

* 必须有清晰的提示信息，说明页面未找到。

* 必须提供后续操作选项，例如搜索栏或首页链接。

### 密码页面要求

* 必须包含以下信息：
  * 店铺 logo 或 `shop.name`
  * `shop.password_message`

## 7. 一致性和功能性

构建功能正常且一致的 theme 可确保商家对您的 theme 质量产生信赖。

所有 theme 必须满足以下功能要求：

* 以下操作在任何情况下（包括禁用 JavaScript 时）必须可正常使用：
  * 通过主菜单及子菜单导航
  * 调整商品表单中的输入
  * 导航到购物车页面
  * 进入结账流程

* 代码中指向 Shoplazza 域名的任何链接可以有多个属性，但必须包含 `rel=nofollow`。

* 所有第三方插件和图片必须获得适当许可。

* Theme 不得包含依赖第三方 App 的功能。

## 8. 浏览器兼容性

确保 theme 让商家能够在不同浏览器中获得相同的信息和体验。

### 桌面浏览器要求

Theme 的布局、浏览体验和购买操作必须支持以下桌面浏览器和版本：

* Safari - Mac 最新两个版本
* Chrome - Mac 和 PC 最新三个版本

### 移动浏览器要求

Theme 的布局必须满足以下移动浏览器布局要求：

* Theme 必须支持移动端响应式。

Theme 的布局、浏览体验和购买操作必须支持以下移动浏览器和版本：

* Mobile Safari - iOS 最新两个版本
* Chrome Mobile - Android 和 iOS 最新三个版本

### Webview 和其他应用要求

Theme 在以下应用的 Webview 中渲染时必须支持浏览和购买操作：

* Instagram - Android 和 iOS 最新版本
* Facebook - Android 和 iOS 最新版本
* Pinterest - Android 和 iOS 最新版本

***

## 9. 搜索引擎优化（SEO）

有效的 SEO 有助于与受众建立更好的关系，改善商家体验，并为 theme 带来更多流量。

所有 theme 必须满足以下 SEO 要求：

* Theme 必须包含 SEO 标题、Meta 描述和重复内容的代码片段。

* Theme 必须包含 Google 的丰富商品 snippets。如需测试结构化数据，请使用 [Google 结构化数据测试工具](https://developers.google.com/structured-data/testing-tool)。

* Theme 不得包含 `robots.txt.liquid` template。

***

## 10. 设置 {#10-settings}

以不会让商家混淆的方式组织和命名内容非常重要。为 sections 和 presets 等元素使用清晰、简洁的名称和简单的 setting 结构，可以使 theme 更易于使用和导航。

### 基本要求

* 必须有 favicon setting。
* 所有 [settings](../architecture/config/settings-schema-json) 必须有标签。
* 必须有 [theme\_info](../architecture/config/settings-schema-json) section。

## 11. Theme 和 theme 风格命名

为 theme 选择好名称在向 Theme Store 提交时非常重要。Theme 名称有助于商家理解您的 theme，并最终帮助他们选择适合自己独特需求的 theme。

### Theme 和风格命名要求

* Theme 名称必须与 Shoplazza 产品有所区别。您不能使用与 Shoplazza 产品、活动或品牌内容相同或相似的名称。例如，不要将 theme 命名为 Shoplazza、Shoplazza theme 等。

* Theme 名称必须与公司名称有所区别。您不能在 theme 名称中包含公司名称或 Shoplazza Partner 账户名称。您的 Partner 账户名称会自动显示在 theme 列表页面上。

* Theme 名称必须与网站、电商平台和 SEO 相关利益有所区别。例如，不要将 theme 命名为 Slideshow、Performance、Mobile 或 Sales。

* Theme 名称必须与 Theme Store 中的行业和合集有所区别。例如，不要将 theme 命名为 Fashion、Electronics 或 Jewelry。

* Theme 名称必须不超过 14 个字符。

### Theme 命名指南

使用以下指南帮助您为 theme 选择合适的名称：

* 总结或暗示 theme 的用途。

* 让商家了解使用 theme 的预期效果、theme 背后的核心理念以及 theme 的目标用户群体。

* 使用名词作为名称。名词更适合创造能够留下深刻印象、具有辨识度的产品名称。名词能更好地定义 theme 的重点，并让人更好地理解所提供的购物体验。

* 使用易于拼写和发音的名称。这将有助于商家的记忆和搜索。

* 适用于不同方言。由于某些词语和短语在不同地区可能有不同含义，建议参考习语词典。

* 使用与其他平台 theme 名称不同的名称。

### Theme 风格命名指南

使用以下指南帮助您为 theme 风格选择合适的名称：

* 反映 theme 风格的设计和美学。

* 使用形容词作为 theme 风格名称。形容词非常适合描述颜色、字体和设计。

* 与 theme 名称相辅相成，而不是相互竞争。商家经常将 theme 风格误认为 theme 名称，这在他们联系支持寻求帮助时会造成混乱。

* 为同一 theme 的多个风格名称使用共同主线。

### 提高清晰度和可发现性

为了清晰度和可发现性，在命名 theme 和 theme 风格时请考虑以下指南：

* 不要使用时髦名称。趋势会消退，而 theme 名称应超越趋势。

* 不要使用非常规拼写。非常规拼写不仅更难记忆，而且更容易出现自动更正错误，并限制商家的可发现性。

* 不要使用冗长的名称。即使您想要有描述性，创建过长的名称也会影响商家记住 theme 名称的能力。

* 不要使用与其他平台 theme 相同的名称。

* 不要为 theme 和 theme 风格使用相同的名称。

## 12. Theme 版本和发行说明

Theme 版本有助于商家轻松识别他们拥有的 theme，以便确定哪些功能可用，或是否有更新版本可以更新。

当您向 Shoplazza Theme Store 提交 theme（无论是首次提交还是更新）时，theme 需要有[版本号](./success/updating-your-theme#版本控制)和[发行说明](./success/updating-your-theme#发行说明)，突出显示该版本的主要功能。

## 13. 演示店铺

建立演示店铺是展示 theme 功能的绝佳方式，可以为商家提供如何使用 theme 的真实示例。精心设计且运行流畅的演示店铺让商家能够探索和体验您的 theme，帮助他们了解 theme 是否适合他们。

构建演示店铺，您可以免费使用 Shoplazza 开发店铺。

### 演示店铺要求

* 所有 theme 必须至少包含一个演示店铺。

* 每个 preset 需要一个演示店铺，每个 theme 最多可使用 5 个演示店铺。

* 每个演示店铺都启用了 Bogus Gateway，并禁用了所有其他结账选项。

* 所有演示店铺页面必须使用真实的文字内容，不要使用占位文本或引导文本，不得包含不雅词汇。

* powered\_by\_link 链接不得修改，且只能包含 powered\_by\_link。

* 不允许使用联盟链接。

* 代码中指向 Shoplazza 域名的任何链接必须包含 rel="nofollow" 属性。

* 为避免让商家产生混淆，演示店铺只能展示 theme 内置的元素和功能。例如：

  * 不要在图片中嵌入文字或按钮，实体商品上的文字、信息图表、徽章或 Instagram 图片除外。

  * 不要使用动态 gif 图片。

  * 不要使用 App。在某些情况下，Shoplazza 的商品评价和免费翻译 App 可能有特殊考量。如果您使用翻译 App 展示多语言选项，则所有内容必须已翻译。

### 演示店铺建议

设计演示店铺时，考虑以下建议以充分展示 theme 的潜力。以下建议不是提交的强制要求。

* 确保所有图片和内容已获得适当版权。

* 注明商品描述中使用的商品图片来源。

* 在演示店铺中使用 theme 的最新版本。

* 加入 Shoplazza 内置功能，展示 theme 的强大功能和能力。

* 通过包含促销商品、售罄商品或 variant，或具有多个 variants 的商品等示例，展示 theme 的多样性和可变性。

## 14. 文档和联系表单

提供清晰、详细且易于访问的 theme 信息有助于商家获得支持，并减少支持问题。创建有组织且有效的文档对您作为 Theme Partner 的整体成功至关重要。

### 文档和联系表单要求

* 您必须提供 theme 文档和公开的支持联系表单。

* 您必须在 theme 发布前准备好文档和联系表单。

* 您必须在 Shoplazza Theme Store 的 theme 列表页面上链接您的文档和联系表单。

### 面向商家的 theme 文档

随着 Shoplazza 内部变化以及您更新 theme，您需要保持文档的最新状态。在支持使用您 theme 的商家时，确保找出文档中的不足之处并及时更新。

您的 theme 文档应包含常见问题解答部分以及任何其他您认为可以帮助解决商家可能遇到的支持问题的相关信息。

### 联系表单

您的联系表单让商家可以联系您，应将联系表单包含在 theme 文档中。如果您为联系表单使用模态弹窗，请确保它适合移动端且可以从 Theme Store 链接访问。尽量避免询问商家预算、电话号码、项目类型或其他不必要问题的字段。您可以在单独的页面上展示代理业务的表单，但从 Theme Store 链接的联系表单应遵循以下指南：

| 字段                       | 指南                                                                                                                         |
| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |
| （名字和姓氏）姓名字段     |                                                                                                                              |
| 电子邮件地址字段           |                                                                                                                              |
| 店铺 URL 字段              | 包含示例 URL 以便清晰说明，例如 [http://www.storename.myshoplaza.com](http://www.storename.myshoplaza.com)。                |
| 问题描述字段               | 这应该是一个文本区域字段。                                                                                                   |
| 文件上传功能               | 允许商家通过图片突出显示问题。                                                                                               |
| 自动回复功能               | 自动回复在提交联系表单时触发，以减少商家联系 Shoplazza 和 Theme Partners 询问支持请求是否已收到的次数。                     |
| Theme 名称                 | 如果您提供多个 theme，请提供 theme 名称。                                                                                    |
| 主题                       | 如果包含此字段，则应自动填充电子邮件主题行。                                                                                 |

## 15. 支持您的 theme

作为 Theme Partner，您有责任支持使用您 theme 的商家。以商家为中心、提供高质量支持以及与 Shoplazza 保持合作态度，对于 theme 的成功至关重要。

商家支持请求通过您的[联系表单](#联系表单)提交，您应从 Shoplazza Theme Store 和 theme 文档中链接到该表单。

### 商家支持要求

* 您必须协助商家解决与 theme 相关的问题。

* 您必须在两个工作日内回复商家的支持请求。

* 如果 theme 存在技术问题，例如布局损坏、失效链接或逻辑错误，您有责任及时修复该问题。

* 您必须立即修复关键性 bug，否则您的 theme 可能会暂时从 Theme Store 下架。

### 评估支持工作量

成为 Theme Partner 是一份全职工作，支持使用您 theme 的商家是其中很大的一部分。我们当前的所有 Theme Partner 都有专门的支持团队为他们工作。如果您成为 Theme Partner，则需要考虑如何平衡 Theme Partner 工作与您目前正在做的其他工作。新 Theme Partner 通常会低估分配给支持工作所需的时间。

为了了解支持 theme 所需的工作量，目前 Shoplazza 商家每月为 Shoplazza Theme Store 付费 theme 产生数千个支持工单，随着更多商家加入平台，支持请求还在持续增长。
