@fayz-ai/ shop (中文(简体) )
每个费兹店面背后的商业层——产品,订单,顾客,折扣,航运.
状态 : β-发布至npm并在整个法伊兹狗食应用. 事前1.0:小API在1.0之前可能会有变化.
@fayz-ai/shop 是无头电子商务引擎: a ShopProvider 合同加上产品、推车、订单、客户、折扣和货运的域名。 它拥有 商业意味着什么 故取库前@fayz-ai/storefront),而管理员表面只须使出.
提供商优先设计. 运送演示 createMockShopProvider输入 createSupabaseShopProvider (或你自己的) ShopProvider) 对于真实数据——UI没有变化. 租房是通过可插接的解决器解决的,所以同一个引擎为一商店或上千个市场服务.
里面的东西
ShopProvider合同 – 每个后端执行器都有一个接口- 供应商 —— 说
createMockShopProvider(下行)和createSupabaseShopProvider(实数) - 运行时间 —— 说
getShopProvider编号 :setShopProvider单通线 - 租赁 —— 说
setShopTenantResolver编号 :getShopTenantId多层隔离 - 公有领域类型 - 产品、订单、客户、折扣、运输
StockStore合同 (单位:千美元)@fayz-ai/shop/inventory)——库存作为仅作为附件的分类账,而不是一个分级账,一个Supabase和一个共用合同套房的内存执行
安装
npm install @fayz-ai/shop
端点 : @fayz-ai/core, (中文(简体) ), @fayz-ai/ui, (中文(简体) ), @fayz-ai/auth (+反应,反应-度).
使用量
import { setShopProvider, createSupabaseShopProvider } from '@fayz-ai/shop'
setShopProvider(createSupabaseShopProvider({ /* supabase + storeId */ }))
库存为分类账:变动情况随附,结余来源于这些分类账 available = on_hand − reserved同一守则与执行两者都背道而驰.
import { createSupabaseStockStore } from '@fayz-ai/shop/inventory'
const stock = createSupabaseStockStore()
await stock.recordMovement({
variantId,
kind: 'receipt', // vocabulary rows, not a hardcoded enum
reasonCode: 'purchase',
quantity: 12, // signed; the kind's direction decides the sign
idempotencyKey: `po-1180:${variantId}`, // a retry returns the same movement
})
await stock.getAvailable(variantId)
费兹SDK的一部分
商业引擎 @fayz-ai/storefront 建立和建立 @fayz-ai/plugin-shop 管理者。 与 @fayz-ai/sdk用于生成商店前端的商店客户端 .
路线图贡献( I)
建设并不断发展于开阔. 见 费兹SDK路线图。 。 。 .