Skip to content

Instantly share code, notes, and snippets.

@UpperCod
Created April 27, 2022 14:37
Show Gist options
  • Save UpperCod/7b91dc9943bb3266a1a3a2a39e14cfae to your computer and use it in GitHub Desktop.
Save UpperCod/7b91dc9943bb3266a1a3a2a39e14cfae to your computer and use it in GitHub Desktop.
test sodimac
/*Se quiere realizar un AB Testing en el sitio de Chile respecto al despliegue del cuadro "Resumen de tu compra", en donde se busca mostrar, cuando corresponda, la línea de "Ahorro Internet". Uno de nuestros programadores ya diseñó una solución, pero esta tiene algunos defectos:
1- El despliegue de la etiqueta no está en el formato correcto (-$XX.XXX.XXX)
2- El "Sub-total" debe reflejar el valor total del carro, sin ningún tipo de descuento
3- El "Ahorro con CMR" debe incluir tanto los descuentos asociados a la tarjeta, como los descuentos de internet
4- Se requiere que cada vez que el carro cambie (cantidades de productos, nuevos productos, etc.) también lo hagan todos los valores del resumen
Necesitamos que nos ayudes a solucionar estas deficiencias en el código para poder seguir con el AB Test. Para llevar esto a cabo y realizar las pruebas respectivas te sugerimos utilizar el módulo de "Agregar productos por código" existente en la página del carro de compras,
y agregar los sku 555212-5, 160305-1, 873919-6 y c.
A continuación te presentamos el código de nuestro programador, que debes corregirlo a tu antojo para que funcione (puedes agregar funciones, variables, o modificar cualquier parte del código existente):*/
/**
*
* @param {number} value
*/
const toNumber = (value) => value.toLocaleString("de-DE");
/**
*
* @param {"cmr"|"normal"} value
*/
const dameValor = (type) =>
[
...document.querySelectorAll(
`.${type} .fbra_productItem__priceTotalSummary__price`
),
].reduce((total, element) => {
const value = parseInt(element.textContent.replace(/[^\d]+/g, ""));
console.log(element.textContent);
return total + value;
}, 0);
const vamos = () => {
let fValor = dameValor();
$("#test_new_element").remove();
if (fValor != 0) {
let cadena =
'<div id="test_new_element"><span class="fbra_text fbra_summaryContainer__itemsCmrTotal__item__label fbra_summaryContainer__itemsCmrTotal__item__bolder" >Ahorro Internet</span><span class="fbra_text fbra_summaryContainer__itemsCmrTotal__item__value fbra_summaryContainer__itemsCmrTotal__item__bolder" >-$' +
fValor +
"</span></div>";
$(".fbra_summaryContainer__itemsCmrTotal :first").after(cadena);
}
};
vamos();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment