AI 驱动的混合搜索正在封闭测试中。 加入等待列表,获取早期访问权限!

转到主页Meilisearch 的标志
返回文章
2024 年 8 月 19 日

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

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

Laurent Cazanove
Laurent CazanoveDX 工程师 & 文案@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 与每个商店关联,该 ID 称为商店域

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

Shopify 商店域

安装 Shopify 无头

在 Shopify Marketplace 中,找到 无头应用程序 并安装它。安装后,单击创建店面

然后,我们将更新 API 访问权限。在管理 API 访问权限部分中,单击店面 API 旁边的管理

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

  • unauthenticated_read_product_inventory
  • unauthenticated_read_customer_tags

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

Shopify 应用店面 API 令牌

创建 Shopify 应用

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

要创建 Shopify 应用

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

创建应用后,导航到 API 凭据选项卡以查找您的 Shopify 应用的 API 密钥(不是 API 密钥!)。

Shopify 应用 API 密钥

配置 Shopify 管理员 API 密钥

Shopify 应用使用一组两个密钥

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

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

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

  • 管理员 API 集成部分中,单击配置
  • 启用以下范围
    • write_product_listings
    • read_product_listings
    • read_products
    • write_products
  • Webhook 订阅下,选择 2024-01 API 版本
  • 保存 🙂

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

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

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

Shopify 应用管理员 API 令牌

创建您的 Meilisearch 数据库

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

如果您没有,请创建一个 Meilisearch 云帐户。如有必要,您可以首先了解如何 开始使用 Meilisearch 云

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

首先,创建一个新的项目,例如,Shopify 商店。这将创建一个新的 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://127.0.0.1:3000 访问您的应用程序 🎉

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

进一步探索

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

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


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

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

How to add AI-powered search to a React app

如何为 React 应用程序添加 AI 驱动的搜索功能

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

Carolina Ferreira
Carolina Ferreira2024年9月24日
Meilisearch 1.8

Meilisearch 1.8

Meilisearch 1.8 带来了负面关键词搜索,改进了搜索的稳健性和 AI 搜索,包括新的嵌入器。

Carolina Ferreira
Carolina Ferreira2024年5月7日
Meilisearch 1.7

Meilisearch 1.7

Meilisearch 1.7 稳定了排名分数详情,为 Hugging Face 嵌入添加了 GPU 支持,并集成了最新的 OpenAI 嵌入模型。

Laurent Cazanove
Laurent Cazanove2024年3月12日