将标签和价值发送到购物车的问题

时间:2016-01-25 04:08:25

标签: javascript jquery ajax shopify

我目前正在shopify网站上工作。我已经设置了我想要使用的订单表格,目前一切正常,但我还需要添加一个客户文本字段,将团队名称转发到购物车。

Shopify.itemsToAdd = [];
Shopify.addItemstoTheCart = function() {
  if (Shopify.itemsToAdd.length) {
    var item = Shopify.itemsToAdd.pop();
    $.ajax({
      url: '/cart/add',
      dataType: 'json',
      type: 'post',
      data: item,
      success: Shopify.addItemstoTheCart,
      error: Shopify.addItemstoTheCart
    });
  }
  else {
    window.location.href = '/cart';
  }
};
jQuery(function($) {
  $('table .quantity:first').focus();
  $('.add-to-cart-order-form').click(function() {
    $('.add-to-cart-order-form').addClass('disabled').attr('disabled','disabled');
    // Resetting.
    Shopify.itemsToAdd = [];
    $('.quantity').each(function() {
      var quantity = parseInt($(this).val(), 10);
      if (this.checked) {
        Shopify.itemsToAdd.push( { id: $(this).attr('data-id'), quantity: quantity} );
      }
    });     
    if (Shopify.itemsToAdd.length) {
      Shopify.addItemstoTheCart();
    }
    else {
      alert('All quantities are set to zero.'); 
      $('.add-to-cart-order-form').removeAttr('disabled').removeClass('disabled');
    }
  });
});

因此我需要将以下输入名称中的名称作为变量发送,并将客户输入作为变量数据发送。

<input type="text" class="tname" name="properties[tname]">

它需要在上面代码中的这一行的末尾附带。

Shopify.itemsToAdd.push( { id: $(this).attr('data-id'), quantity: quantity} );

发送到购物车的数据是ID,数量和属性[tname]

我试图输入这个没有成功。

Shopify.itemsToAdd.push( { id: $(this).attr('data-id'), quantity: quantity, properties[tname]: "walker"} );

将“walker”列为变量的测试数据。它继续出错,我相信对[]做了,但他们必须在那里为shopify系统确认列表并填充到购物车。

如果你能提供任何帮助,我将不胜感激。

修改

好的我可以让团队名称在购物车中发布,但我只能获得要发送的第一个文本字段。我已经对齐了文本字段id标记以匹配复选框data-id标记。我的功能有效但只适用于第一对。之后,其他所有内容都会在没有团队名称的情况下发送到购物车。

jQuery(function($) {
  $('table .quantity:first').focus();
  $('.add-to-cart-order-form').click(function() {
    $('.add-to-cart-order-form').addClass('disabled').attr('disabled','disabled');
    // Resetting.
    Shopify.itemsToAdd = [];
    $('.quantity').each(function() {
      var quantity = parseInt($(this).val(), 10);
      var did = $(this).attr('data-id')
      var idname;
      if (did == $('.tname').attr('id')) {
        var idname = $('.tname').val();
      };
      if (this.checked) {
        Shopify.itemsToAdd.push( { id: $(this).attr('data-id'), quantity: quantity, properties: { tname: idname}} );
      }
    });     
    if (Shopify.itemsToAdd.length) {
      Shopify.addItemstoTheCart();
    }
    else {
      alert('All quantities are set to zero.');
      $('.add-to-cart-order-form').removeAttr('disabled').removeClass('disabled');
    }
  });
});

1 个答案:

答案 0 :(得分:0)

应该是:

Shopify.itemsToAdd.push( { id: $(this).attr('data-id'), quantity: quantity, properties: { tname: "walker"}} );