OpenCart-Hellas 

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

Εδώ μπορείτε να ζητάτε δωρεάν βοήθεια για την ανάπτυξη απλών τροποποιήσεων (Mods) στον κώδικα του Opencart.
#374
Καλημέρα σας,
Επανέρχομαι στο φόρουμ με μια ερώτηση, αναφορικά με ένα πρόβλημα που με απασχολεί.
Στο κατάστημα, με την επιλογή αγοράς ενός προϊόντος, υπάρχουν 6 βήματα που ακολουθεί ο υποψήφιος αγοραστής.
• Βήμα 1 : Επιλογές αγοράς (Εγγραφή ή αγορά ως επισκέπτης)
• Βήμα 2 : Λογαριασμός και λεπτομέρειες χρέωσης (Συμπλήρωση προσωπικών στοιχείων και επιλογή παραστατικού)
• Βήμα 3 : Λεπτομέρειες παράδοσης (ίδια ή διαφορετική διεύθυνση παράδοσης)
• Βήμα 4 : Τρόπος παράδοσης (παραλαβή από το κατάστημα ή αποστολή προϊόντος)
• Βήμα 5 : Τρόπος πληρωμής (Αντικαταβολή-paypal-τράπεζα)
• Βήμα 6 : Επιβεβαίωση παραγγελίας
Ξεκινώντας τα παραπάνω βήματα, σε περίπτωση μη επιλογής παραλαβής από το κατάστημα, για τον υπολογισμό των μεταφορικών (όταν είσαι στο βήμα 3) δηλαδή στην περίπτωση αποστολής του προϊόντος, έχουν δημιουργηθεί 3 γεωγραφικές περιοχές (Αθήνα-Υπόλοιπη Ελλάδα-Νησιά) για τις οποίες με το συνδυασμό γεωγραφικών ζωνών και Weight Based Shipping σου υπολογίζει το κόστος αναλόγως επιλεγμένης περιοχής. Όμως δεν λαμβάνει υπόψιν το βήμα 4 (λογικό αφού το βήμα 3 προηγείται του 4) όπου σε περίπτωση αντικαταβολής έχεις διαφορετική χρέωση παντού σε σχέση με τα κιλά του προϊόντος (ανεξαρτήτως αν επιλέξεις Αθήνα, Υπόλοιπη Ελλάδα ή Νησιά).
Ξέρετε πως θα μπορούσα να καλύψω αυτή τη περίπτωση? Όταν δηλαδή στο βήμα 4 επιλέξει τελικά αντικαταβολή και εφόσων στο βήμα 3 έχει ήδη επιλέξει περιοχή (που φυσικά θα έχει διαφορετική χρέωση λόγω τελικής επιλογής αντικαταβολής), να του φέρει τις τιμές που θα ορίζονται παντού τα ίδια για αυτή τη περίπτωση?
#375
Ξέρετε πως θα μπορούσα να καλύψω αυτή τη περίπτωση? Όταν δηλαδή στο βήμα 4 επιλέξει τελικά αντικαταβολή και εφόσων στο βήμα 3 έχει ήδη επιλέξει περιοχή (που φυσικά θα έχει διαφορετική χρέωση λόγω τελικής επιλογής αντικαταβολής), να του φέρει τις τιμές που θα ορίζονται παντού τα ίδια για αυτή τη περίπτωση?
Η αντικαταβολή είναι μέθοδος πληρωμής, άρα ο πελάτης την επιλέγει στο βήμα 5. Μπορείς να γίνεις λίγο πιο σαφής, έτσι όπως το περιγράφεις δεν καταλαβαίνω τι ακριβώς θες να κάνεις.
#376
Μάλλον δεν ήταν και ιδιαίτερα καταννοητό με το τρόπο που το περιέγραψα. Θα προσπαθήσω λίγο πιο απλά.

Το κυρίως πρόβλημα είναι ο υπολογισμός των μεταφορικών με βάση τον επιλεγμένο τρόπο πληρωμής. Δηλαδή για όλους τους τρόπους πληρωμής εκτός της αντικαταβολής η ρύθμιση τους ανά ζώνης που ανήκει ο πελάτης (πράγμα που το έχω καταφέρει) αλλά και η ρύθμιση τους στην περίπτωση που τελικά ο πελάτης επιλέξει τον τρόπο πληρωμής της αντικαταβολής (όπου η χρέωση είναι ίδια ανεξαρτήτους ζώνης στην οποία ανήκει ο πελάτης)

