getShippingChoice (JS API v2)
Version 2 API only.
getShippingChoice
Method Signature |
ShippingEstimate ultraCart.getShippingChoice(); |
Description |
Retrieves the currently selected shipping choice. This method is commonly used when rendering the subtotal section of a checkout. |
Result |
a ShippingEstimate object for the currently selected shipping method, or null if no choice has been made |
/** * updates the summary block showing subtotal, tax, shipping, and total */ function renderSummary() { var c = ultraCart.getCart(); if (c.items.length == 0) { jQuery('#summaryContainer').hide(); return; } else { jQuery('#summaryContainer').show(); } // shipping must be dealt with specially. to prevent customers from gaming the system, there are several instances // where the price of shipping is reset. So, when rendering, always lookup the shipping method and calculate the cost // from that rather than using the cart.shippingHandlingWithDiscount, although the latter would be simpler var totalTax = c.tax; var shippingTotal = ' '; // don't display anything if there's no choice var total = c.subtotalWithDiscount + c.tax; var shippingChoice = ultraCart.getShippingChoice(); if (shippingChoice) { totalTax += shippingChoice.tax; if (shippingChoice.cost == 0) { shippingTotal = '<strong>FREE Shipping!</strong>'; } else { shippingTotal = nf.toCurrency(shippingChoice.cost); } total += shippingChoice.cost; total += shippingChoice.tax; } jQuery('#summarySubtotal').html("<div class='summaryLabel'>Subtotal:<\/div><div class='summaryField'>" + nf.toCurrency(c.subtotalWithDiscount) + "<\/div>"); jQuery('#summaryTax').html("<div class='summaryLabel'>Tax:<\/div><div class='summaryField'>" + (totalTax == 0 ? "<span class='tax'>No Sales Tax!</span>" : nf.toCurrency(totalTax)) + "<\/div>"); jQuery('#summaryShipping').html("<div class='summaryLabel'>Shipping:<\/div><div class='summaryField'>" + shippingTotal + "<\/div>"); jQuery('#summaryTotal').html("<div class='summaryLabel'>Total:<\/div><div class='summaryField'>" + nf.toCurrency(total) + "<\/div>"); }