OpenCart-Hellas 

Η Ελληνική κοινότητα υποστήριξης του Opencart

Θέματα που αφορούν τη γενικότερη λειτουργία του Opencart.
#7374
Καλησπερα,
θα ηθελα λιγο τα φωτα σας, αν ειναι εφικτο να εμφανισουμε σε καποιο σημειο στην σελιδα του προιοντος, (πχ κατω απο την τιμη) τα τεμαχια που ηδη εχουν προστεθει στο καλαθι απο το συγκεκριμενο προιον.
Το μονο που εχω βρει ειναι να εμφανιζω το συνολο των τεμαχιων ολων των προιοντων του καλαθιου στην σελιδα.
Ευχαριστω.

Εικόνα
Πρέπει να συνδεθείτε για να δείτε τα συνημμένα αρχεία σε αυτήν τη δημοσίευση.
Τελευταία επεξεργασία από το μέλος SPKON την 12 Ιούλ 2021, 11:00, έχει επεξεργασθεί 1 φορά συνολικά.
#7376
Καλησπέρα,

Σε επίπεδο PHP μπορείς στον controller του product να προσθέσεις το ακόλουθο για να λαμβάνεις στο view την μεταβλητή quantity του εκάστοτε προϊόντος.
Κώδικας: Επιλογή όλων
foreach ($this->cart->getProducts() as $product) {
  if (isset($this->request->get['product_id']) && $this->request->get['product_id'] == $product['product_id']) {
    $data['quantity'] = $product['quantity'];
  }
}

Αν θες να είναι περισσότερο προφέ η υλοποίηση, χρειάζεται να προστεθεί και σε επίπεδο javascript ένα event listener που να ελέγχει αν πατήθηκε προσθήκη στο καλάθι, να κάνει ένα AJAX call σε μία μέθοδο που να τρέχει το παραπάνω και να λαμβάνει το αποτέλεσμα και να το εμφανίζει άμεσα στον browser, αλλά αυτό ξεπερνά το scope της δωρεάν υποστήριξης.
#7383
Alexandra έγραψε: 09 Ιούλ 2021, 14:22 Καλησπέρα,

Σε επίπεδο PHP μπορείς στον controller του product να προσθέσεις το ακόλουθο για να λαμβάνεις στο view την μεταβλητή quantity του εκάστοτε προϊόντος.
Κώδικας: Επιλογή όλων
foreach ($this->cart->getProducts() as $product) {
  if (isset($this->request->get['product_id']) && $this->request->get['product_id'] == $product['product_id']) {
    $data['quantity'] = $product['quantity'];
  }
}
Αν θες να είναι περισσότερο προφέ η υλοποίηση, χρειάζεται να προστεθεί και σε επίπεδο javascript ένα event listener που να ελέγχει αν πατήθηκε προσθήκη στο καλάθι, να κάνει ένα AJAX call σε μία μέθοδο που να τρέχει το παραπάνω και να λαμβάνει το αποτέλεσμα και να το εμφανίζει άμεσα στον browser, αλλά αυτό ξεπερνά το scope της δωρεάν υποστήριξης.
Σας ευχαριστω θερμα, ημουν τοσο κοντα στην λυση. Ειχα καταφερει να εμφανιζω το συνολο των τεμαχιων ολων των προιοντων του καλαθιου στην σελιδα, αλλα αντιμετωπιζα οπως & τωρα ενα θεμα.
Οταν δεν υπαρχει προιον στο καλαθι εμφανιζει σφαλμα στην σελιδα του προιοντος γιατι δεν βρισκει δηλωμενη μεταβλητη στον controller μαλλον.
Κώδικας: Επιλογή όλων
Notice: Undefined variable: products_quantity in /var/www/vhosts/.../demo/catalog/view/theme/default/template/product/product.tpl on line 144 CURRENT PRODUCT ITEMS IN CART: 
Καλη συνεχεια.
#7384
Γι' αυτό στους κανόνες λέμε να αναφέρετε την έκδοση OpenCart.

Επίσης δεν αναφέρεις που/πως χρησιμοποιείς στον controller την μεταβλητή $products_quantity... anyway στο view σε εκδόσεις 2.x, μπορείς να το κάνεις κάπως έτσι για να ελέγχει αν η μεταβλητή υπάρχει, εναλλακτικά θα μπορούσες να την αρχικοποιήσεις στον Controller πριν το loop:
Κώδικας: Επιλογή όλων
<?php echo !empty($products_quantity) ?  $products_quantity : 0; ?>
#7385
Alexandra έγραψε: 12 Ιούλ 2021, 14:11 Γι' αυτό στους κανόνες λέμε να αναφέρετε την έκδοση OpenCart.

