Για τεχνικούς

Τι ακριβώς αγγίζει το Pricebreeze στο WooCommerce

Οι ερωτήσεις που κάνει ο τεχνικός ενός καταστήματος πριν πει «ναι», με τις απαντήσεις που ισχύουν στον κώδικα.

Μία σελίδα, όχι τεκμηρίωση. Αν κάτι λείπει, γράψε μας και θα το προσθέσουμε εδώ.

Δικαιώματα, ανάγνωση και εγγραφή

Τι διαβάζει

  • Προϊόντα μέσω της WooCommerce REST API, με κλειδί «Ανάγνωση/Εγγραφή» που φτιάχνεις εσύ και ανακαλείς όποτε θέλεις.
  • Παραλλαγές μεταβλητών προϊόντων, ώστε μια γραμμή τιμοκαταλόγου να μπορεί να στοχεύσει τη σωστή.
  • Ανά προϊόν: id, sku, όνομα, τύπος, γονέας, τιμή, κανονική τιμή, τιμή προσφοράς, διαθεσιμότητα. Προαιρετικά ένα πεδίο barcode που διαλέγεις εσύ.

Τι γράφει

  • Μόνο δύο πεδία: regular_price και stock_status. Τίποτα άλλο δεν στέλνεται ποτέ σε αίτημα εγγραφής.
  • Μέσω products/batch και products/{parent}/variations/batch, αποκλειστικά στον πίνακα update. Παρτίδες περίπου 100, με σταδιακή επιβράδυνση όταν το κατάστημα δυσκολεύεται.
  • Ποτέ create, ποτέ delete. Δεν υπάρχει διαδρομή στον κώδικα που να δημιουργεί ή να σβήνει προϊόν.

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

Πού μένουν τα κλειδιά και τι τα προστατεύει

Τα Consumer key και secret κρυπτογραφούνται σε επίπεδο εφαρμογής με AES-256-GCM, πάνω από την κρυπτογράφηση της βάσης. Το κλειδί κρυπτογράφησης ζει σε μεταβλητή περιβάλλοντος, ξεχωριστά από τη βάση.

Τα plaintext δεν περνούν ποτέ σε logs, σε αναφορές σφαλμάτων, σε URL ή στον browser. Ο server τα ανοίγει μόνο τη στιγμή της κλήσης προς το κατάστημα.

Με την «Αποσύνδεση» σβήνονται από εμάς. Ανεξάρτητα από αυτό, μπορείς να διαγράψεις το κλειδί μέσα από το WordPress όποτε θέλεις, και η σύνδεση σταματά αμέσως.

AES-256-GCM, με έλεγχο ακεραιότητας
Αλλοιωμένο κρυπτογράφημα δεν ανοίγει, δεν αποδίδει σκουπίδια.
Το κρυπτογράφημα δένεται με τον προορισμό
Η διεύθυνση του καταστήματος είναι μέρος της κρυπτογράφησης. Αν κάποιος καταφέρει να αλλάξει τη διεύθυνση, τα κλειδιά απλώς δεν ανοίγουν. Προστέθηκε μετά από δικό μας έλεγχο διείσδυσης.
Καμία κλήση σε ιδιωτική διεύθυνση
Πριν από κάθε σύνδεση αναλύεται το DNS και απορρίπτονται μη δημόσιες διευθύνσεις. Τα redirects δεν ακολουθούνται, ώστε να μην παρακάμπτεται ο έλεγχος.
Δύο ανεξάρτητοι διακόπτες
Η ανάκληση δουλεύει και από τις δύο μεριές: από το Pricebreeze και από το WordPress.

Τι γίνεται όταν το κατάστημα δεν είναι όπως το είδε ο χρήστης

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

ΚωδικόςΠότεΑποτέλεσμα
ON_SALEΤο προϊόν έχει ενεργή τιμή προσφοράς τη στιγμή της εγγραφής.Καμία εγγραφή. Η έκπτωση που βλέπει ο πελάτης δεν αλλάζει σιωπηλά.
STORE_CHANGEDΗ τρέχουσα τιμή διαφέρει από αυτή που είχε ο χρήστης μπροστά του στον έλεγχο.Καμία εγγραφή. Η έγκριση αφορούσε άλλη κατάσταση.
MISSING_IN_STOREΤο προϊόν δεν επιστρέφεται πλέον από το κατάστημα.Καμία εγγραφή. Δεν δημιουργείται προϊόν και δεν επιλέγεται άλλο.
ALREADY_APPLIEDΗ ζητούμενη τιμή ή διαθεσιμότητα ισχύει ήδη.Καμία εγγραφή. Το ιστορικό δεν γεμίζει με αλλαγές που δεν άλλαξαν τίποτα.

