Stencil 添加到购物车未验证所需选项
Stencil's add to cart not validating required options
我为许多产品设置了多项选择选项集,并勾选了 "required" 复选框。
当这些选项集使用 "rectangle" 显示模式时,验证工作正常。单击添加到购物车告诉我请选择一个选项,并且不会转发表单。
使用 "multiple choice" 显示模式,但是根本不进行任何验证 - 请求触发并将商品添加到购物车。我可以继续去结账并购买商品。这是一个巨大的潜在问题,因为客户可以在没有指定尺寸、颜色等的情况下购买商品,我们无法完成订单。
查看 AJAX 请求的负载,而不是发送属性值,"Choose options" 作为名为 attribute[###]
的表单数据字段的值发送。
我已经在我的本地服务器 (stencil start
) 上和将主题推送到商店本身后进行了测试。我同时使用了自定义内部模板主题和 BigCommerce 提供的默认 Cornerstone 主题。
查看来自 Cornerstone 1.2.2 的 templates/components/products/options/set-select.html
文件,似乎以下更改可确保验证按预期运行:
在父 <div>
上放置 form-field
class 并在 <select>
上添加 form-select form-select--small
class。
但是,这仅解决了客户端的验证问题,除非选择了一个选项,否则不允许用户提交表单。无效的 AJAX 请求仍然允许将没有选项的产品添加到购物车,并通过结帐,即使选项被标记为必需。
我为许多产品设置了多项选择选项集,并勾选了 "required" 复选框。
当这些选项集使用 "rectangle" 显示模式时,验证工作正常。单击添加到购物车告诉我请选择一个选项,并且不会转发表单。
使用 "multiple choice" 显示模式,但是根本不进行任何验证 - 请求触发并将商品添加到购物车。我可以继续去结账并购买商品。这是一个巨大的潜在问题,因为客户可以在没有指定尺寸、颜色等的情况下购买商品,我们无法完成订单。
查看 AJAX 请求的负载,而不是发送属性值,"Choose options" 作为名为 attribute[###]
的表单数据字段的值发送。
我已经在我的本地服务器 (stencil start
) 上和将主题推送到商店本身后进行了测试。我同时使用了自定义内部模板主题和 BigCommerce 提供的默认 Cornerstone 主题。
查看来自 Cornerstone 1.2.2 的 templates/components/products/options/set-select.html
文件,似乎以下更改可确保验证按预期运行:
在父 <div>
上放置 form-field
class 并在 <select>
上添加 form-select form-select--small
class。
但是,这仅解决了客户端的验证问题,除非选择了一个选项,否则不允许用户提交表单。无效的 AJAX 请求仍然允许将没有选项的产品添加到购物车,并通过结帐,即使选项被标记为必需。