寻求可程序化应用购物车商品折扣的Shopify APP
Shopify 预结账程序化折扣实现方案
核心落地逻辑
- 第一步先做结账跳转拦截:修改主题内的前端JS逻辑,阻断默认的结账跳转行为,在跳转前完成和自定义APP的AJAX交互,不要依赖Shopify原生的结账触发流程。
基础拦截代码参考:// 全局拦截结账按钮触发事件 const checkoutTriggers = document.querySelectorAll('a[href="/checkout"], [data-action="checkout"], button[name="checkout"]'); checkoutTriggers.forEach(trigger => { trigger.addEventListener('click', async (e) => { e.preventDefault(); // 拉取最新购物车数据 const cart = await (await fetch('/cart.js')).json(); // 向你的自定义Shopify APP后端发起折扣计算请求 const discountResp = await fetch('/apps/你的应用接口路径/calc-discount', { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ cart, customer: window.Shopify?.customer || null }) }); const discountData = await discountResp.json(); // 交互完成后执行后续逻辑 if (discountData.pass) { // 折扣已写入购物车/生成专属结账链接,执行跳转 window.location.href = discountData.checkoutUrl || '/checkout'; } else { // 展示不满足折扣规则的提示,不跳转 alert(discountData.tip); } }, true); }); - 第二步选折扣落地的技术方案,目前成熟的可选路径有两个:
- Draft Order 方案(全套餐通用):APP后端接收到AJAX传来的购物车数据后,按照你在APP后台配置好的折扣规则(满减、组合优惠、专属用户价等)计算好对应优惠金额,调用Shopify Admin API创建绑定对应折扣的Draft Order,将生成的专属结账链接返回给前端。这个方案不需要商家升级Shopify Plus,折扣会自动同步到后续订单、结算页、履约流程,不会出现优惠不生效的问题,是目前非Plus商家的首选方案。
- Cart Script 方案(仅Shopify Plus可用):Plus商家可以直接在后台部署Shopify Script,前端AJAX请求只需要把匹配到的折扣标识写入Cart Attributes,Script会在购物车、结账页实时读取标识自动计算折扣,不需要额外创建Draft Order,响应速度更快,流程更顺滑。
- 注意折扣计算逻辑必须全部放在APP后端处理,不要把规则判断写在前端,避免优惠被恶意篡改。
需求参考截图:
内容的提问来源于stack exchange,提问作者Titi
相关产品推荐
相关产品推荐


