Order Status Change Addon
Αυτό το πρόσθετο προσφέρει έναν εκτεταμένο τρόπο αλλαγής κατάστασης παραγγελίας, αντικαθιστώντας την απλή λειτουργία με αναπτυσσόμενο μενού του CS-Cart.
Όταν ο χρήστης επιλέγει να αλλάξει την κατάσταση, εμφανίζεται ένα αναδυόμενο παράθυρο διαλόγου, όπου μπορεί να ορίσει την επόμενη κατάσταση. Επιπλέον, σε αυτό το παράθυρο υπάρχει η δυνατότητα προσθήκης επιπλέον πεδίων που μπορεί να απαιτούνται κατά την αλλαγή της κατάστασης (π.χ., σχόλια, παραπομπές, ημερομηνίες, κλπ.).
Αναλυτικότερα:
Αντικαθιστά το βασικό dropdown του CS-Cart με μια πιο ευέλικτη λύση.
Προσθήκη προσαρμοσμένων πεδίων ανάλογα με την κατάσταση (π.χ., αιτιολογία ακύρωσης, tracking number για αποστολή).
Βελτιωμένη εμπειρία χρήστη με οργανωμένο popup για όλες τις απαραίτητες πληροφορίες.
Η νέα αλλαγή κατάστασης είναι έτσι:

ή στη λίστα των παραγγελιών

Ο αναδυόμενο παράθυρο διαλόγου:

Όταν ο χρήστης επιλέξει την επιθυμητή κατάσταση θα εμφανιστεί το tpl που έχουμε ορίσει στην κατάσταση της παραγγελίας.

Τα αρχεία προτύπων (templates) για τις καταστάσεις βρίσκονται στον φάκελο:
design/backend/addons/slx_orderstatus_change/blocks/status_change/
Αυτή η λειτουργία λειτουργεί όπως όλα τα άλλα πρότυπα blocks. Μπορείτε:
Να προσθέσετε νέα πρότυπα στο πρόσθετό σας.
Να τα επιλέξετε στη σελίδα επεξεργασίας κατάστασης.

Μετά την εγκατάσταση του πρόσθετου, αντικαταστήστε στο θέμα της διαχείρισης τον υπάρχοντα status changer με τον νέο,
In order details view (usually
design/backend/views/orders/details.tpl) there is a hook now, no need for this.
{include file="addons/slx_orderstatus_change/views/orderstatus/components/status_switch.tpl" order_id=$order_info.order_id order_status=$order_info.status}
In order listing view (usually
design/backend/views/orders/manage.tpl) there is no hook there, we must hack it.
{include file="addons/slx_orderstatus_change/views/orderstatus/components/status_switch.tpl" order_id=$o.order_id order_status=$o.status}
Στη σελίδα «Διαχείριση > Καταστάσεις Παραγγελιών», μπορείτε να επιλέξετε ποιο πρότυπο αλλαγής θα εμφανίζεται για κάθε κατάσταση που έχετε ορίσει.
Στη συνέχεια, μπορείτε να επεξεργαστείτε τα πρότυπα αλλαγής ανάλογα με τις ανάγκες σας. Αυτή τη στιγμή υπάρχουν ορισμένα δείγματα προτύπων ως παραδείγματα.
Για να ορίσετε ευανάγνωστες ετικέτες για τα πρότυπά σας, προσθέστε
μια γλωσσική μεταβλητή με τον κανόνα: __[όνομα_αρχείου_προτύπου]
Παράδειγμα:
Αν το πρότυπό σας ονομάζεται invoiced.tpl, τότε χρειάζεστε μια γλωσσική
μεταβλητή με όνομα __invoiced.
Η αλλαγή κατάστασης εξυπηρετείται από τον default controller του CS-Cart (το αναδυόμενο παράθυρο υποβάλλει τα δεδομένα εδώ).
Αν χρειάζεται να αποθηκεύσετε επιπλέον πληροφορίες ή να πραγματοποιήσετε συγκεκριμένες ενέργειες, μπορείτε να το κάνετε με τον συνηθισμένο τρόπο (π.χ., μέσω hooks).
Συνήθως, χρησιμοποιείτε το hook
fn_change_order_statusγια να προσθέσετε τη λειτουργικότητά σας.
Υπάρχει ένα επιπλέον hook, το get_order_next_statuses, με παραμέτρους:
$order_info(πληροφορίες παραγγελίας)$statuses(διαθέσιμες επόμενες καταστάσεις)
Χρησιμοποιήστε αυτό το hook αν θέλετε να εφαρμόσετε συγκεκριμένη λογική για το ποιες καταστάσεις μπορεί να μεταβεί μια παραγγελία.
Παράδειγμα:
Αν μια παραγγελία είναι στην κατάσταση «O» (Open), μπορείτε να ορίσετε ότι μπορεί να μεταβεί μόνο στις καταστάσεις «P» (Processing) ή «D» (Delivered).
Συνοπτικά:
Επιλογή Προτύπων: Από τη σελίδα διαχείρισης καταστάσεων.
Γλωσσικές Μεταβλητές: Για ευανάγνωστες ετικέτες (π.χ.,
__invoiced).Hooks:
fn_change_order_status→ για προσθήκη λογικής κατά την αλλαγή κατάστασης.get_order_next_statuses→ για προσαρμογή των διαθέσιμων επόμενων καταστάσεων.