Υποστήριξη Επεκτάσεων & Θεμάτων
#6020 από giota
23 Οκτ 2019, 11:28
Καλημέρα,
θα ήθελα να εμφανίσω στο καλάθι το ποσό που υπολείπεται για δωρεάν μεταφορικά.

Χρησιμοποιώ το θέμα journal3 και έκδοση opencart Version 2.3.0.2.

προσπάθησα να τροποποιήσω το catalog/view/theme/journal3/template/checkout/cart.tpl
με το εξής:
<?php
$t = 89;
$totalnow = ltrim($total['text'], '$');
$totalnow = (double)$totalnow;
$free = $t - $totalnow;
$free = (double)$free;

if ($free > "0") {
echo "<p style='color:rgba(226, 41, 61, 1);font-weight:bold;text-align:center;font-size:12px;font-size: 12px;padding: 6px 23px;'> Υπολείπονται ακόμη ", $free, "€ για ΔΩΡΕΑΝ ΜΕΤΑΦΟΡΙΚΑ!</p>";
} else {
echo "<p style='color:rgba(226, 41, 61, 1);font-weight:bold;text-align:center;font-size:12px;font-size: 12px;padding: 6px 23px;'> Συγχαρητήρια τα ΜΕΤΑΦΟΡΙΚΑ ΕΙΝΑΙ ΔΩΡΕΑΝ!</p>";
}
?>

Μέσα στο cart.tpl όμως δεν υπολογίζει κάπου το subtotal για αυτό και πήρα το $total['text'] αλλά έτσι λαμβάνω την διαφορά από το total ενώ εγώ θέλω από το subtotal( χωρίς να υπολογίζει τα μεταφορικά). Οποιαδήποτε βοήθεια θα ήταν χρήσιμη.
#6021 από Alexandra
23 Οκτ 2019, 16:45
Καλησπέρα,
Για να μπορέσεις να πάρεις καθαρό το subtotal, τον έλεγχο πρέπει να τον κάνεις από τον controller πχ:
Κώδικας: Επιλογή όλων$data['free_shippping_status'] = $this->cart->getSubTotal() >= 90 ? true : false;

και μετά στο view αναλόγως να περάσεις το μήνυμα.
Κώδικας: Επιλογή όλων<?php
if ($free_shippping_status) {
  echo 'ok message';
} else {
  echo 'not ok message';
}
?>
#6026 από giota
01 Νοεμ 2019, 11:37
Καλημέρα,

ευχαριστώ πολύ! Ναι δεν είχα σκεφτεί ότι έπρεπε να το κάνω στον controller.
Γνωρίζετε και κάποιον τρόπο ώστε να εξαιρέσω συγκεκριμένες κατηγορίες προϊόντων από το subTotal?
Λογικά πάλι ο έλεγχος θα πρέπει να γίνει στον controller?
Χρειάζομαι δηλαδή οι συγκεκριμένες κατηγορίες αν γίνεται να εξαιρούνται από το μήνυμα που θέλω να εμφανίσω για τα μεταφορικά. Δηλαδή όταν στο subTotal υπάρχει και προϊόν από τις συγκεκριμένες κατηγορίες να μην υπολογίζεται η τιμή του στο subtotal.
#6028 από Alexandra
01 Νοεμ 2019, 14:44
Καλησπέρα,

Στην προκειμένη περίπτωση ο υπολογισμός του subtotal γίνεται από τη method getSubTotal της class Cart που εσωτερικά χρησιμοποιεί και άλλες δύο methods getProducts και getRates. Για να χρησιμοποιήσεις κάποια εναλλακτική μέθοδο subtotal που θα λαμβάνει υπόψη κατηγορίες θα χρειαστεί να δημιουργήσεις νέες μεθόδους και να κάνεις extend την class κάτι που ξεπερνάει το scope της δωρεάν υποστήριξης από εδώ.

Μία πιο απλή λύση είναι να τρέξεις την getProducts, να πάρεις τη λίστα των προϊόντων του καλαθιού και ένα ένα να τσεκάρεις σε ποια κατηγορία ανήκουν και να δημιουργήσεις αναλόγως έναν custom τρόπο υπολογισμού του sub total ανάλογα την κατηγορία από το array τιμών που σου δίνει το getProducts.

ΣΥΝΔΕΔΕΜΕΝΑ ΜΕΛΗ

Μέλη σε αυτό το φόρουμ: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης