用途:该技能面向需要扩展 Shopify 后端行为的开发场景,用于创建自定义折扣逻辑、定制配送选项、实现支付方式规则、校验购物车或结账、构建订单路由逻辑,以及扩展 Shopify 的后端能力。
主要能力:Shopify Functions 是基于 WebAssembly 的无服务器模块,运行在 Shopify 基础设施上,执行时间为毫秒级、自动扩缩容且升级安全。支持的功能类型包括:Discounts(产品、订单和运费折扣)、Delivery Customization(重命名、重排、隐藏配送选项)、Payment Customization(过滤、重排支付方式)、Cart & Checkout Validation(以错误阻止结账)、Order Routing(控制履约地点)、Cart Transform(修改购物车内容)。
使用方式:在现有应用中运行 shopify app generate extension 生成扩展,并从功能类型中选择。语言可选 Rust(推荐,性能最佳,适合大购物车)或 JavaScript(较易上手,适合较简单逻辑)。扩展结构包含 src/run.rs 或 run.js、input.graphql、shopify.extension.toml 及 Cargo.toml(Rust)。本地测试可使用 shopify app function run --path extensions/my-function,或从标准输入传入 JSON:cat input.json | shopify app function run --path extensions/my-function。部署使用 shopify app deploy,之后可在后台配置。可通过管理端 UI 配置函数设置,例如用 discountAutomaticAppCreate 创建折扣并写入 metafields。
性能最佳实践:大购物车建议使用 Rust,JavaScript 可能超时;精简输入查询,只请求所需数据;避免复杂循环,保持逻辑简单;一次性解析 metafield 以缓存配置;使用真实数据测试,包括大购物车场景。
限制:资料未提供具体收费、价格或额度信息。文档提示 JavaScript 在大购物车场景可能超时,建议改用 Rust;输入查询应尽量精简。结账 UI 定制需参考 checkout-customization 技能,不属本技能范围。其余平台支持与详细约束暂未提供。