Σελίδα 1 από 1

Κλωνοποίηση μεθόδων αποστολής

Δημοσιεύτηκε: 03 Ιαν 2015, 12:24
από Alexandra
Κλωνοποίηση μεθόδων αποστολής

Συχνά χρειαζόμαστε διαφορετικές αποστολές βάσει βάρους για να καλύψουμε ταυτόχρονη υποστήριξη αποστολών με ΕΛΤΑ, Courier, κλπ για πολλαπλές γεωγραφικές ζώνες. Ο πιο απλός τρόπος για να το πετύχουμε αυτό είναι μέσω της κλωνοποίησης του module αποστολής βάσει βάρους (weight shipping).

Οδηγίες κλωνοποίησης αποστολής βάσει βάρους (weight shipping) για ΕΛΤΑ, Courier, κλπ
Χρησιμοποιούμε οποιονδήποτε απλό επεξεργαστή κειμένων κατάλληλο για αρχεία κώδικα, πχ Notepad++ απενεργοποιώντας το “BOM” στις ρυθμίσεις (Windows), TextEdit επιλέγοντας plain text στις ρυθμίσεις (OS X), gedit (Linux), κλπ.

Ανοίγουμε τα ακόλουθα αρχεία στον επεξεργαστή κειμένου:
admin/controller/shipping/weight.php
admin/view/template/shipping/weight.tpl

Κάνουμε αναζήτηση για weight και την ControllerShippingWeight την κάνουμε ControllerShippingWeight2 και μετά όπου υπάρχει weight (είτε σκέτη είτε μαζί με άλλες λέξεις) την κάνουμε weight2

Ανοίγουμε το ακόλουθο αρχείο στον επεξεργαστή κειμένου:
admin/language/english/shipping/weight.php
admin/language/greek/shipping/weight.php
...admin/language/και-για-κάθε-άλλη-γλώσσα/shipping/weight.php

Στο περιεχόμενο μετά το ίσον στη σταθερή $_['text_title'] αντικαθιστούμε την υπάρχουσα περιγραφή του module με την ονομασία της νέας μεθόδου αποστολής μεταφρασμένη στην ανάλογη γλώσσα πχ:
Κώδικας: Επιλογή όλων
$_['text_title']  = 'ΕΛΤΑ';
Ανοίγουμε το ακόλουθο αρχείο στον επεξεργαστή κειμένου:
catalog/model/shipping/weight.php
Κάνουμε αναζήτηση για weight και την ModelShippingWeight την κάνουμε ModelShippingWeight2 και μετά όπου υπάρχει weight (είτε σκέτη είτε μαζί με άλλες λέξεις) την κάνουμε weight2

