如何使用JS更新store_product_price

时间:2012-11-12 19:21:00

标签: expressionengine expresso-store

好的,我有一个照片缩略图网格,可以通过在商店中设置的单个产品进行销售。该产品有两种尺寸,小型和大型。大号有一个修饰符,可以在选中时提高价格。

我正在使用JS删除然后将修改器组克隆到用户选择的缩略图之一,有效地将其固定到页面上的单个产品中。

我的问题是,当我删除并克隆修改器时,价格保持与上次产品添加到购物车时所选的价格相同。

所以和例子:

用户选择thummb#1并选择大修改器(+ $ 20)并将其添加到购物车(AJAX)。然后,当她选择拇指#5时,修改器被设置回小,但价格仍然反映了大的。

由于这一切都是通过JS完成的,没有重新加载页面,我如何重置store_product_price?

ajax : function(){
if( !$( '#product_form' ).size() ) return;

$( '#product_form' ).submit( function(){
    $( '.card .add_to_cart' ).val( 'Processing...' );
    var url = $( this ).attr( 'action' );
    var data = $( this ).serialize();
    $.post( url, data, function(){
        $( '#sidebar-cart' ).load( '/store/cart/' );
        $( '.card .add_to_cart' ).val( 'Add to Cart' );
        $( '.selected' ).removeClass( 'selected' );
        $( '.not-selected' ).removeClass( 'not-selected' );
   } );
        return false;
} );
},

1 个答案:

答案 0 :(得分:1)

我不完全确定'删除和克隆修饰符'是什么意思 - 你是否为每个缩略图创建了一个新的小/大下拉列表?在这种情况下,它如何知道哪一个提交表格?

为每个缩略图创建新的产品表单可能更容易,然后使用JS隐藏/显示修改器。

在任何情况下,如果你想坚持现状,你可以看看themes/third_party/store/store.js看看store_product_price类是如何实现的(我假设你已经添加了{ {1}}按你的价格分类,虽然你没有提到它)。如果您在store_product_price中设置了$debug = 1,那么默认情况下会加载默认版本的javascript,这样您就可以更轻松地逐步查看它的卡住位置。