0

複数の SKU がショッピング カートに入っているとエラー メッセージが表示されますが、ルールに 1 つの例外を設ける必要があります。以下は私のコードです。

基本的にここで起こっていることは、JNL758 が、customizedProductIDs およびcustomizedProductIDs2 の SKU のいずれかと一緒にカートに入れることができる唯一の SKU であるということです。

CustomizeProductIDs または CustomizedProductIDs2 からの 1 つの SKU と JNL758 がカートに入っている場合にエラー メッセージを表示しないルールが必要ですが、それだけです。ユーザーは追加の 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;
  }
}
4

2 に答える 2

0

これを処理するためのおそらく最も簡単な方法は、ここに示すようにテストする値の配列からcardskukの「例外的な」項目を削除してから、通常どおりルールをテストすることだと思います。

于 2012-08-31T00:57:50.817 に答える
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
}
于 2012-08-31T00:58:06.873 に答える