Naprawa buga z wyliczeniem płatności, dostawy i przy edycji zamówienia z punktami

This commit is contained in:
2024-02-01 12:19:15 +01:00
parent d7d86c40fe
commit b1b87a93f6
3 changed files with 42 additions and 21 deletions

View File

@@ -46,13 +46,20 @@ Trzeba je później podmienić w kodzie w Wydzielonym Javascript na np.:
### Wady ### ### Wady ###
- Nie ma faktury na inne dane(żeby nie używać tego samego zapytania co OSCOP Idosella, żeby nie pobierało opłat) - Nie ma faktury na inne dane(żeby nie używać tego samego zapytania co OSCOP Idosella, żeby nie pobierało opłat)
- próba edycji zamówienia jak jest edycja zamówienia na punkty może się wywalać(za mało punktów lojalnościowych)
### Dodatkowe pomysły do zrealizowania ### ### Dodatkowe pomysły do zrealizowania ###
- Sprawdzanie logina w trakcie pisania(może być słabe dla ochrony danych klienta) - Sprawdzanie logina w trakcie pisania(może być słabe dla ochrony danych klienta)
- Limit znaków | Wydłużanie się okienka od uwag do sklepu|kuriera - Limit znaków | Wydłużanie się okienka od uwag do sklepu|kuriera
- W przypadku punktów odbioru na jednej mapie, można zamienić metody dostawy wymagające punkty odbioru na jeden wspólny. - W przypadku punktów odbioru na jednej mapie, można zamienić metody dostawy wymagające punkty odbioru na jeden wspólny.
- Na mobilce przyklejenie zamów na dół ekranu na wypadek gdyby zalogowany użytkownik miał już wybrany punkt odbioru
- Przekreślona cena|Omnibus w wypadku gdy produkt jest w promocji - Przekreślona cena|Omnibus w wypadku gdy produkt jest w promocji
- Przyklejony przycisk "Zamawiam i płacę" wraz z ceną i regulaminem
- ApplePay na Iphone na górze reszta schowana
- Klient wybierze inposta nie trzeba danych osobowych? domyślnie podaje kreseczki spigen.pl
### Rozliczenie ###
- Wersja lifetime
- wersja abonamentowa 3, 6, 12 miesięcy
### Uwagi ### ### Uwagi ###
- W przypadku sklepu w innym języku niż polskim upewnij się czy wszystko jest dobrze przetłumaczone!!!!!!! - W przypadku sklepu w innym języku niż polskim upewnij się czy wszystko jest dobrze przetłumaczone!!!!!!!
@@ -61,3 +68,4 @@ Trzeba je później podmienić w kodzie w Wydzielonym Javascript na np.:
- Dziwna rzecz którą zauważyłem. Jak składasz zamówienie wraz z zakładaniem konta, ale okazuje się że brakuje któregoś produktu w koszyku, to konto dalej się zakłada(ponieważ w takiej sytuacji najpierw zakłada się konto, a później składa się zamówienie) - Dziwna rzecz którą zauważyłem. Jak składasz zamówienie wraz z zakładaniem konta, ale okazuje się że brakuje któregoś produktu w koszyku, to konto dalej się zakłada(ponieważ w takiej sytuacji najpierw zakłada się konto, a później składa się zamówienie)
- nie można wybierać hurtownika w place-order - nie można wybierać hurtownika w place-order
- Jak się klika Zamów bez rejestracji to jest faktura na inne dane. Schować? - Jak się klika Zamów bez rejestracji to jest faktura na inne dane. Schować?
- BADANIE KONWERSJI PODCZAS WDROŻENIA DLA KLIENTÓW

View File