Παράδειγμα
1) Συμπληρώνω τα στοιχεία μου κατά την αγορά και μένω στη Θεσσαλία, άρα τα μεταφορικά μου με βάση το προιόν θα είναι σε συνάρτηση με το βάρος του και για 2 κιλά θα πληρώσω 3,5 ευρώ μεταφορικά αν επιλέξω να πληρώσω με paypal ή μεταφορά σε λογαριασμό τραπέζης.
2) Συμπληρώνω τα στοιχεία μου κατά την αγορά και μένω στη Κρήτη, άρα τα μεταφορικά μου με βάση το προιόν θα είναι σε συνάρτηση με το βάρος του και για 2 κιλά θα πληρώσω 5 ευρώ μεταφορικά αν επιλέξω να πληρώσω με paypal ή μεταφορά σε λογαριασμό τραπέζης.
Έχω δηλαδή ορίσει διαφορετική χρέωση για περιοχές της Ελλάδος αν επιλεγεί κάποιος τρόπος μεταξύ paypal ή εμβάσματος.

Αυτό που θέλω είναι ανεξαρτήτως περιοχής είτε αυτή λέγεται Κρήτη ή Θεσσαλία, με το ίδιο προιόν και τα ίδια κιλά, αν διαλέξω να πληρώσω με αντικαταβολή, τα μεταφορικά μου να είναι παντού τα ίδια και για παράδειγμα 6 ευρώ.
#377
Αυτό που θέλω είναι ανεξαρτήτως περιοχής είτε αυτή λέγεται Κρήτη ή Θεσσαλία, με το ίδιο προιόν και τα ίδια κιλά, αν διαλέξω να πληρώσω με αντικαταβολή, τα μεταφορικά μου να είναι παντού τα ίδια και για παράδειγμα 6 ευρώ.
Δεν αναφέρεις αναλυτικά πως ήδη κοστολογείς ή πως θες να κοστολογείς την αποστολή της αντικαταβολής (weight based ή fixed). Λες "για τα ίδια κιλά". Εγώ με αυτό καταλαβαίνω ότι αναλόγως με τα κιλά της παραγγελίας θες να διαμορφώνεται η τιμή της αντικαταβολής, άρα weight based σωστά;

- Αν θες weight based, φτιάχνεις ένα αντίγραφο του extension weigth based shipping (θα σου εξηγήσω πως γίνεται σε επόμενο στάδιο αν δεν ξέρεις) και στα αρχεία γλώσσας του weight based, το περιγράφεις ως αντικαταβολή. Έτσι στο βήμα της αποστολής ο πελάτης επιλέγει τρόπο αποστολής "αντικαταβολή" και εμφανίζεται το κόστος ανάλογα με το βάρος της παραγγελίας με αντικαταβολή. Στο επόμενο βήμα επιλογής μεθόδου πληρωμής, ορίζεις να μην εμφανίζονται οι άλλες μέθοδοι αποστολής όταν έχει επιλεγεί η μέθοδος αποστολής "αντικαταβολή" (αυτό χρειάζεται τροποποίηση στον κώδικα των extensions και θα σου δείξω γίνεται σε επόμενο στάδιο) και να εμφανίζεται η μέθοδος πληρωμής αντικαταβολή. Δηλαδή ο πελάτης επιλέγει δύο φορές άντικαταβολή. Μία ως μέθοδο αποστολής και μία ως μέθοδο πληρωμής.

- Αν τώρα θες fixed shipping απλά χρησιμοποιείς το υπάρχον extension για σταθερή χρέωση.

Πες μου αν καλύπτεσαι με αυτή τη λογική και μετά προχωράμε στο επόμενο στάδιο.
#378
αναλόγως με τα κιλά της παραγγελίας θες να διαμορφώνεται η τιμή της αντικαταβολής, άρα weight based σωστά;
ΣΩΣΤΑ.

Ακριβώς αυτό που περιγράφεις παρακάτω στην εκδοχή του weight based shipping είναι που θέλω να πετύχω χωρίς να με ενδιαφέρει το fixed κομμάτι. Πρέπει να δημιουργήσω το αντίγραφο που λες? Υπάρχει κάποιο topik για αυτό?
Στο επόμενο βήμα επιλογής μεθόδου πληρωμής, ορίζεις να μην εμφανίζονται οι άλλες μέθοδοι αποστολής όταν έχει επιλεγεί η μέθοδος αποστολής "αντικαταβολή" (αυτό χρειάζεται τροποποίηση στον κώδικα των extensions και θα σου δείξω γίνεται σε επόμενο στάδιο) και να εμφανίζεται η μέθοδος πληρωμής αντικαταβολή
Εδώ φαντάζομαι λέγοντας μου ότι θα μου δείξεις σε επόμενο στάδιο, εννοείς ότι μετά τη δημιουργία του αντιγράφου θα πρέπει να δώ αυτό http://www.opencart-hellas.gr/viewtopic.php?f=15&t=11
#379
Ok, για να δημιουργήσεις αντίγραφα της αποστολής βάσει βάρους μπορείς να διαβάσεις αυτό το άρθρο. Εναλλακτικά μπορείς να αγοράσεις κάποιο έτοιμο από το κατάστημα των extensions. Με γρήγορη ματιά βρήκα ένα εμπορικό και ένα δωρεάν που είναι όμως για παλιότερες εκδώσεις (αν ψάξεις υπάρχουν κι άλλα).
Εδώ φαντάζομαι λέγοντας μου ότι θα μου δείξεις σε επόμενο στάδιο, εννοείς ότι μετά τη δημιουργία του αντιγράφου θα πρέπει να δώ αυτό http://www.opencart-hellas.gr/viewtopic.php?f=15&t=11
Όχι, αυτό απενεργοποιεί την αντικαταβολή. Είναι χρήσιμο και αυτό, αλλά για την προκειμένη περίπτωση εσύ χρειάζεσαι και το αντίθετο. Να απενεργοποιούνται δηλαδή όλες οι άλλες πληρωμές και να εμφανίζεται μόνο η αντικαταβολή αν έχει επιλεγεί μέθοδος αποστολής αντικαταβολή (το μετονομασμένο δηλαδή weight based shipping).
#380
Καλημέρα για αρχή ξεκίνησα με το άρθρο και η αντιγραφή των αρχείων δεν ήταν δύσκολο να γίνει.
Έχω όμως 2 ερωτήσεις πριν πάω παρακάτω στο βήμα 2:

