{"id":60415,"date":"2018-10-19T00:00:00","date_gmt":"2018-10-19T00:00:00","guid":{"rendered":"https:\/\/blog.hellotax.com\/blog\/amazon\/listing\/optimization\/bundle\/"},"modified":"2020-01-12T17:02:16","modified_gmt":"2020-01-12T16:02:16","slug":"bundle","status":"publish","type":"post","link":"https:\/\/hellotax.com\/blog\/amazon\/listing\/optimization\/bundle","title":{"rendered":"Amazon Bundle"},"content":{"rendered":"\n<p>A bundle is the combination of two or more products which is sold on Amazon as one unit and which has consequently only one\u00a0<a href=\"https:\/\/hellotax.com\/blog\/amazon\/asin-ean-sku\/\">ASIN<\/a>. Basically, there are two possibilities how it can be combined: you can either use multiple items of the same kind to create a bundle or different items.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-bundle-1024x536.jpg\" alt=\"\" class=\"wp-image-61535\" srcset=\"https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-bundle-1024x536.jpg 1024w, https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-bundle-300x157.jpg 300w, https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-bundle-768x402.jpg 768w, https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-bundle.jpg 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Related articles<\/h3>\n\n\nNo content has been found here, sorry \ud83d\ude42\n\n\n\n<h2 class=\"wp-block-heading\">Why combining several goods to a bundle?<\/h2>\n\n\n\n<p>There are several advantages which come along with the distribution of <strong>goods combined to a product bundle<\/strong>. It is a fantastic way to sell items which have high demand. These kinds of products usually have many suppliers and by combining these items to \u201cone\u201d the number of competitors decreased while the price per unit also decreases which leads inevitably to higher sales figures and a higher turnover.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bundle Strategy<\/h2>\n\n\n\n<p>That these different items should fit together is self-evident, like for example a school bag + a pencil case + pencils. Consequently, it makes sense to use items which are highly complementary. This is also, among other important pieces of information, embedded in&nbsp;<strong>Amazon\u2019s detailed bundle guidelines<\/strong>. <\/p>\n\n\n<div class=\"cta-shortcode cta-shortcode-embed\"><div class=\"cta-content\"><h3 class=\"font600\">Join our VAT community<\/h3><p>Discuss about VAT on Facebook with our <strong>+1500 members<\/strong> VAT community.<\/p>\n<\/div><div class=\"cta-embed-code\"><style>\r\n\t#_form_10_ ._form-thank-you { position:relative; left:0; right:0; text-align:center; font-size:18px; }\r\n<\/style>\r\n<form method=\"POST\" action=\"https:\/\/fbahero77513.activehosted.com\/proc.php\" id=\"_form_10_\" class=\"_form _form_10 _inline-form  _dark\" novalidate>\r\n  <input type=\"hidden\" name=\"u\" value=\"10\" \/>\r\n  <input type=\"hidden\" name=\"f\" value=\"10\" \/>\r\n  <input type=\"hidden\" name=\"s\" \/>\r\n  <input type=\"hidden\" name=\"c\" value=\"0\" \/>\r\n  <input type=\"hidden\" name=\"m\" value=\"0\" \/>\r\n  <input type=\"hidden\" name=\"act\" value=\"sub\" \/>\r\n  <input type=\"hidden\" name=\"v\" value=\"2\" \/>\r\n  <div class=\"_form-content\">\r\n    <div class=\"_form_element _x02957572 _full_width \" >\r\n      <label class=\"_form-label\">\r\n      <\/label>\r\n      <div class=\"_field-wrapper\">\r\n        <input type=\"text\" name=\"email\" placeholder=\"Enter your email\" required\/>\r\n      <\/div>\r\n    <\/div>\r\n    <div style=\"padding-top:10px;\" class=\"_button-wrapper _full_width\">\r\n      <button id=\"_form_10_submit\" class=\"_submit button button-secondary\" type=\"submit\">\r\n        Get your invitation\r\n      <\/button>\r\n    <\/div>\r\n    <div class=\"_clear-element\">\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"_form-thank-you\" style=\"display:none;\">\r\n  <\/div>\r\n<\/form><script type=\"text\/javascript\">\r\nwindow.cfields = [];\r\nwindow._show_thank_you = function(id, message, trackcmp_url) {\r\n  var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');\r\n  form.querySelector('._form-content').style.display = 'none';\r\n  thank_you.innerHTML = message;\r\n  thank_you.style.display = 'block';\r\n  if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\r\n    \/\/ Site tracking URL to use after inline form submission.\r\n    _load_script(trackcmp_url);\r\n  }\r\n  if (typeof window._form_callback !== 'undefined') window._form_callback(id);\r\n};\r\nwindow._show_error = function(id, message, html) {\r\n  var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error');\r\n  if (old_error) old_error.parentNode.removeChild(old_error);\r\n  err.innerHTML = message;\r\n  err.className = '_error-inner _form_error _no_arrow';\r\n  var wrapper = document.createElement('div');\r\n  wrapper.className = '_form-inner';\r\n  wrapper.appendChild(err);\r\n  button.parentNode.insertBefore(wrapper, button);\r\n  document.querySelector('[id^=\"_form\"][id$=\"_submit\"]').disabled = false;\r\n  if (html) {\r\n    var div = document.createElement('div');\r\n    div.className = '_error-html';\r\n    div.innerHTML = html;\r\n    err.appendChild(div);\r\n  }\r\n};\r\nwindow._load_script = function(url, callback) {\r\n    var head = document.querySelector('head'), script = document.createElement('script'), r = false;\r\n    script.type = 'text\/javascript';\r\n    script.charset = 'utf-8';\r\n    script.src = url;\r\n    if (callback) {\r\n      script.onload = script.onreadystatechange = function() {\r\n      if (!r && (!this.readyState || this.readyState == 'complete')) {\r\n        r = true;\r\n        callback();\r\n        }\r\n      };\r\n    }\r\n    head.appendChild(script);\r\n};\r\n(function() {\r\n  if (window.location.search.search(\"excludeform\") !== -1) return false;\r\n  var getCookie = function(name) {\r\n    var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));\r\n    return match ? match[2] : null;\r\n  }\r\n  var setCookie = function(name, value) {\r\n    var now = new Date();\r\n    var time = now.getTime();\r\n    var expireTime = time + 1000 * 60 * 60 * 24 * 365;\r\n    now.setTime(expireTime);\r\n    document.cookie = name + '=' + value + '; expires=' + now + ';path=\/';\r\n  }\r\n      var addEvent = function(element, event, func) {\r\n    if (element.addEventListener) {\r\n      element.addEventListener(event, func);\r\n    } else {\r\n      var oldFunc = element['on' + event];\r\n      element['on' + event] = function() {\r\n        oldFunc.apply(this, arguments);\r\n        func.apply(this, arguments);\r\n      };\r\n    }\r\n  }\r\n  var _removed = false;\r\n  var form_to_submit = document.getElementById('_form_10_');\r\n  var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;\r\n\r\n  var getUrlParam = function(name) {\r\n    var regexStr = '[\\?&]' + name + '=([^&#]*)';\r\n    var results = new RegExp(regexStr, 'i').exec(window.location.href);\r\n    return results != undefined ? decodeURIComponent(results[1]) : false;\r\n  };\r\n\r\n  for (var i = 0; i < allInputs.length; i++) {\r\n    var regexStr = \"field\\\\[(\\\\d+)\\\\]\";\r\n    var results = new RegExp(regexStr).exec(allInputs[i].name);\r\n    if (results != undefined) {\r\n      allInputs[i].dataset.name = window.cfields[results[1]];\r\n    } else {\r\n      allInputs[i].dataset.name = allInputs[i].name;\r\n    }\r\n    var fieldVal = getUrlParam(allInputs[i].dataset.name);\r\n\r\n    if (fieldVal) {\r\n      if (allInputs[i].type == \"radio\" || allInputs[i].type == \"checkbox\") {\r\n        if (allInputs[i].value == fieldVal) {\r\n          allInputs[i].checked = true;\r\n        }\r\n      } else {\r\n        allInputs[i].value = fieldVal;\r\n      }\r\n    }\r\n  }\r\n\r\n  var remove_tooltips = function() {\r\n    for (var i = 0; i < tooltips.length; i++) {\r\n      tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\r\n    }\r\n      tooltips = [];\r\n  };\r\n  var remove_tooltip = function(elem) {\r\n    for (var i = 0; i < tooltips.length; i++) {\r\n      if (tooltips[i].elem === elem) {\r\n        tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\r\n        tooltips.splice(i, 1);\r\n        return;\r\n      }\r\n    }\r\n  };\r\n  var create_tooltip = function(elem, text) {\r\n    var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {};\r\n    if (elem.type != 'radio' && elem.type != 'checkbox') {\r\n      tooltip.className = '_error';\r\n      arrow.className = '_error-arrow';\r\n      inner.className = '_error-inner';\r\n      inner.innerHTML = text;\r\n      tooltip.appendChild(arrow);\r\n      tooltip.appendChild(inner);\r\n      elem.parentNode.appendChild(tooltip);\r\n    } else {\r\n      tooltip.className = '_error-inner _no_arrow';\r\n      tooltip.innerHTML = text;\r\n      elem.parentNode.insertBefore(tooltip, elem);\r\n      new_tooltip.no_arrow = true;\r\n    }\r\n    new_tooltip.tip = tooltip;\r\n    new_tooltip.elem = elem;\r\n    tooltips.push(new_tooltip);\r\n    return new_tooltip;\r\n  };\r\n  var resize_tooltip = function(tooltip) {\r\n    var rect = tooltip.elem.getBoundingClientRect();\r\n    var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));\r\n    if (scrollPosition < 40) {\r\n      tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _below';\r\n    } else {\r\n      tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _above';\r\n    }\r\n  };\r\n  var resize_tooltips = function() {\r\n    if (_removed) return;\r\n    for (var i = 0; i < tooltips.length; i++) {\r\n      if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);\r\n    }\r\n  };\r\n  var validate_field = function(elem, remove) {\r\n    var tooltip = null, value = elem.value, no_error = true;\r\n    remove ? remove_tooltip(elem) : false;\r\n    if (elem.type != 'checkbox') elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\r\n    if (elem.getAttribute('required') !== null) {\r\n      if (elem.type == 'radio' || (elem.type == 'checkbox' && \/any\/.test(elem.className))) {\r\n        var elems = form_to_submit.elements[elem.name];\r\n        if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) {\r\n          no_error = elem.checked;\r\n        }\r\n        else {\r\n          no_error = false;\r\n          for (var i = 0; i < elems.length; i++) {\r\n            if (elems[i].checked) no_error = true;\r\n          }\r\n        }\r\n        if (!no_error) {\r\n          tooltip = create_tooltip(elem, \"Please select an option.\");\r\n        }\r\n      } else if (elem.type =='checkbox') {\r\n        var elems = form_to_submit.elements[elem.name], found = false, err = [];\r\n        no_error = true;\r\n        for (var i = 0; i < elems.length; i++) {\r\n          if (elems[i].getAttribute('required') === null) continue;\r\n          if (!found && elems[i] !== elem) return true;\r\n          found = true;\r\n          elems[i].className = elems[i].className.replace(\/ ?_has_error ?\/g, '');\r\n          if (!elems[i].checked) {\r\n            no_error = false;\r\n            elems[i].className = elems[i].className + ' _has_error';\r\n            err.push(\"Checking %s is required\".replace(\"%s\", elems[i].value));\r\n          }\r\n        }\r\n        if (!no_error) {\r\n          tooltip = create_tooltip(elem, err.join('<br\/>'));\r\n        }\r\n      } else if (elem.tagName == 'SELECT') {\r\n        var selected = true;\r\n        if (elem.multiple) {\r\n          selected = false;\r\n          for (var i = 0; i < elem.options.length; i++) {\r\n            if (elem.options[i].selected) {\r\n              selected = true;\r\n              break;\r\n            }\r\n          }\r\n        } else {\r\n          for (var i = 0; i < elem.options.length; i++) {\r\n            if (elem.options[i].selected && !elem.options[i].value) {\r\n              selected = false;\r\n            }\r\n          }\r\n        }\r\n        if (!selected) {\r\n          elem.className = elem.className + ' _has_error';\r\n          no_error = false;\r\n          tooltip = create_tooltip(elem, \"Please select an option.\");\r\n        }\r\n      } else if (value === undefined || value === null || value === '') {\r\n        elem.className = elem.className + ' _has_error';\r\n        no_error = false;\r\n        tooltip = create_tooltip(elem, \"This field is required.\");\r\n      }\r\n    }\r\n    if (no_error && elem.name == 'email') {\r\n      if (!value.match(\/^[\\+_a-z0-9-'&=]+(\\.[\\+_a-z0-9-']+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$\/i)) {\r\n        elem.className = elem.className + ' _has_error';\r\n        no_error = false;\r\n        tooltip = create_tooltip(elem, \"Enter a valid email address.\");\r\n      }\r\n    }\r\n    if (no_error && \/date_field\/.test(elem.className)) {\r\n      if (!value.match(\/^\\d\\d\\d\\d-\\d\\d-\\d\\d$\/)) {\r\n        elem.className = elem.className + ' _has_error';\r\n        no_error = false;\r\n        tooltip = create_tooltip(elem, \"Enter a valid date.\");\r\n      }\r\n    }\r\n    tooltip ? resize_tooltip(tooltip) : false;\r\n    return no_error;\r\n  };\r\n  var needs_validate = function(el) {\r\n    return el.name == 'email' || el.getAttribute('required') !== null;\r\n  };\r\n  var validate_form = function(e) {\r\n    var err = form_to_submit.querySelector('._form_error'), no_error = true;\r\n    if (!submitted) {\r\n      submitted = true;\r\n      for (var i = 0, len = allInputs.length; i < len; i++) {\r\n        var input = allInputs[i];\r\n        if (needs_validate(input)) {\r\n          if (input.type == 'text') {\r\n            addEvent(input, 'blur', function() {\r\n              this.value = this.value.trim();\r\n              validate_field(this, true);\r\n            });\r\n            addEvent(input, 'input', function() {\r\n              validate_field(this, true);\r\n            });\r\n          } else if (input.type == 'radio' || input.type == 'checkbox') {\r\n            (function(el) {\r\n              var radios = form_to_submit.elements[el.name];\r\n              for (var i = 0; i < radios.length; i++) {\r\n                addEvent(radios[i], 'click', function() {\r\n                  validate_field(el, true);\r\n                });\r\n              }\r\n            })(input);\r\n          } else if (input.tagName == 'SELECT') {\r\n            addEvent(input, 'change', function() {\r\n              validate_field(this, true);\r\n            });\r\n          } else if (input.type == 'textarea'){\r\n            addEvent(input, 'input', function() {\r\n              validate_field(this, true);\r\n            });\r\n          }\r\n        }\r\n      }\r\n    }\r\n    remove_tooltips();\r\n    for (var i = 0, len = allInputs.length; i < len; i++) {\r\n      var elem = allInputs[i];\r\n      if (needs_validate(elem)) {\r\n        if (elem.tagName.toLowerCase() !== \"select\") {\r\n          elem.value = elem.value.trim();\r\n        }\r\n        validate_field(elem) ? true : no_error = false;\r\n      }\r\n    }\r\n    if (!no_error && e) {\r\n      e.preventDefault();\r\n    }\r\n    resize_tooltips();\r\n    return no_error;\r\n  };\r\n  addEvent(window, 'resize', resize_tooltips);\r\n  addEvent(window, 'scroll', resize_tooltips);\r\n  window._old_serialize = null;\r\n  if (typeof serialize !== 'undefined') window._old_serialize = window.serialize;\r\n  _load_script(\"\/\/d3rxaij56vjege.cloudfront.net\/form-serialize\/0.3\/serialize.min.js\", function() {\r\n    window._form_serialize = window.serialize;\r\n    if (window._old_serialize) window.serialize = window._old_serialize;\r\n  });\r\n  var form_submit = function(e) {\r\n    e.preventDefault();\r\n    if (validate_form()) {\r\n      \/\/ use this trick to get the submit button & disable it using plain javascript\r\n      document.querySelector('#_form_10_submit').disabled = true;\r\n            var serialized = _form_serialize(document.getElementById('_form_10_'));\r\n      var err = form_to_submit.querySelector('._form_error');\r\n      err ? err.parentNode.removeChild(err) : false;\r\n      _load_script('https:\/\/fbahero77513.activehosted.com\/proc.php?' + serialized + '&jsonp=true');\r\n    }\r\n    return false;\r\n  };\r\n  addEvent(form_to_submit, 'submit', form_submit);\r\n})();\r\n<\/script><\/div><\/div>\n\n\n\n<p>Especially for FBA sellers, selling items this way will pay off. Why? Because there are fixed fees for packaging and if you sell, for example, three units of the same item as a bundle, you have to pay the fees only one instead of three times.<\/p>\n\n\n\n<p>Now you can<strong> decrease the price per unit<\/strong> while still getting the same (or even more) profits and while being the most reasonable seller. Furthermore, as it has been shown, people tend to buy bundles even if they wouldn\u2019t buy all items separately.<\/p>\n\n\n\n<p><a href=\"https:\/\/sellercentral.amazon.de\/gp\/help\/external\/G200442350?language=en_US\" target=\"_blank\" rel=\"noopener\">Here you can find a list about which products and in product categories articles can be sold as bundles.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A bundle is the combination of two or more products which is sold on Amazon as one unit and which has consequently only one\u00a0ASIN. Basically, there are two possibilities how it can be combined: you can either use multiple items of the same kind to create a bundle or different items. Related articles Why combining [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":61535,"parent":60409,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_lmt_disableupdate":"yes","_lmt_disable":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[],"tags":[],"class_list":{"0":"post-60415","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"entry"},"acf":[],"modified_by":"Niki Stanev","_links":{"self":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts\/60415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/comments?post=60415"}],"version-history":[{"count":0,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts\/60415\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts\/60409"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/media\/61535"}],"wp:attachment":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/media?parent=60415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/categories?post=60415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/tags?post=60415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}