机器翻译。波兰语为规范文档。

面向开发者

从 API 密钥到店铺订单:菜单、配置、时段、结账、结果与状态。外加保密密钥的路径。

Partner API v1 把店铺或收银台接入 Delieta。密钥决定公司:请求绝不包含 companyId 或 tenantSlug。金额以整数格罗什表示,币种只有 PLN。有两种形式:店铺(可发布密钥,放在店铺服务端)和自有系统(保密密钥)。

签发密钥

在面板中:设置 → 面向开发者。密钥文本只显示一次。格式:dlt_live_… 或 dlt_test_…。以 Authorization: Bearer … 或 x-delieta-api-key: … 发送。

  • 可发布密钥恰好是 catalog:read + checkout:create。店铺把它放在服务端,不放浏览器。
  • 保密密钥另外带有 orders:write、eta:quote、reservations:write 或 catering:write。它只留在服务器上,绝不用 NEXT_PUBLIC_。
  • 测试密钥读取与正式相同的产品并计算报价,但所有写操作都会被 test_key_readonly 拒绝。创建订单需要 dlt_live_…。

店铺:从菜单到状态

店铺循环由六次读写组成,都使用可发布密钥:

  1. GET /api/v1/menu — 密钥所属公司的产品。
  2. GET /api/v1/shop-config — 品牌、营业时间、模块、下单规则。
  3. GET /api/v1/checkout/slots — 店铺何时接单。
  4. POST /api/v1/checkout — 购物车 { itemId, quantity, options? };价格由 Delieta 计算。需要 Idempotency-Key。
  5. GET /api/v1/checkout/result — 在线支付结果,供确认页面使用。
  6. GET /api/v1/orders/{id}/status — 订单在哪里,供跟踪页面使用。

客户端发送买什么,绝不发送多少钱。在线支付返回 url,现金立刻返回 trackingUrl;把这个地址交给顾客。店铺状态(modules、ordering、hours、closures)从 shop-config 读取,不要猜。预订、咨询和餐饮是单独的操作,见 Partner API。

自有系统:报价与订单

收银台或合作方渠道使用保密密钥,并调用:

  1. POST /api/v1/quotes — 到某个地址的分钟窗口(eta:quote)。始终是范围,绝非保证。
  2. POST /api/v1/orders — 使用你提供的价格的订单(orders:write)。Idempotency-Key 为必填。
  3. GET /api/v1/orders/{id} — 读取订单进度(orders:write),计入读取限额。

201 响应带有 order.trackingUrl:你交给客户的链接,即 /o/… 页面。不要另建第二个跟踪地址。公司要求接单确认时,订单从 pending_acceptance 开始;改变状态的是厨房里的人或超时,不是你的后端。

店铺契约与 Webhook

店铺的后端是 @delieta/shop-runtime 包,而不是店铺仓库里的文件:这就是店铺契约描述的内容。Delieta 发给店铺的只有一个签名的刷新信号,见 Webhook。没有订单状态 webhook — 状态用 GET 读取。

完整说明,与 GET /api/v1/openapi 一致:Partner API。