Καμία εξαίρεση δεν επιλύεται αυτόματα. Το σύστημα δεν ξαναϋπολογίζει, δεν προσαρμόζει και δεν ξαναδοκιμάζει με άλλη τιμή.

Απομόνωση δεδομένων ανά πελάτη

01

Row Level Security

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

02

Δικαιώματα ανά στήλη

Στήλες που ορίζει το σύστημα, όπως κατάσταση εργασίας ή σημάνσεις ποιότητας, δεν είναι εγγράψιμες από τον χρήστη ακόμη κι όταν η γραμμή του ανήκει.

03

Έλεγχος στον server

Κάθε ενέργεια που αλλάζει κατάσταση περνά από κώδικα στον server, με έλεγχο ρόλου και πακέτου. Ο ιδιοκτήτης εγκρίνει και στέλνει, το μέλος ετοιμάζει.

Ο δημόσιος κώδικας του browser δεν είναι μυστικό: το κλειδί που φτάνει στον επισκέπτη είναι σχεδιασμένο να είναι δημόσιο. Γι' αυτό η απομόνωση δεν στηρίζεται σε αυτόν, αλλά στα τρία επίπεδα από πάνω, που ζουν στη βάση και στον server.

Όρια ρυθμού

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

ΕνέργειαΌριο
Σύνδεση, ανά διεύθυνση και ανά email30 και 10 ανά 15 λεπτά
Δημιουργία λογαριασμού ανά διεύθυνση5 την ώρα
Σύνδεσμος σύνδεσης ανά email3 την ώρα
Ανεβάσματα ανά χώρο εργασίας30 την ώρα

Πώς χρησιμοποιείται το μοντέλο

Καρφωμένες εκδόσεις μοντέλου

Τα αναγνωριστικά των μοντέλων είναι σταθερά στον κώδικα, όχι «η τελευταία έκδοση». Μια αναβάθμιση είναι απόφαση με δοκιμή, όχι κάτι που συμβαίνει στον ύπνο σου.

Δομημένη έξοδος, με σχήμα

Το μοντέλο επιστρέφει γραμμές σε συγκεκριμένο σχήμα. Ό,τι δεν το τηρεί σημαίνεται και δεν γίνεται σιωπηλά γραμμή προϊόντος.

Το περιεχόμενο αρχείου είναι δεδομένα

Το κείμενο ενός τιμοκαταλόγου δεν λειτουργεί ποτέ ως οδηγία. Κελιά που μοιάζουν με εντολή προς μοντέλο ή με τύπο υπολογιστικού φύλλου σημαίνονται και πάνε στον έλεγχο.

Καμία αριθμητική από το μοντέλο

Τιμές, περιθώρια και στρογγυλοποιήσεις υπολογίζονται από ντετερμινιστικό κώδικα, σε ακέραια λεπτά. Το μοντέλο δεν συμμετέχει σε κανέναν υπολογισμό χρήματος.

Τι δεν υπάρχει

Χρήσιμο να το ξέρεις από τώρα, γιατί κανένα από αυτά δεν είναι στα σχέδια της τρέχουσας έκδοσης.

  • Δημόσιο API προς το Pricebreeze
  • Εξερχόμενα webhooks προς δικά σου συστήματα
  • Shopify ή άλλη πλατφόρμα εκτός WooCommerce
  • Δημιουργία προϊόντων στο κατάστημα
  • Οποιαδήποτε πρόσβαση σε παραγγελίες ή πελάτες
  • SSO ή SAML
  • Σύνδεση σε API προμηθευτή σε πραγματικό χρόνο
  • Πλήρης αυτοματισμός χωρίς ανθρώπινη έγκριση

Αν αυτά στέκουν, το υπόλοιπο είναι απόφαση του ιδιοκτήτη

Δύο σελίδες ακόμη καλύπτουν ό,τι θα ρωτούσε: τι ακριβώς αλλάζει στο κατάστημα, και πόσο κρατά η εγκατάσταση.

Cookies σε αυτόν τον ιστότοπο

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