想要更好地控制您的搜索设置?了解我们的灵活的基础设施定价

回到主页Meilisearch 的标志
返回文章

使用 Blazity 构建您的 Next.js Shopify 店面

学习如何使用 Next.js 和 Blazity 商务入门套件构建 Shopify 店面。

2024年8月19日6分钟阅读
Laurent Cazanove
Laurent Cazanove开发者体验工程师@StriftCodes
Build your Next.js Shopify storefront with Blazity

本指南将引导您为Shopify商务设置一个Next.js店面。我们将使用由Blazity开发的开源企业电商入门套件,该套件带有CLI,可让您快速启动。

概述

下图概述了我们应用程序的架构。

Architecture of an application developed with Enterprise Ecommerce start

应用程序堆栈由4个关键组件组成

  • 数据源 — Shopify管理后台、个性化工具等。
  • 搜索引擎 — Meilisearch
  • 全栈应用程序 — Next.js应用程序
  • 第三方集成 — 分析、CRM等。

在此架构中,Meilisearch数据库聚合来自多个源的数据,使其可被Next.js应用程序访问。

我们的最终应用程序将如下所示:实时预览

先决条件

本指南要求

设置

此设置阶段为您提供了应用程序与Meilisearch和您的Shopify商店交互所需的凭据。

这些凭据与安装阶段所需的环境变量匹配。为了清晰起见,本指南将用“✅”表情符号标记每个此类变量。

感谢Blazity提供的说明。如果您遇到问题,请查阅Blazity文档

创建Shopify商店

如果您还没有,请前往Shopify并创建一个新商店。Shopify为每个商店关联一个名为商店域名的唯一ID。

要查找您的Shopify商店域名,请转到设置 > 域名。您的商店域名如下所示:your-domain.myshopify.com

Shopify商店域名

安装Shopify Headless

在Shopify应用商店中,找到并安装Headless应用程序。安装后,点击创建店面

然后,我们将更新API访问权限。在管理API访问权限部分,点击Storefront API旁边的管理

编辑店面API权限,添加以下内容

  • unauthenticated_read_product_inventory
  • unauthenticated_read_customer_tags

保存权限后,您可以复制私有访问令牌

Shopify应用店面API令牌

创建Shopify应用

现在,我们将为我们的商店创建一个Shopify应用。Shopify应用允许您为您的商店构建自定义集成。这个应用将允许我们获取API密钥,以读取和管理Shopify商店中的数据。

要创建Shopify应用

  • 导航到您的商店的Shopify管理仪表板
  • 打开商店的设置并导航到应用和销售渠道选项卡
  • 点击开发应用
  • 如果需要,按照步骤允许为您的商店开发自定义应用
  • 创建应用并输入名称,例如,“Next.js App”

创建应用后,导航到“API凭据”选项卡,找到您的Shopify应用的API密钥(不是API secret key!)

Shopify应用API密钥

配置Shopify Admin API密钥

Shopify应用使用两组密钥

  • 一个管理员API密钥 — 用于管理Shopify管理员,例如编辑您的产品目录
  • 一个店面API密钥 — 用于读取产品目录、创建购物车等

我们可以在Shopify应用的配置选项卡中配置这些API密钥的访问范围。在本节中,我们将启用Admin API密钥所需的范围。

要配置Admin API密钥的范围,请按照以下步骤操作

  • Admin API集成部分,点击配置
  • 启用以下范围
    • write_product_listings
    • read_product_listings
    • read_products
    • write_products
  • Webhook订阅下,选择2024-01 API版本
  • 保存 :)

API版本可能自本指南发布以来已更改。我们建议查看Blazity文档

在定义了我们的令牌API范围后,我们可以返回到API凭据选项卡并安装我们的应用程序。点击安装应用程序以生成您的API访问令牌。

安装Shopify应用程序后,您将可以访问您的Admin API访问令牌。出于安全原因,此令牌只会向您显示一次请务必保存它

Shopify应用管理API令牌

创建您的Meilisearch数据库

Meilisearch是一个开源搜索引擎,提供全文、向量和混合搜索功能。我们的Shopify产品数据将与Meilisearch同步,从而使前端应用程序能够为最终用户提供快速、相关的搜索结果。

如果您没有,请创建一个Meilisearch Cloud帐户。如有必要,您可以先学习如何开始使用Meilisearch Cloud

喜欢自托管?了解如何在本地安装Meilisearch

首先,创建一个新的项目,例如“Shopify store”。这将创建一个新的Meilisearch数据库,并且应该在几秒钟内完成。

然后,您可以导航到项目的“设置”页面,找到您的数据库URL(您的主机)和默认管理API密钥

Meilisearch主机URL

Meilisearch API令牌

我们建议在此步骤启用分析和监控,这样您就不必稍后更改主机。

配置您的Meilisearch

