CMXX - API based checkout

This commit is contained in:
“VeLiTi”
2025-02-12 11:16:41 +01:00
parent 8201d7804b
commit 2eaf83c3fe
8 changed files with 611 additions and 747 deletions

View File

@@ -45,15 +45,25 @@ if (document.querySelector('.product-img-small')) {
if (document.querySelector('.product #product-form')) {
let updatePrice = () => {
let price = parseFloat(document.querySelector('.product .price').dataset.price);
let rrp = parseFloat(document.querySelector('.product .rrp').dataset.rrp);
document.querySelectorAll('.product #product-form .option').forEach(e => {
if (e.value) {
let optionPrice = e.classList.contains('text') || e.classList.contains('datetime') ? e.dataset.price : 0.00;
optionPrice = e.classList.contains('select') ? e.options[e.selectedIndex].dataset.price : optionPrice;
optionPrice = (e.classList.contains('radio') || e.classList.contains('checkbox')) && e.checked ? e.dataset.price : optionPrice;
price = (e.classList.contains('select') ? e.options[e.selectedIndex].dataset.modifier : e.dataset.modifier) == 'add' ? price+parseFloat(optionPrice) : price-parseFloat(optionPrice);
price = (e.classList.contains('select') ? e.options[e.selectedIndex].dataset.modifier : e.dataset.modifier) == 1 ? price+parseFloat(optionPrice) : price-parseFloat(optionPrice);
let optionRRP = e.classList.contains('text') || e.classList.contains('datetime') ? e.dataset.rrp : 0.00;
optionRRP = e.classList.contains('select') ? e.options[e.selectedIndex].dataset.rrp : optionRRP;
optionRRP = (e.classList.contains('radio') || e.classList.contains('checkbox')) && e.checked ? e.dataset.rrp : optionRRP;
rrp = (e.classList.contains('select') ? e.options[e.selectedIndex].dataset.modifier : e.dataset.modifier) == 1 ? rrp+parseFloat(optionRRP) : rrp-parseFloat(optionRRP);
}
});
document.querySelector('.product .price').innerHTML = currency_code + (price > 0.00 ? price.toFixed(2) : 0.00);
document.querySelector('.product .rrp').innerHTML = currency_code + (rrp > 0.00 ? rrp.toFixed(2) : 0.00);
};
document.querySelectorAll('.product #product-form .option').forEach(ele => ele.onchange = () => updatePrice());
updatePrice();
@@ -76,6 +86,7 @@ if (document.querySelector('.cart .ajax-update')) {
let formEle = document.querySelector('.cart form');
let formData = new FormData(formEle);
formData.append('update', 'Update');
console.log(formData);
fetch(formEle.action, {
method: 'POST',
body: formData