购物车和结帐
店面购物车和结帐
Storefront api用于管理购物者购物车的内容,并在Storefront会话的上下文中使用JavaScript进行结账。
何时使用Storefront api
- 分析和跟踪
- 在客户端检索购物车数据
- 快速订单
- 增销应用程序
使用Fetch API
的获取API是另一种选择XMLHttpRequest在JavaScript中发送http请求。您可以使用Fetch API与Storefront API交互,并返回购物者的购物车、结帐或订单。
除Internet Explorer外,大多数现代浏览器都支持Fetch API。我们建议使用Polyfill为Internet Explorer 10+和XMLHttpRequest的早期版本。
要了解关于使用Storefront的Fetch API的更多信息,请参阅我们的使用Storefront Cart和Checkout api教程。
您可以从浏览器控制台运行获取请求来测试,或者您可以使用脚本API将JavaScript注入主题的页脚。
<脚本>控制台。日志(“日志车”);获取(“/ api /店面/车”,{凭证:“包括”})。然后(函数(响应){返回响应。json();})。然后(函数(myJson){控制台。日志(myJson);});脚本>
<脚本>控制台。日志(“日志校验”);获取(' / api /店面/购物车吗?包括= consignments.availableShippingOptions ',{凭证:“包括”})。然后(函数(响应){返回响应。json();})。然后(函数(cartJson){控制台。日志(cartJson);返回cartJson(0]。id;})。抓(函数(错误){控制台。日志(错误);})。然后(函数(cartId){获取(' / api /店面/次/ '+cartId,{凭证:“包括”})。然后(函数(响应){返回响应。json();})。然后(函数(checkoutJson){控制台。日志(checkoutJson);})。抓(函数(错误){控制台。日志(错误);})});脚本>
<脚本>控制台。日志(“日志秩序”);获取(' / api /店面/订单/ {{checkout.order.id}}’,{凭证:“包括”})。然后(函数(响应){返回响应。json();})。然后(函数(myJson){控制台。日志(myJson);});脚本>
服务器到服务器的购物车和结帐
服务器到服务器api用于管理购物车中的内容,并从服务器远程结帐。使用购物车,付款和支付api允许一个完全无头的电子商务解决方案。
中国农科院的
Commerce-as-a-Service是通过服务器到服务器api实现的。它允许从单独的应用程序调用底层的Cart、Checkout、Order和Payment api,允许您在不接触BigCommerce店面的情况下创建一个完全自定义的Checkout。
什么时候使用
- 修改购物车内容,如价格匹配
- 通过应用程序让购物者通过购物车结账
- 报价建设者-建立一个购物车,然后恢复它在店面
- 本机移动应用
- 运行客户信息
持续的车
持续的车允许登录购物者跨设备访问相同的购物车。持久推车可用Plus, Pro和Enterbeplay红利为什么-200prise计划。
持久购物车与我们的店面购物车和服务器到服务器购物车一起工作。
要了解更多关于安装的信息,请参阅持续的车。
故障排除车错误
我们将讨论常见的店面购物车和结帐,以及服务器到服务器购物车和结帐错误。每个场景都将包括错误消息和如何修复错误。下面列出了最常见的错误。
请为API选项创建一些文本[422]
服务器到服务器购物车API
问题:当购物车中包含有不正确或缺少文本修饰符的产品时。
解决方法:选项和修饰符指的是产品上的选项列表。用于构建变体和修饰符的选项根本不与变体绑定。要了解有关选项和修饰符的更多信息,请参见产品概述。
要使用单个修饰符(文本字段)将产品添加到购物车,请POST到购物车API没有variant_id
。
{“line_items”:({“数量”:1,“product_id”:1001,“option_selections”:({“option_id”:123,“option_value”:“你好!”}]}]}
要将一个产品添加到购物车中,并有一个与之相关的选项(单选按钮),只需使用variant_id
在请求。
{“line_items”:({“数量”:1,“product_id”:1001,“variant_id”:2331}]}
若要添加同时具有选项和与其关联的修饰符的产品,请使用option_id
和option_value
。这个例子使用了一个单选按钮(选项)和一个文本字段(修饰符)。
{“line_items”:({“数量”:1,“product_id”:101,“option_selections”:({“option_id”:231,“option_value”:456},{“option_id”:123,“option_value”:“你好!”}]}]}
请求正文中缺少line_items
服务器到服务器购物车API
问题:当所需的产品修改器缺失时。一个产品可以有一个不需要的修饰符。在这种情况下,可以不使用修改器将产品添加到购物车中。
解决方法:使用获得产品或得到修改器端点返回修饰符ID。的modifier_id
=option_id
。
创建一个带有产品修饰符的购物车:
{“line_items”:({“数量”:1,“product_id”:1001,“option_selections”:({“option_id”:123,“option_value”:“你好!”}]}]}
此订单的送货地址不完整[422]
服务器到服务器购物车API
问题:当购物车的客户ID发生更改时,可能会返回此错误。
解决方法:您可以将客户ID链接到该客户可用的折扣和价格。然而,如果优惠券、折扣、税收或运输改变,任何影响购物车价格的东西都是无效的。
属性创建购物车是一个更好的选择customer_id
作为请求主体的一部分,并使用让顾客端点获取customer_id
。
创建一个带有customer_id
:
{“customer_id”:12,“line_items”:({“数量”:5,“product_id”:191}]}
本产品有选项;可变ID是必需的[422]
服务器到服务器购物车API
问题:当产品具有选项且在创建或更新购物车请求中没有提供变体ID时。
解决方法:属性获取变体ID获得产品端点或得到变异端点。要创建一个具有不同ID的购物车:
{“line_items”:({“数量”:1,“product_id”:1001,“variant_id”:2331}]}
问题:的option_id
是不正确的。
解决方法:得到正确的option_id
,向…提出请求获得产品或得到的选项。
{“line_item”:{“数量”:1,“product_id”:76,“list_price”:170.00,“option_selections”:({“option_id”:21506,“option_value”:10090}]}}
商店购物车API
问题:
店面上所需的修饰符缺失了。这个缺失的修饰符可以包含一个没有选择的文本修饰符。确保
用optionValue
不是空白。variantID错误。
modifierID不正确。
解决方法:要使用单个修饰符(文本字段)将产品添加到购物车,请POST到购物车API没有variant_id
。使用optionId
和用optionValue
代替。
{“lineitem”:({“数量”:1,“product_id”:1001,“optionSelections”:({“optionId”:123,“用optionValue”:“你好!”}]}]}
要将一个产品添加到购物车中,并有一个与之相关的选项(单选按钮),只需使用variant_id
在请求。
{“lineitem”:({“数量”:1,“productId”:1001,“variantId”:2331}]}
若要添加同时具有选项和与之关联的修饰符的产品,请使用option_id
和option_value
。这个例子使用了一个单选按钮(选项)和一个文本字段(修饰符)。
{“lineitem”:({“数量”:1,“product_id”:101,“optionSelections”:({“optionId”:231,“用optionValue”:456},{“optionId”:123,“用optionValue”:“你好!”}]}]}
每个订单最多只能购买:数量:产品[409]
服务器到服务器购物车API
问题:当您在购物车中添加的产品的最低需求量小于或大于最大需求量时。
解决方法:检查产品是否有order_quantity_minimum
和order_quantity_maximum
要添加到购物车的正确数量。使用得到的产品端点。
内部服务器错误[500]
服务器到服务器购物车API
问题:试图编辑一个不存在的购物车。
解决方法:马车有效期只有30天date_last_modified
。检查让车当前可用会话购物车的端点。
商店购物车API
问题:当您在购物车中添加少于产品要求的最低购买量或多于允许的最大购买量时。使用得到的产品端点检查最小/最大购买限制。
解决方法:检查产品order_quantity_minimum和order_quantity_maximum,以获得添加购物车的正确数量。使用得到的产品端点。