如果购物车中有多个SKU,我会抛出错误消息,但我需要对我的规则做一个例外。以下是我的代码。
基本上,这里发生的是JNL758是唯一可以与customProductIDs和customizedProductIDs2中的任何SKU一起放入购物车的SKU。
如果来自customProductIDs或者CustomProductIDs2以及JNL758的1个SKU在购物车中,我需要一些不显示错误消息的规则,但那就是它 - 用户不能在购物车中有额外的SKU。
假设@ JNL0500,JNL758和JNL123在购物车中 - 我需要显示错误消息。如果购物车中只有@ JNL0500和JNL758,则不会显示错误消息。
var customizedProductIDs = ["@JNL0500", "@JNL0501", "@JNL0502", "@JNL0503", "@JNL0504"];
var customizedProductIDs2 = ["@JNL0408", "@JNL1036", "@JNL1735", "JNL1005", "@JNL0222", "@JNL0221"];
var cardsku = ["JNL758"];
function cartItemCountError() {
if ($451 && $451.OrderDetails && $451.OrderDetails.lineItems) {
var cartItemCount = $451.OrderDetails.lineItems.length;
var errors = false;
if (cartItemCount > 1) {
for (var i = 0; i < cartItemCount; i++) {
var currItem = $451.OrderDetails.lineItems[i];
// If cart has a customized item in it (See customizedProductIDs array.), it may not have any other item in the cart.)
if ($.inArray(currItem.productID, customizedProductIDs) != -1) {
errors = true;
}
else if ($.inArray(currItem.productID, customizedProductIDs2) != -1) {
errors = true;
}
if ($.inArray(currItem.productID, customizedProductIDs2) && ($.inArray(currItem.productID, cardsku)) != -1) {
errors = false;
}
}
}
return errors;
}
}
答案 0 :(得分:0)
我想也许你最直接的方法就是从你要测试的值数组中删除cardku的“特殊”项目,如图所示here然后继续测试你的规则照常。
答案 1 :(得分:0)
cardSKU的存在会更改您需要检查的阈值,以确定购物车是否有效。
一些伪代码显示更简单的表单
var isCardSKU = Cart Contains cardsku
var isCustomSKU = Cart Contains customizedProductIDs || Cart Contains customizedProductIDs2
if (isCustomSKU && (isCardSKU && Cart.length > 2) || (!isCardSKU && Cart.length > 1)
{
// Error here
}