An AJAX product call allows for a dynamic integration with the database about a product.
Output Tag | Description |
{ajax_product} | Returns json output of price changes and information about the sku |
{ajax_inventory_filter} | Returns json output if item is out of stock and hides the appropriate fields |
Below is working code written for jQuery. This will inform the user about inventory changes and dynamic price changes in json data.
$(document).on("change","#add-to-cart .form_input",function() { var vals; var set = ""; var temp; if ($(this).hasClass( "input_radio" )) { vals = $(this).parent().find( "input:radio:checked").val(); } else if ($(this).hasClass( "input_dropdown" )) { vals = $(this).parent().find( "select option:selected").val(); } else { vals = $(this).val(); } set += encodeURIComponent($(this).attr("name"))+"="+encodeURIComponent(vals)+"&"; $.ajax({ url: "/ajax/field.ajax", data: "pitem="+$("#add-to-cart").find("#pitem").val()+"&"+set, type: "post", success: function(data) { //replace html $.each(data.field, function(i, item) { if ($(".variation_"+i).hasClass( "input_radio" )) { temp = $(".variation_"+i+":radio:checked").val(); $(".variation_"+i).closest("li").find(".fields").html(item); console.log(temp); $(".variation_"+i+":radio[value='"+temp+"']").attr('checked',true); } else if ($(".variation_"+i).hasClass( "input_dropdown" )) { temp = $(".variation_"+i+" option:selected").val(); $(".variation_"+i).closest("li").find(".fields").html(item); $(".variation_"+i).val(temp); } }); priceChange(); } }); }); function priceChange() { var myData = $('#add-to-cart').serializeArray(); // remove items from myData $.ajax({ url: "/ajax/check.ajax", data: $.param(myData), // "inp1=val1&inp2=val2" type: "post", success: function(html) { if (html.status != "error") { $("span#prodoprice b").html(html.price); if (html.available == "false") { $("#add-cart-button").hide(); $("#system_message").html(html.message); } else { $("#add-cart-button").show(); $("#system_message").html(""); } } else { $("#add-cart-button").show(); $("#system_message").html(""); } } }); }