Order Status Change Addon

Αυτό το πρόσθετο προσφέρει έναν εκτεταμένο τρόπο αλλαγής κατάστασης παραγγελίας, αντικαθιστώντας την απλή λειτουργία με αναπτυσσόμενο μενού του CS-Cart.

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

Αναλυτικότερα:

  • Αντικαθιστά το βασικό dropdown του CS-Cart με μια πιο ευέλικτη λύση.

  • Προσθήκη προσαρμοσμένων πεδίων ανάλογα με την κατάσταση (π.χ., αιτιολογία ακύρωσης, tracking number για αποστολή).

  • Βελτιωμένη εμπειρία χρήστη με οργανωμένο popup για όλες τις απαραίτητες πληροφορίες.

Η νέα αλλαγή κατάστασης είναι έτσι:

alt text

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

alt text

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

alt text

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

alt text

Τα αρχεία προτύπων (templates) για τις καταστάσεις βρίσκονται στον φάκελο:
design/backend/addons/slx_orderstatus_change/blocks/status_change/

Αυτή η λειτουργία λειτουργεί όπως όλα τα άλλα πρότυπα blocks. Μπορείτε:

  • Να προσθέσετε νέα πρότυπα στο πρόσθετό σας.

  • Να τα επιλέξετε στη σελίδα επεξεργασίας κατάστασης.

alt text

Μετά την εγκατάσταση του πρόσθετου, αντικαταστήστε στο θέμα της διαχείρισης τον υπάρχοντα status changer με τον νέο,

  1. 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}
  1. 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).

Συνοπτικά:

  1. Επιλογή Προτύπων: Από τη σελίδα διαχείρισης καταστάσεων.

  2. Γλωσσικές Μεταβλητές: Για ευανάγνωστες ετικέτες (π.χ., __invoiced).

  3. Hooks:

    • fn_change_order_status → για προσθήκη λογικής κατά την αλλαγή κατάστασης.

    • get_order_next_statuses → για προσαρμογή των διαθέσιμων επόμενων καταστάσεων.