Επίσης δεν αναφέρεις που/πως χρησιμοποιείς στον controller την μεταβλητή $products_quantity... anyway στο view σε εκδόσεις 2.x, μπορείς να το κάνεις κάπως έτσι για να ελέγχει αν η μεταβλητή υπάρχει, εναλλακτικά θα μπορούσες να την αρχικοποιήσεις στον Controller πριν το loop:
Κώδικας: Επιλογή όλων
<?php echo !empty($products_quantity) ?  $products_quantity : 0; ?>
Εχετε δικιο, απολογουμε για την εκδοση του OC. Επειδη ειχα σηκωσει το ιδιο ερωτημα και στο αγγλοφωνο νομισα το εγραψα και εδω.
Ειχα συμπεριλαβει τον ελεγχο στον controller μετα απο την λυση που προτεινες οπως παρακατω αλλα δεν μου δουλεψε.
Κώδικας: Επιλογή όλων
 if (.....){
.......
}
else {
	$data['products_quantity'] = '';
}
	
kai sto view ...
Κώδικας: Επιλογή όλων
<?php if ($products_quantity) { ?>
<li><?php echo "CURRENT PRODUCT ITEMS IN CART: " . $products_quantity; ?>   </li>         
<?php } 
else { ?>
<li> <?php echo "" ; ?>   </li>
Ευχαριστω.
#7386
Κώδικας: Επιλογή όλων
<?php echo !empty($products_quantity) ?  'CURRENT PRODUCT ITEMS IN CART: ' . $products_quantity : ''; ?>
όπου το 'CURRENT PRODUCT ITEMS IN CART: ' το αντικαθιστάς με μεταβλητή γλώσσας αργότερα.
#7387
Alexandra έγραψε: 12 Ιούλ 2021, 18:18
Κώδικας: Επιλογή όλων
<?php echo !empty($products_quantity) ?  'CURRENT PRODUCT ITEMS IN CART: ' . $products_quantity : ''; ?>
όπου το 'CURRENT PRODUCT ITEMS IN CART: ' το αντικαθιστάς με μεταβλητή γλώσσας αργότερα.
:D :D
#7388
SPKON έγραψε: 12 Ιούλ 2021, 18:43
Alexandra έγραψε: 12 Ιούλ 2021, 18:18
Κώδικας: Επιλογή όλων
<?php echo !empty($products_quantity) ?  'CURRENT PRODUCT ITEMS IN CART: ' . $products_quantity : ''; ?>
όπου το 'CURRENT PRODUCT ITEMS IN CART: ' το αντικαθιστάς με μεταβλητή γλώσσας αργότερα.
Επισης προσθεσα και στο javascript που ελεγχει το button-cart την εντολη location.reload(); στην συναρτηση function(json) για να κανει το refresh η σελιδα μετα την προσθεση του προιοντος στο καλαθι.

:D :D
#7389
SPKON έγραψε: 12 Ιούλ 2021, 18:47
SPKON έγραψε: 12 Ιούλ 2021, 18:43
Alexandra έγραψε: 12 Ιούλ 2021, 18:18
Κώδικας: Επιλογή όλων
<?php echo !empty($products_quantity) ?  'CURRENT PRODUCT ITEMS IN CART: ' . $products_quantity : ''; ?>
όπου το 'CURRENT PRODUCT ITEMS IN CART: ' το αντικαθιστάς με μεταβλητή γλώσσας αργότερα.
Επισης προσθεσα και στο javascript στο τελος της product.tpl, που ελεγχει το button-cart την εντολη location.reload(); στην συναρτηση function(json) για να κανει το refresh η σελιδα μετα την προσθεση του προιοντος στο καλαθι.

:D :D
#7390
Εντελώς καλοπροαίρετα, η λύση location.reload(); είναι σαν να σερβίρεις σούπα κονσέρβα σε γκουρμέ εστιατόριο.
email μέσω SMTP

Καλημέρα, Το έχω δοκιμάσει και με ssl:////mail.m[…]

Απλά να αναφέρω ότι με ένα πρόσθετο έγινε αυτό που[…]

Καλησπέρα, πως μπορώ να προσθέσω το usergroup στο […]

Πριν ζητήσετε βοήθεια στο φόρουμ, παρακαλούμε ελέγξτε αν υπάρχει έτοιμη λύση στο OpenCart Extension Marketplace!