0

商品の価格を変更する多くのオプションを必要とする SimpleCart プロジェクトに取り組んでいます。各オプションは、アイテムの基本価格に一定の金額を追加します。例えば:

アイテムの基本価格 = $10

ドロップダウン メニュー 1:

  • オプション 1,2,3 追加 $0
  • オプション 4,5,6 追加 $1
  • オプション 7,8,9 追加 $2

...など、基本価格が異なる複数のアイテムの複数のドロップダウン メニューについても同様です。

simplecartjs.org のドキュメントでは、次のような beforeAdd イベントが提案されています。

simpleCart.bind( 'beforeAdd' , function( item ){
if( item.get( 'size' ) == 'Small' ){
item.price( 10 );
} else if( item.get( 'size' ) == 'Large' ){
item.price( 12 );
}
});

各オプションのセット価格を定義するのではなく、基本価格に特定の金額を追加するために、これに似たものをどのように使用しますか?

以下は、いくつかの単純化されたサンプル HTML コードです (私のプロジェクトには、実際には 1 つのドロップダウンに 70 以上のオプションがあります)。

<div class="simpleCart_shelfItem">
<h2 class="item_name">item</h2>
<select class="item_size">
<option value="small">small</option>
<option value="medium">medium</option>
<option value="large">large</option>
</select>
<select class="item_length">
<option value="short">short</option>
<option value="long">long</option>
</select>
<input value="1" class="item_Quantity" type="text">
<span class="item_price">$10</span>
<a class="item_add" href="javascript:;">add to cart</a></p>
</div>
4

1 に答える 1

0

おそらく提供されたドキュメントと同じ方法でそれを行うでしょうが、追加コストを追加するために使用できる基本価格を変数にすることを追加します. 関数内で変数を適用すると、ローカライズされたままになるため、別の関数に基本価格がある場合でも、コードが煩わされることはありません。

*私はそれをテストしなかったことに注意してください。

simpleCart.bind('beforeAdd', function (item) {
    var basePrice = 10;
    if (item.get('size') == 'Small') {
        item.price(basePrice + 2);
    } else if (item.get('size') == 'Large') {
        item.price(basePrice + 2);
    } else if (item.get('size') == 'Long' && item.get('otherProperty')) {
        item.price(basePrice + 9);
    }
});
于 2014-03-27T02:29:22.367 に答える