指南

如何搭建在线商店:商品目录、购物车、结账与库存

搭建在线商店,你需要一个商品目录、一个购物车、一个通过 Stripe 等支付服务商收款的结账流程、一种记录订单并扣减库存的方式,以及一个用于发货的后台。AI 应用搭建工具可以根据清晰的描述把这些都组装起来。真正需要多想的不是店面,而是与钱相关的部分:订单何时才算已付款、库存如何预留,以及税费、运费和退款如何处理。

自建商店还是 Shopify?先决定这一点

在动手之前,先诚实地做这个判断。

以下情况下,托管式电商平台(Shopify、Squarespace Commerce、WooCommerce 等)通常更好:

  • 你卖实物商品,需要运费规则、物流面单和退货处理
  • 你需要在很多地区计算税费
  • 日常添加商品、处理订单的是不懂技术的团队
  • 你想要一个插件应用商店,例如评价、邮件营销、会员积分
  • 你在多个渠道销售,需要统一的库存数

Shopify 的套餐是按月订阅,按年付费有折扣,刷卡还要另外支付手续费。具体价格因地区而异,请以你所在国家的定价页面为准。

以下情况下,自建商店往往更合适:

  • 产品比较特殊:按需定制的配置器、预约加商品、带授权的数字下载、为每个客户单独定价的 B2B 价目表
  • 商店只是一个更大应用的一部分(课程平台、会员站、市场)
  • 你的商品目录很小,希望完全掌控设计和结账流程
  • 你希望拥有代码,避免被平台绑定

对大多数小卖家来说,使用平台更合适。如果你的需求很常规,这是好事,直接走捷径就行。

在线商店需要什么

数据

数据表关键字段
商品(Products)名称、slug、描述、图片、价格、是否上架、分类
规格(Variants)所属商品、规格值(尺码、颜色)、SKU、单独价格、库存
订单(Orders)订单号、客户邮箱、收货地址、状态、小计、运费、税费、总额、支付 ID
订单明细(Order items)所属订单、规格、数量、下单时的单价
库存流水(Stock movements)规格、变动量(+/−)、原因(销售、补货、退款、更正)、日期
优惠码(Discount codes)代码、类型、金额、有效期、使用次数上限——以后再做,不必第一批就上

务必在每条订单明细上保存下单时的价格。如果下个月你改了价格,旧订单仍然必须显示客户当时实际支付的金额。

页面

  • **店面:**首页、分类或系列页、商品页、购物车、跳转结账、订单确认页。
  • **后台:**商品与库存、带状态的订单(已付款、已打包、已发货、已退款)、客户、简单的销售数据。
  • **法律与政策:**配送、退货、隐私和条款。买家在下单前会查看这些内容,许多地区的法律也要求其中部分内容必须提供。

权限

让买家无需注册账户即可下单,访客结账可以少一步,账户功能可以之后再加。只有管理员可以查看订单、编辑商品,请用真正的登录和服务器端权限校验来保护后台。

结账应该怎么做

自建商店最安全的做法是使用托管式结账页面。以 Stripe 为例:

  1. 买家点击结账。你的服务器从数据库重新核对价格和库存,绝不信任浏览器发来的数据,然后创建一个 Stripe Checkout 会话。
  2. 买家在 Stripe 的页面上付款,银行卡信息不会经过你的服务器。
  3. Stripe 调用你应用的 webhook 接口,告知付款成功。只有到这一步,你才把订单标记为已付款并扣减库存。
  4. 买家跳转到你的确认页面,你再发送确认邮件。

需要避免两个错误:一是在成功页面的跳转中创建“已付款”订单(用户可能关掉标签页,而且跳转可以被伪造);二是在浏览器里计算总价。这两点如果你没有明确告诉 AI,它很容易出错。

Stripe 的标准费率是每笔成功刷卡交易收取一定百分比加一笔固定费用,没有开通费和月费(截至 2026 年 9 月);具体费率取决于你所在的国家和银行卡类型。请先在 Stripe 测试模式下使用其测试卡号完成全部搭建。我们的为应用添加支付指南涵盖了密钥、测试模式和 webhook。

税费、运费和库存的决定

以下都是 AI 无法替你做出的商业决定:

  • **税费。**你是否必须收取销售税或增值税,以及税率多少,取决于你和客户所在的地区。Stripe 提供相关产品(Stripe Tax),如果你的情况比较简单,也可以直接设置固定税率。拿不准时请咨询会计师。
  • **运费。**可以先从几个固定费率开始(国内、国际、满额包邮)。实时的承运商运费和打印物流面单,正是 Shopify 等平台为你节省大量工作的地方。
  • **库存。**你需要决定库存是在结账开始时预留,还是只在付款成功后才扣减。对小店来说,付款后扣减库存并在结账前再次核对更简单;但偶尔会出现最后一件商品被超卖的情况,所以要提前想好如何处理。如果需要超出店铺本身的库存管理,请参阅如何搭建库存管理应用。