Επίσης στη γραμμή 43 το:
Κώδικας: Επιλογή όλων
'code'         => 'weight.weight_' . $result['geo_zone_id'],
Το κάνουμε
Κώδικας: Επιλογή όλων
'code'         => 'weight2.weight2_' . $result['geo_zone_id'],
Δεν πειράζουμε καθόλου τα ακόλουθα:
(Γραμμή 25)
Κώδικας: Επιλογή όλων
$weight = $this->cart->getWeight();
(Γραμμή 32)
Κώδικας: Επιλογή όλων
if ($data[0] >= $weight) {
(Γραμμή 44)
Κώδικας: Επιλογή όλων
$this->language->get('text_weight') . ' ' . $this->weight->format($weight, $this->config->get('config_weight_class_id')
(οι γραμμές αντιστοιχούν στα αρχεία της 'έκδοσης 1.5.6.4 αλλά η παραπάνω μέθοδος καλύπτει όλες τις εκδόσεις)

Ανοίγουμε τα ακόλουθα αρχεία στον επεξεργαστή κειμένου:
catalog/language/greek/shipping/weight.php
...catalog/language/και-για-κάθε-άλλη-γλώσσα/shipping/weight.php

Στο περιεχόμενο μετά το ίσον στη σταθερή $_['text_title'] αντικαθιστούμε την υπάρχουσα περιγραφή του module με την ονομασία της νέας μεθόδου αποστολής μεταφρασμένη στην ανάλογη γλώσσα πχ:
Κώδικας: Επιλογή όλων
$_['text_title']  = 'ΕΛΤΑ';
Αποθηκεύουμε όλα τα αρχεία πατώντας save as με την ονομασία weight2.php ή weight2.tpl ανάλογα τον τύπο αρχείου. Για κάθε νέα μέθοδο αποστολής που κλωνοποιούμε, στις παραπάνω οδηγίες αυξάνουμε τον αριθμό πχ weight3, weight4, και ούτω καθεξής. Εναλλακτικά, στις παραπάνω αλλαγές και στις ονομασίες αρχείων μπορείτε να αντικαταστήσετε το weight με την ονομασία της αποστολής ή της εταιρίας αποστολής αρκεί να είναι παντού η ίδια πχ Courier αντί για Weight, courier αντί για weight και courier.php / courier.tpl για τα αρχεία.



Οδηγίες κλωνοποίησης αποστολής Citylink για ΕΛΤΑ, Courier, κλπ
Για όσους δεν χρειάζονται διαφορετικές χρεώσεις ανά γεωγραφική ζώνη αλλά ξεχωριστές μεθόδους αποστολής βάσει βάρους, μπορούν να κλωνοποιήσουν το πιο απλό module "Citylink".

Ανοίγουμε τα ακόλουθα αρχεία στον επεξεργαστή κειμένου:
admin/controller/shipping/citylink.php
admin/view/template/shipping/citylink.tpl

Κάνουμε αναζήτηση για citylink και την ControllerShippingCitylink την κάνουμε
ControllerShippingΕlta και μετά όπου υπάρχει citylink (είτε σκέτη είτε μαζί με άλλες λέξεις) την κάνουμε elta

Ανοίγουμε τα ακόλουθα αρχεία στον επεξεργαστή κειμένου:
admin/language/english/shipping/citylink.php
admin/language/greek/shipping/citylink.php
...admin/language/και-για-κάθε-άλλη-γλώσσα/shipping/citylink.php

Στο περιεχόμενο κάνουμε αναζήτηση για citylink και αντικαθιστούμε την λέξη citylink με την ονομασία της νέας μεθόδου αποστολής μεταφρασμένη στην ανάλογη γλώσσα.

Ανοίγουμε το ακόλουθο αρχείο στον επεξεργαστή κειμένου:
catalog/model/shipping/citylink.php
Κάνουμε αναζήτηση για weight και την ModelShippingCitylink την κάνουμε ModelShippingElta και μετά όπου υπάρχει citylink (είτε σκέτη είτε μαζί με άλλες λέξεις) την κάνουμε elta

Επίσης στη γραμμή 40 το:
Κώδικας: Επιλογή όλων
'code'         => 'citylink.citylink',
Το κάνουμε
Κώδικας: Επιλογή όλων
'code'         => 'elta.elta',
Ανοίγουμε τα ακόλουθα αρχεία στον επεξεργαστή κειμένου:
catalog/language/greek/shipping/citylink.php
...catalog/language/και-για-κάθε-άλλη-γλώσσα/shipping/citylink.php

Στο περιεχόμενο κάνουμε αναζήτηση για citylink και αντικαθιστούμε την λέξη citylink με την ονομασία της νέας μεθόδου αποστολής μεταφρασμένη στην ανάλογη γλώσσα.

Αποθηκεύουμε όλα τα αρχεία πατώντας save as με την ονομασία elta.php ή elta.tpl ανάλογα τον τύπο αρχείου. Για κάθε νέα μέθοδο αποστολής που κλωνοποιούμε, στις παραπάνω οδηγίες αντικαταστήσετε το citylink με την ονομασία της αποστολής ή της εταιρίας αποστολής αρκεί να είναι παντού η ίδια πχ Courier αντί για Citylink, courier αντί για citylink και courier.php / courier.tpl για τα αρχεία.

Re: Κλωνοποίηση μεθόδων αποστολής

Δημοσιεύτηκε: 30 Σεπ 2015, 9:43
από Κωνσταντίνος
Καλημέρα,

Ακολούθησα όλα τα βήματα (αντικατάσταση Citylink με Courier) με notepad++. Πρόσθεσα τις σελίδες Courier στα αντίστοιχα σημεία (δεν διέγραψα τα αρχεία Citylink, απλά την απεγκατέστησα). Η μέθοδος αποστολής Courier δουλεύει, αλλά στο καλάθι, αντί για Courier μου γράφει Citylink.

Έλεγξα όλα τα αρχεία Courier, και η λέξη Citylink δεν αναφέρεται πουθενά.
Που οφείλεται το πρόβλημα;

Re: Κλωνοποίηση μεθόδων αποστολής

Δημοσιεύτηκε: 30 Σεπ 2015, 13:49
από Alexandra
Καλησπέρα

Τα αρχεία μετάφρασης τα τροποποίησες;

Re: Κλωνοποίηση μεθόδων αποστολής

Δημοσιεύτηκε: 30 Σεπ 2015, 13:58
από Κωνσταντίνος
Έχεις δίκιο. Τα τροποποίησα και εμφανίζεται σωστά.
Ευχαριστώ!

Re: Κλωνοποίηση μεθόδων αποστολής

Δημοσιεύτηκε: 28 Φεβ 2016, 23:05
από boredmind
Καλησπέρα,


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

Ακόμα, μπορεί να γίνει και αντιγραφη η αντικαταβολή?


Μιάς και τα δύο όταν τα κάνω και πάω να τα κάνω Install στο opencart με πάει σε κενή σελίδα και πατάω back στο browser, με γυρνάει δίχνει ότι έχει γίνει Install αλλά όταν κάνω edit πάλι σε κενή σελίδα.