@@ -40,7 +40,7 @@
<iaixsl:if test="(number(/shop/basket/@cost) = 0) and (number(/shop/basket/@points_used) = 0)"> <iaixsl:if test="(number(/shop/basket/@cost) = 0) and (number(/shop/basket/@points_used) = 0)">
<script>window.location.href="/return.php?status=order_minimum"</script> <script>window.location.href="/return.php?status=order_minimum"</script>
</iaixsl:if> </iaixsl:if>
<iaixsl:if test="number(/shop/basket/@points_used) &gt; number(/shop/basket/@client_points)"> <iaixsl:if test="(number(/shop/basket/@points_used) &gt; number(/shop/basket/@client_points)) and not(/shop/order_edit)">
<script>window.location.href="/return.php?status=order_notenoughpoints"</script> <script>window.location.href="/return.php?status=order_notenoughpoints"</script>
</iaixsl:if> </iaixsl:if>
@@ -1166,7 +1166,6 @@
</iaixsl:choose> </iaixsl:choose>
</div> </div>
</div> </div>
<div class="cop_button_txt"></div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -814,7 +814,7 @@ function getNewPaymentsAndDeliveries(data = null) {
throwAjaxError(a); throwAjaxError(a);
app_shop.fn.ajaxLoadSite(0); app_shop.fn.ajaxLoadSite(0);
}, },
success: function (e) { success: async function (e) {
let prepaidMarkup = ""; let prepaidMarkup = "";
// Stworzenie markupa dla metod dostaw // Stworzenie markupa dla metod dostaw
@@ -924,10 +924,16 @@ function getNewPaymentsAndDeliveries(data = null) {
const currentPayments = document.getElementById("osc_prepaids_method"); const currentPayments = document.getElementById("osc_prepaids_method");
if(document.getElementById("osc_prepaids_method").innerHTML === "") currentPayments.insertAdjacentHTML("beforeend",'<div class="menu_messages_warning" id="menu_messages_warning"><div class="menu_messages_message_sub"><p>' + <iai:variable vid="Brak metod płatności"/> + <iai:variable vid="w celu uzyskania informacji jak skompletować zamówienie"/> + ', <a href="/contact.php">' + `${<iai:variable vid="skontaktuj się z nami"/>}` + "</a></p></div></div>"); if(document.getElementById("osc_prepaids_method").innerHTML === "") currentPayments.insertAdjacentHTML("beforeend",'<div class="menu_messages_warning" id="menu_messages_warning"><div class="menu_messages_message_sub"><p>' + <iai:variable vid="Brak metod płatności"/> + <iai:variable vid="w celu uzyskania informacji jak skompletować zamówienie"/> + ', <a href="/contact.php">' + `${<iai:variable vid="skontaktuj się z nami"/>}` + "</a></p></div></div>");
// Przygotowanie informacji o dostawie do obliczenia daty dostawy
const deliveryDateInfo = {deliveryVal: null, delivery: null, pickuppoint: null};
const firstInput = document.querySelector("#osc_order1 input");
if(firstInput) changeDeliveryInfoObject(deliveryDateInfo, firstInput);
// Wstawienie pickuppoint jeśli edycja i istnieje // Wstawienie pickuppoint jeśli edycja i istnieje
if(data?.pickupData !== undefined && data?.pickupData !== null){ if(data?.pickupData !== undefined && data?.pickupData !== null){
const selectedShipping = document.querySelector(`#cop_seection2 input#${deliveryId}`); const selectedShipping = document.querySelector(`#cop_seection2 input#${deliveryId}`);
checkPrevPickupPoint( const pointExists = await checkPrevPickupPoint(
selectedShipping.parentElement.querySelector(".fselectedPoint"), selectedShipping.parentElement.querySelector(".fselectedPoint"),
data.pickupData.id, data.pickupData.id,
data.pickupData.name, data.pickupData.name,
@@ -935,12 +941,13 @@ function getNewPaymentsAndDeliveries(data = null) {
data.pickupData.address.city, data.pickupData.address.city,
data.pickupData.address.postcode, data.pickupData.address.postcode,
data.deliveryMethodId data.deliveryMethodId
).then(pointExists=>{ )
// Odznaczenie punktu jeśli punkt odbioru nie istnieje(Wcześniej był zaznaczony przy edycji) // Odznaczenie punktu jeśli punkt odbioru nie istnieje(Wcześniej był zaznaczony przy edycji)
if(!pointExists) selectedShipping.checked = false; if(!pointExists) selectedShipping.checked = false;
}); else changeDeliveryInfoObject(deliveryDateInfo, selectedShipping);
}// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony) }// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony)
else if(firstTimeLoadPage && prevOrderInfo && prevOrderInfo?.prevCountry === document.getElementById("client_region").value){ else if(firstTimeLoadPage && prevOrderInfo && prevOrderInfo?.prevCountry === document.getElementById("client_region").value){
// POPRZEDNIa PŁATNOSC
const prevPaymentMethod = prevOrderInfo.prevPaymentMethod; const prevPaymentMethod = prevOrderInfo.prevPaymentMethod;
// Zaznaczenie metod płatności które nie tworzą popupa // Zaznaczenie metod płatności które nie tworzą popupa
@@ -952,7 +959,7 @@ function getNewPaymentsAndDeliveries(data = null) {
cloneElement(document.getElementById(paymentMethodId)); cloneElement(document.getElementById(paymentMethodId));
} }
// Poprzednia dostawa // POPRZEDNIA DOSTAWA
const prevDeliveryMethod = prevOrderInfo.prevDeliveryMethod; const prevDeliveryMethod = prevOrderInfo.prevDeliveryMethod;
const prevDeliveryInput = document.querySelector(`input#${prevDeliveryMethod.id}`); const prevDeliveryInput = document.querySelector(`input#${prevDeliveryMethod.id}`);
@@ -960,7 +967,7 @@ function getNewPaymentsAndDeliveries(data = null) {
if(prevDeliveryInput){ if(prevDeliveryInput){
// Sprawdzenie czy dostawa miała punkt odbioru // Sprawdzenie czy dostawa miała punkt odbioru
if(prevDeliveryMethod.fselectedPoint){ if(prevDeliveryMethod.fselectedPoint){
checkPrevPickupPoint( const pointExists = await checkPrevPickupPoint(
prevDeliveryInput.parentElement.querySelector(".fselectedPoint"), prevDeliveryInput.parentElement.querySelector(".fselectedPoint"),
prevDeliveryMethod.fselectedPoint.deliveryPointId, prevDeliveryMethod.fselectedPoint.deliveryPointId,
prevDeliveryMethod.fselectedPoint.name, prevDeliveryMethod.fselectedPoint.name,
@@ -968,12 +975,12 @@ function getNewPaymentsAndDeliveries(data = null) {
prevDeliveryMethod.fselectedPoint.city, prevDeliveryMethod.fselectedPoint.city,
prevDeliveryMethod.fselectedPoint.zipcode, prevDeliveryMethod.fselectedPoint.zipcode,
prevDeliveryMethod.fselectedPoint.courierId prevDeliveryMethod.fselectedPoint.courierId
).then(pointExists=>{ )
if(pointExists) prevDeliveryInput.checked = true; if(pointExists) prevDeliveryInput.checked = true;
});
}else{ }else{
prevDeliveryInput.checked = true; prevDeliveryInput.checked = true;
} }
changeDeliveryInfoObject(deliveryDateInfo, prevDeliveryInput);
} }
} }
@@ -982,16 +989,17 @@ function getNewPaymentsAndDeliveries(data = null) {
if(paymentValue && checkedPayment && (checkedPayment.dataset.group === "card" || checkedPayment.dataset.group === "transfer")){ if(paymentValue && checkedPayment && (checkedPayment.dataset.group === "card" || checkedPayment.dataset.group === "transfer")){
cloneElement(checkedPayment); cloneElement(checkedPayment);
} }
// Przeładowanie mapy // Przeładowanie mapy
loadMap(); loadMap();
// Zmiana daty dostawy i pokazanych opcji dostawy
if(deliveryDateInfo.deliveryVal && deliveryDateInfo.delivery && deliveryDateInfo.pickuppoint) calculateDeliveryDate(deliveryDateInfo.deliveryVal, deliveryDateInfo.delivery, deliveryDateInfo.pickuppoint);
// Przeliczenie kosztu dostawy // Przeliczenie kosztu dostawy
calculateBasketCost(); calculateBasketCost();
// Zmiana daty dostawy i pokazanych opcji dostawy
const firstInput = document.getElementById("osc_order1 input");
if(firstInput) deliveryDate(firstInput.value, firstInput.dataset.delivery, firstInput.dataset.pickuppoint);
calculateBasketCost();
app_shop.fn.ajaxLoadSite(0);
app_shop.fn.ajaxLoadSite(0);
firstTimeLoadPage = false; firstTimeLoadPage = false;
}, },
}); });
@@ -1100,7 +1108,7 @@ function checkPrevShipping(){
// Przeliczenie kosztu i czasu dostawy i zapisanie nowej metody dostawy // Przeliczenie kosztu i czasu dostawy i zapisanie nowej metody dostawy
function changeCurrentShippingInfo(shippingMethod){ function changeCurrentShippingInfo(shippingMethod){
calculateBasketCost(); calculateBasketCost();
deliveryDate(shippingMethod.value, shippingMethod.dataset.delivery, shippingMethod.dataset.pickuppoint); calculateDeliveryDate(shippingMethod.value, shippingMethod.dataset.delivery, shippingMethod.dataset.pickuppoint);
app_shop.vars.checkedShipping = shippingMethod.value; app_shop.vars.checkedShipping = shippingMethod.value;
} }
document.getElementById("cop_seection2").addEventListener("click", e => { document.getElementById("cop_seection2").addEventListener("click", e => {
@@ -1378,7 +1386,7 @@ function formatPrice(price, currencySign) {
}; };
// Funkcja od ustalenia daty dostawy // Funkcja od ustalenia daty dostawy
function deliveryDate(deliveryVal, delivery, pickuppoint) { function calculateDeliveryDate(deliveryVal, delivery, pickuppoint) {
const deliveryMessageEl = document.querySelector("#order2_shiptime span:not(.operation_value)"); const deliveryMessageEl = document.querySelector("#order2_shiptime span:not(.operation_value)");
const deliveryDateEl = document.querySelector("#order2_shiptime .operation_value"); const deliveryDateEl = document.querySelector("#order2_shiptime .operation_value");
const date = delivery.split("#"); const date = delivery.split("#");
@@ -1393,6 +1401,12 @@ function deliveryDate(deliveryVal, delivery, pickuppoint) {
else deliveryDateEl.innerHTML = orderTxt[`shipping${parseInt(date[3])}`]; else deliveryDateEl.innerHTML = orderTxt[`shipping${parseInt(date[3])}`];
} }
}; };
// Zmiana informacji o dostawie
function changeDeliveryInfoObject(deliveryObject, deliveryElement){
deliveryObject.deliveryVal = deliveryElement.value;
deliveryObject.delivery = deliveryElement.dataset.delivery;
deliveryObject.pickuppoint = deliveryElement.dataset.pickuppoint;
}
// Obsługa klilnięć na elementy w podsumowaniu // Obsługa klilnięć na elementy w podsumowaniu
document.getElementById("cop_seection3").addEventListener("click", (e) => { document.getElementById("cop_seection3").addEventListener("click", (e) => {