一个好用的首条提示词

为 Loam & Clay 搭建一个在线商店,这是一家销售马克杯、碗和花瓶的小型陶瓷工作室。店面包括:带精选商品的首页;带分类筛选的商店页;带图片画廊、颜色规格和库存状态的商品页;以及可滑出的购物车。将商品、规格、订单和订单明细保存在数据库中,并预置 10 件真实感的商品数据。后台(需要登录)可用于添加和编辑商品、上传图片、修改库存,并查看状态为已付款 / 已打包 / 已发货的订单。结账按钮暂时用占位实现,我们接下来再接入 Stripe Checkout。设计温暖、简洁,移动端优先。不要编造评价,也不要写“全球免运费”之类的说法。

先用占位按钮做结账是有意为之:先把商品目录和后台做好,再单独进行支付这一步,这样才能好好测试。

搭建步骤

  1. 商品目录和商品页,使用真实的商品名称、价格和照片。
  2. 购物车,页面刷新后内容依然保留。
  3. 后台:商品、规格、库存、图片上传。用登录保护。
  4. Stripe Checkout,先在测试模式下运行,由服务器重新核对价格和库存。
  5. Webhook,把订单标记为已付款并扣减库存。用测试卡完成端到端测试。
  6. 订单邮件,发给客户和你自己。
  7. 政策与 SEO:配送和退货页面、商品标题与描述、分享图片。参阅AI 搭建网站的 SEO。
  8. 上线:切换为正式的 Stripe 密钥,由你本人下一个真实的小额订单,然后退款。

常见错误

  • **信任浏览器传来的价格。**一定要在服务器端重新计算。
  • 在成功页面上把订单标记为已付款,而不是通过 webhook。
  • 直接覆盖库存数字,而不是记录流水——你会丢失库存变化原因的历史。
  • 上线时没有配送和退货页面。
  • **商品图片过大。**先压缩,并从文件存储中提供,而不是直接打包在代码里。
  • 在第一笔销售之前就做愿望单、评价和积分。

运营成本

需要预留的费用包括:托管和数据库、每笔销售的支付手续费、域名、用于发送订单确认的邮件服务,以及可能需要的税务服务。自建商店不需要平台月费和应用插件费,但你要承担维护工作:结账出问题时,修复责任在你。

如果你希望让自己以外的多个卖家入驻,并分别向他们结算,那就是市场平台,支付规则也完全不同。请参阅如何搭建市场平台。

用 Mythex 来搭建

在 Mythex 上,你描述商店需求,智能体会在实时预览中搭建商品目录、购物车和后台;商品和订单存放在 Postgres 数据库中,商品图片则保存在文件存储里。Mythex 文档中的商店用例推荐的正是上面的顺序:先做商品目录,最后再接入结账。

支付使用你自己的 Stripe 账户:把 Stripe 密钥添加为项目密钥,然后让智能体接入 Checkout,并在预览中用 Stripe 测试卡测试(参阅 Stripe 教程)。Webhook 需要公开的 URL,因此要先发布,再把 Stripe 指向它(参阅 webhook 教程)。税费、运费和库存同步不是 Mythex 的内置功能,也没有原生的 Shopify 集成。如果你需要这些功能开箱即用,Shopify 是更好的选择。想要起步参考,可以看看商店模板,例如电商店铺。

常见问题

我能用 AI 搭建在线商店吗?

可以。AI 应用搭建工具可以做出商品目录、商品页面、购物车和订单管理,并用你自己的账户把结账连接到 Stripe 等支付服务商。税费、运费和配送规则仍需你自己决定,并仔细测试。

在线卖货一定要用 Shopify 吗?

不一定。你可以用自建商店加 Stripe 等支付服务商来卖货。如果你希望库存、运费、税费和应用插件由同一个产品统一处理,或者店铺由不懂技术的团队日常运营,Shopify 仍然是更省事的选择。

自建在线商店怎么收款?

大多数自建商店会把买家引导到 Stripe Checkout,即由 Stripe 托管的付款页面,并在 Stripe 通过 webhook 确认付款后再创建订单。你的服务器从不接触银行卡信息,这样更简单也更安全。

怎样保证库存准确?

只在付款确认后才扣减库存,在创建结账前再次核对库存,并把每一次变动(销售、补货、退款)记为一条库存流水,而不是直接覆盖一个数字。在其他渠道售出的商品也需要更新同一份库存。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)