1) Πέρα από την κλωνοποίηση αυτού του αρχείου catalog/language/english/shipping/weight.php θα πρέπει να γίνει το ίδιο και στο φάκελο της ελληνικής γλώσσας? (Σε αυτό-->catalog/language/greek/shipping/weight.php)
2) Στο 2ο βήμα που γίνεται το Global Replaces στο παράδειγμα που χρησιμοποιεί έχει πάρει για κλώνο τa ups.php αρχεία οπότε με την επεξεργασία του είναι εύκολο να αντικαταστήσεις όπου ups σε dhl. Στην περίπτωση μου όμως επειδή πρόκειται για το weight.php μέσα στο αρχείο έχει τη συγκεκριμένη λέξη πολλές φορές, οπότε πως θα ξέρω ποιά να αντικαταστήσω σε weight2 (όπως ονομάζεται το καινούργιο php αρχείο) και ποιά όχι?
παράδειγματα
if ($this->config->get('weight_' . $result['geo_zone_id'] . '_status'))
$weight = $this->cart->getWeight();
$quote_data['weight_' . $result['geo_zone_id']] = array(
'code' => 'weight.weight_' . $result['geo_zone_id'],
Ευχαριστώ
#381
Στην πρώτη ερώτηση, ναι και τα Ελληνικά.

Όσο για τη δεύτερη κατανοώ ότι αν δεν γνωρίζεις php είναι ολίγον τρομακτικό ... γι' αυτό σου πρότεινα και τα έτοιμα. Θα πλήρωνες όσο ένα σουβλάκι, θα έκανες τη δουλειά σου χωρίς άγχος, κάποιο παλικάρι θα έβγαζε ένα μικρό χαρτζιλίκι και η κοινότητα του Opencart θα ενισχυόταν από τα ποσοστά της αγοράς ;)

Αν θες όμως να το προσπαθήσεις μόνος σου κατέβασε το δωρεάν για να έχεις ένα σημείο αναφοράς σχετικά με το πως γίνεται. Μετά στη δική σου version αντικατέστησε τα:
ControllerShippingWeight σε ControllerShippingTest
ModelShippingWeight σε ModelShippingTest
/weight σε /test
'weight' σε 'test'
weight_ σε test_
$weight σε $test
'test.test_'

Όπου test η ονομασία των αρχείων του κλώνου extension σου.
#382
Φυσικά και δεν κολλάω στα δύο πακέτα τσιγάρα που κοστίζει το extension :) . Πάω πιο πολύ στο κομμάτι που ανέφερες της προσπάθειας για να μάθουμε και κάτι παραπάνω αλλιώς δεν θα το συζητούσα καν. Είναι και ένας καλός τρόπος εξάσκησης live για τη php που ανέφερες.

Θα το παλέψω λίγο έτσι για την εξάσκηση και αν όχι βούρρρρ στο shopping και επανέρχομαι μετά με απορία που μπορεί να προκύψει σχετικά με το υπόλοιπο κομμάτι της απενεργοποιήσης των άλλων πληρωμών.

Ευχαριστώ και πάλι
#383
Οκ λύθηκε το θέμα της αντικαταβολής και πλέον εμφανίζεται στις επιλογές αποστολής όπως μου ανέφερες.
Είμαι έτοιμος για το τελευταίο στάδιο , όποτε είσαι και εσύ και βρείς χρόνο :)

Γεια σας. Χρησιμοποιώ το OC 3039 με το Journal και[…]

Πολύ καλά κάνεις και το λες, εννοείτε ότι χρειάζετ[…]

email μέσω SMTP

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

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