OpenCart-Hellas 

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

Θέματα που αφορούν τη γενικότερη λειτουργία του Opencart.
#8830
Γεια σε όλους !
Έχω το OC 3039 και αντιμετωπίζω ένα πρόβλημα με τις εκπτώσεις προϊόντων με βάση την ποσότητα.
Έστω ότι έχω ένα προϊόν SKU00 με τιμή τεμαχίου 100€, αν πάρεις 10 ίδια τεμ η τιμή τεμ πάει στα 90€ και στα 20 ίδια τμχ η τιμή πάει στα 80€.
Το προϊόν SKU00 εχει παράμετρο text , για παρατήρηση του πελάτη. πχ θέλω με κόκκινα γράμματα
Αν λοιπόν βάλει ο πελάτης το SKU00 10 τεμ με παρατήρηση τεχτ θέλω με κόκκινα γράμματα και μετά βάλει το ίδιο SKU00 10 τεμ με παρατήρηση θέλω πράσινα γράμματα, θα περαστούν 2 εγγραφές στο καλάθι, αλλά με την τιμή των 20τεμ και όχι με την τιμή των 10.
Λογικό θα πει κάποιος αφού το sku00 είναι ίδιο 10+10=20 και θα υπολογίσει για 20 τεμ την τιμή.
Για εμένα είναι διαφορετικό προϊόν υλοποίησης μιας και αλλάζει (γιατί μπορει να εναι τεχτ ή εισαγωγή εικόνας κτλ). Υπάρχει τρόπος να γίνεται διαχωρισμός και να περνά την τιμή για 10;

Ευχαριστώ,
Αποστόλης
#8831
Καλημέρα,

Για να γίνει αυτό που αναφέρεις χρειάζεται τροποποίηση στο cart class (κάθε φορά που προσθέτεις ένα προϊόν στο καλάθι να προστίθεται ως ξεχωριστό είδος). Αν δεις στο site μας έχω κάνει ανάλογη τροποποίηση. Ωστόσω, δεν γνωρίζω αν υπάρχει έτοιμη επέκταση γι αυτό που θες.
#8833
Καλησπέρα,

Στο cart class,
system/library/cart/cart.php

Πριν από το:
Κώδικας: Επιλογή όλων
if (!$query->row['total']) {

Πρόσθεσε αυτό:
Κώδικας: Επιλογή όλων
$query->row['total'] = false;
#8836
Ανανέωση στις τροποποιήσεις έκανες;
#8839
Ναι έκανα και το είδα με με ιδιωτική περιήγηση.
Πάλι περνάει την έκπτωση.
Μέσα στο αρχείο έχω τώρα το :
.....
$query->row['total'] = false;
if (!$query->row['total']) {
....
#8840
Σωστά, υπολογίζει σε όλα την μικρότερη έκπτωση. Για να υπολογίζει σωστά την εκάστοτε έκπτωση, κάνε αυτό:

Στο cart class (γραμμή 183), πριν από το:
Κώδικας: Επιλογή όλων
$product_discount_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_discount WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND quantity <= '" . (int)$discount_quantity . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity DESC, priority ASC, price ASC LIMIT 1");

Πρόσθεσε αυτό και ανανέωσε τις τροποποιήσεις του OpenCart:
Κώδικας: Επιλογή όλων
$discount_quantity = $cart['quantity'];
#8842
Cheers :)

Σε ευχαριστώ πολύ! Δεν έχω την γνώση.

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