创建数据库后,我们将创建索引。您可以为它们选择任何名称,但您必须相应地配置您的环境变量。让我们创建两个索引

  • 一个用于我们产品的索引,例如products
  • 一个用于我们产品类别的索引,例如categories

Meilisearch产品索引名称

Meilisearch分类索引名称

创建索引后,我们现在可以配置它们。Meilisearch的默认设置对于大多数配置都适用。对于每个索引,我们只需配置可过滤属性和可排序属性。

产品索引 — 可过滤属性

[
	"collections",
	"collections.handle",
	"collections.id",
	"flatOptions",
	"handle",
	"minPrice",
	"tags",
	"variants.availableForSale",
	"vendor",
	"hierarchicalCategories",
	"hierarchicalCategories.lvl0",
	"hierarchicalCategories.lvl1",
	"hierarchicalCategories.lvl2",
	"avgRating"
]

产品索引 — 可排序属性

[
	"minPrice",
	"updatedAtTimestamp",
	"avgRating"
]

分类索引 — 可过滤属性

[
	"handle",
	"id"
]

所有其他属性设置可以保留为默认值。

安装

拥有所有凭据后,我们就可以启动安装向导了。让我们使用Blazity的commerce CLI来创建我们的项目。

# with NPM
npm create commerce

# with Yarn
yarn create commerce

第一个提示将要求您选择要启用的服务。对于本指南,我们将只启用默认服务:Shopify和Meilisearch。

然后,CLI将要求输入一系列凭据。如果您已遵循“设置”部分,则应已拥有所有必要的凭据。提供所有凭据后,CLI将在一个新文件夹中搭建您的项目。

创建后,导航到您的项目目录。您的apps/web/.env.local应该如下所示

# apps/web/.env.local

SHOPIFY_STOREFRONT_ACCESS_TOKEN=shpat_a-very-long-token
SHOPIFY_ADMIN_ACCESS_TOKEN=shpat_another-very-long-token
SHOPIFY_STORE_DOMAIN=your-domain.myshopify.com
SHOPIFY_APP_API_SECRET_KEY=a-32-characters-long-api-key
SHOPIFY_HIERARCHICAL_NAV_HANDLE=hierarchical-categories
MEILISEARCH_PRODUCTS_INDEX=products
MEILISEARCH_CATEGORIES_INDEX=categories
MEILISEARCH_ADMIN_KEY=your-meilisearch-admin-api-key
MEILISEARCH_HOST=https://edge.meilisearch.com
LIVE_URL=https://your-domain.myshopify.com
FLAGS_SECRET=randomly-generated-secret
CRON_SECRET=another-randomly-generated-secret

同步Meilisearch和Shopify

Blazity提供了一个CLI工具,用于同步Shopify和Meilisearch之间的数据。在本节中,我们将介绍如何使用commerce-cli来实现这一点。

要将您的Shopify数据与Meilisearch同步,请导航到您的项目文件夹并运行

npx commerce-cli@latest sync

此命令将从您的Shopify商店拉取所有必要数据并将其同步到您的Meilisearch数据库。

此外,commerce-cli可以帮助您配置 webhook,以使您的 Meilisearch 始终保持同步。

启动您的应用程序

初始化应用程序并同步Shopify和Meilisearch之间的数据后,您就可以启动应用程序了。

要在开发模式下启动您的应用程序,请运行

# with NPM
npm run dev

# with Yarn
yarn dev

就是这样!您可以通过https://:3000访问您的应用程序 🎉

您也可以在此处查看实时示例:https://commerce.blazity.com/

进一步学习

本指南并未涵盖Blazity模板中所有可用功能。如需更高级的配置,您可以学习如何在Blazity文档中设置分层类别、实现高度可扩展的重定向等。

此外,这里有一些资源可以帮助您将新的Shopify商店与Meilisearch和Next.js集成


订阅我们的月度新闻通讯,随时了解Meilisearch的所有动态。要了解更多关于Meilisearch的未来并帮助塑造它,请查看我们的路线图并参与我们的产品讨论

如有其他问题,请在Discord上加入我们的开发者社区。

Meilisearch indexes embeddings 7x faster with binary quantization

Meilisearch 使用二值量化将嵌入索引速度提高7倍

通过在向量存储 Arroy 中实现二值量化,显著减少了大型嵌入的磁盘空间使用和索引时间,同时保持了搜索相关性和效率。

Tamo
Tamo2024年11月29日
How to add AI-powered search to a React app

如何向 React 应用添加 AI 驱动的搜索

使用 Meilisearch 的 AI 驱动搜索构建 React 电影搜索和推荐应用。

Carolina Ferreira
卡罗莱纳·费雷拉2024年9月24日
Meilisearch is too slow

Meilisearch 太慢了

在这篇博文中,我们探讨了 Meilisearch 文档索引器所需的增强功能。我们将讨论当前的索引引擎、其缺点以及优化性能的新技术。

Clément Renault
克莱门特·雷诺2024年8月20日
© . This site is unofficial and not affiliated with Meilisearch.