Funciones generales

Funcionalidades en todas las páginas de sitios VTEX

Cambiar formato de moneda

Para que está función trabaje de forma correcta se debe agregar el símbolo "$" al contenedor del precio para que al volver a llamar la función regrese el valor correcto. ejemplo en función update_minicart

//Format Currency function update_currency_format(price){ var coma_position = price.search(','); var total_lenght = price.length-3; if(coma_position == total_lenght){ price = price.substring(2); var coma_position = price.search(','); price = price.replace(/\./g, ','); price = replaceAt(price, coma_position, '.'); return price; }else{ return price.substring(1); } } function replaceAt(s, n, t) { return s.substring(0, n) + t + s.substring(n + 1); }

Cambios en orderFormUpdate

La función update_minicart actualiza el formato de moneda del minicart

$(window).on('orderFormUpdated.vtex', function(evt, orderForm){ update_minicart(); });

Show minicart

Por CSS se agrega display:none; a la clase .portal-minicart-ref y se quita con las siguientes funciones para que no se displiegue el minicart al cargar la página, sino hasta que hagan hover en el carrito o se agregue un producto nuevo.

$('#cart_wrapper').hover(function(){ $('#minicart_wrapper .portal-minicart-ref').show(); }); $(window).on('cartProductAdded.vtex', function(){ $('#minicart_wrapper .portal-minicart-ref').show(); });

El código de arriba funciona con la siguiente estructura html, de ser necesario se puden cambiar los selectores.

<div id="cart_wrapper" class="carrito"> <a href="/checkout/#/cart"> <vtex.cmc:AmountItemsInCart /> </a> <div id="minicart_wrapper"> <vtex.cmc:miniCart/> </div> </div>

Update minicart

//Update Mini Cart function update_minicart(){ //update price for product list in minicart var best_price = $('#minicart_wrapper .cartSkuUnitPrice .bestPrice'); if(best_price.length){ best_price.each(function(e,i){ $(this).html('$' + update_currency_format($(this).text())); }); } //update total in minicart var total_minicart = $('#minicart_wrapper .vtexsc-totalCart .vtexsc-text'); if(total_minicart.length){ total_minicart.html('$' + update_currency_format(total_minicart.text())); } }