【问题标题】:Ajaxify shopping cart in volusionvolusion 中的 Ajaxify 购物车
【发布时间】:2014-08-30 04:47:57
【问题描述】:

我正在开发 Volusion 上的模板,我的问题是,“添加到购物车”按钮可以ajaxified 吗?

<div id="custom-buttons">
<div id="custom-cart">
    <a href="ShoppingCart.asp">
    <input class="vCSS_input_addtocart" type="image"
    src="/v/vspfiles/templates/248/images/buttons/btn_addtocart.gif" 
    name="btnaddtocart" alt="Add to cart" border="0" 
    data-image-path="/v/vspfiles/templates/248/images/buttons/btn_addtocart.gif"/>
</a>
</div>

这就是代码,按钮本身可以工作,但它会将我从产品页面带到购物车页面,我想避免这种情况,但仍将所需的商品添加到购物车。

谢谢!

【问题讨论】:

  • 您发布的代码不完整。没有提及产品代码。还有为什么你在锚标签中有一个图像类型输入。有几种方法可以通过 Volusion 中的 Ajax 将商品添加到购物车,但您没有提供足够的信息来为您提供最佳选择。 IE:这个产品有选择吗?添加物品后你想做什么,显示内置的Volusion软推车?
  • 此输入有效,但它会将我带到 /ShoppingCart.asp 页面。我不希望软推车弹出,除非没有其他方法可以使该人停留在同一页面上。是的,它被包裹在锚标签中,这是我这边的一个错误。在我的页面模板中,输入中有这一部分: onclick="return addToCart(this.form, this);"> 但是当我在代码中有它时,我得到一个:“错误的引用/函数调用,addToCart 是未定义”
  • 不知道为什么要在不让客户知道它已成功的情况下将商品添加到购物车?无论如何,请参阅我修改后的答案。
  • 不,我不希望他们看到他们添加了该项目,但我不希望按钮/链接在他们添加后将其从产品页面中移除 :)
  • 现在您的陈述相互矛盾。您明确表示您不希望弹出软购物车,这是客户查看通过 Ajax 添加的商品的内置方法。现在你想要吗?如果不是,那么您如何希望他们知道已添加项目?从头到尾,您需要更清楚自己想要什么。

标签: jquery button cart volusion ajaxify


【解决方案1】:

假设您的商店启用了管理配置变量“启用添加到购物车弹出窗口”,您只需在模板中的任何位置提供如下所示的链接,当用户单击它时,它将通过 Ajax 添加项目,所以只要该项目没有选项或不是礼券。 Volusion 内置了脚本,如果打开了配置变量,这些脚本会自动处理这个问题。

<a class="unbind" href="/ShoppingCart.asp?ProductCode=xyz">
   <img border="0" align="absmiddle" src="/v/vspfiles/templates/248/images/buttons/btn_addtocart_small.gif">
</a>

将以下内容添加到模板中&lt;/head&gt; 标记之前,并使用上面的链接添加项目。每次您点击它时,它都会在购物车中添加一个数量。根据您的请求,不会有任何视觉反馈表明该项目已添加。

<script type="text/javascript">
$(function() {
$('.unbind').unbind()
    .click(function() {
        var product_code = $(this).attr('href').substr($(this).attr('href').lastIndexOf('=') + 1).toUpperCase();
        $.ajax({
            type: "POST",
            url: '/ProductDetails.asp?ProductCode=' + product_code + '&btnaddtocart=btnaddtocart&AjaxError=Y&batchadd=Y',
            data: 'ProductCode=' + product_code + '&QTY.' + product_code + '=1'
        });
        return false;
    });
});
</script>

如果您希望在单击商品后弹出软购物车,请使用上面显示的 HTML(相应地更改产品代码)并使用以下代码。

<script type="text/javascript">
$(function() {
    $('.unbind').unbind()
        .click(function() {
            var qstr = 'ProductCode=' + global_URL_Encode_Current_ProductCode + '&QTY.' + global_URL_Encode_Current_ProductCode + '=1&ReplaceCartID=&ReturnTo=&e=&btnaddtocart.x=5&btnaddtocart.y=5';
            SoftAddSingleItem(global_URL_Encode_Current_ProductCode, 1, qstr);
            return false;
        });
});
</script>

【讨论】:

  • 刚刚测试了一下,什么都没有发生,我已经将脚本添加到了html的头部。当我检查购物车页面时,那里也没有任何内容
  • 您是否将其包装在打开/关闭脚本标签中?见上面的编辑
  • 我把它包装在 标签中 :)
  • 该代码已在 Volusion 现场测试,并且可以正常工作。如果没有指向您安装它的页面的 URL,就不可能说出它为什么不适合您。
  • 我在控制台中收到此错误:未捕获的类型错误:无法读取未定义的属性 'ProductIndex'
猜你喜欢
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多