API καταλόγου2026-11Προεπισκόπηση
Κανόνες συγχρονισμού
Τι γίνεται με την καταχώρισή σας όταν ένας πωλητής στην Κίνα αλλάζει τιμή ή εξαντλεί το απόθεμα.
- Ξαναδιαβάζουμε μια καταχώριση όταν έρχεται παραγγελία γι' αυτήν και με τακτικό πρόγραμμα· το last_checked_at κάθε προϊόντος λέει πότε το κάναμε τελευταία. Ο συγχρονισμός των προϊόντων είναι δωρεάν.
- Κάθε αλλαγή στην οποία ενεργούμε είναι και συμβάν: product.cost_changed και product.out_of_stock.
Το αντικείμενο Sync rule
idstring- Ξεκινά με rule_· ο προεπιλεγμένος κανόνας είναι rule_default.
applies_tostring- all για τον προεπιλεγμένο κανόνα, ή ένα id προϊόντος για εξαίρεση.
on_cost_increase.actionstring- νέα τιμή για να διατηρηθεί το περιθώριό σας, παύση του προϊόντος ή μόνο ειδοποίηση.
on_cost_increase.keep_margin_percentstring- Με reprice: το περιθώριο που διατηρείται, επί της τιμής πώλησης.
on_cost_increase.max_increase_percentstring|null- Με reprice: η μέγιστη αύξηση μιας τιμής με τη μία. Πάνω από αυτή ισχύει το above_max: pause ή notify.
on_cost_decreasestring- keep_price, ή μείωση τιμής στο ίδιο περιθώριο.
on_out_of_stockstring- Πάντα zero_stock: ένα εξαντλημένο SKU δείχνει 0 στα κανάλια σας.
on_back_in_stockstring- restock, ή stay_paused μέχρι να το συνεχίσετε.
round_tostring|null- Κατάληξη τιμής για τις αναπροσαρμοσμένες τιμές, όπως .99 ή .00.
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": {
"action": "reprice",
"keep_margin_percent": "30",
"max_increase_percent": "15",
"above_max": "pause"
},
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
}Λίστα κανόνων συγχρονισμού
GET/v1/sync_rules
Πρώτα ο προεπιλεγμένος κανόνας, μετά κάθε εξαίρεση ανά προϊόν.
Scopeproducts:read
curl "https://www.ninjabuy.com/api/v1/sync_rules" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"data": [
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": {
"action": "reprice",
"keep_margin_percent": "30",
"max_increase_percent": "15",
"above_max": "pause"
},
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
},
{
"id": "rule_9p3e",
"applies_to": "prd_1x0a",
"on_cost_increase": { "action": "pause" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "stay_paused",
"round_to": null,
"updated_at": "2026-11-03T10:14:00Z"
}
],
"has_more": false,
"cursor": null
}Ανάκτηση κανόνα συγχρονισμού
GET/v1/sync_rules/{id}
Ένας κανόνας.
Scopeproducts:read
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του κανόνα.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιος κανόνας σε αυτόν τον λογαριασμό. |
curl "https://www.ninjabuy.com/api/v1/sync_rules/rule_default" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": {
"action": "reprice",
"keep_margin_percent": "30",
"max_increase_percent": "15",
"above_max": "pause"
},
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
}Εξαίρεση για ένα προϊόν
POST/v1/sync_rules
Ένα προϊόν με δικό του κανόνα ακολουθεί αυτόν αντί για τον προεπιλεγμένο. Τα πεδία που παραλείπετε παίρνουν τις τιμές του προεπιλεγμένου.
Scopeproducts:write
Σώμα
applies_tostringυποχρεωτικό- all για τον προεπιλεγμένο κανόνα, ή ένα id προϊόντος για εξαίρεση.
on_cost_increase.actionstring- νέα τιμή για να διατηρηθεί το περιθώριό σας, παύση του προϊόντος ή μόνο ειδοποίηση.
on_cost_increase.keep_margin_percentstring- Με reprice: το περιθώριο που διατηρείται, επί της τιμής πώλησης.
on_cost_increase.max_increase_percentstring|null- Με reprice: η μέγιστη αύξηση μιας τιμής με τη μία. Πάνω από αυτή ισχύει το above_max: pause ή notify.
on_cost_decreasestring- keep_price, ή μείωση τιμής στο ίδιο περιθώριο.
on_out_of_stockstring- Πάντα zero_stock: ένα εξαντλημένο SKU δείχνει 0 στα κανάλια σας.
on_back_in_stockstring- restock, ή stay_paused μέχρι να το συνεχίσετε.
round_tostring|null- Κατάληξη τιμής για τις αναπροσαρμοσμένες τιμές, όπως .99 ή .00.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο προϊόν σε αυτόν τον λογαριασμό. |
| 409 | invalid-state | Το προϊόν έχει ήδη εξαίρεση: αντικαταστήστε εκείνη. |
curl -X POST "https://www.ninjabuy.com/api/v1/sync_rules" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"applies_to": "prd_1x0a",
"on_cost_increase": { "action": "pause" },
"on_back_in_stock": "stay_paused"
}'HTTP/2 201 Created
{
"id": "rule_9p3e",
"applies_to": "prd_1x0a",
"on_cost_increase": { "action": "pause" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "stay_paused",
"round_to": null,
"updated_at": "2026-11-03T10:14:00Z"
}Αντικατάσταση κανόνα συγχρονισμού
PUT/v1/sync_rules/{id}
Στείλτε ολόκληρο τον κανόνα. Ισχύει από την επόμενη φορά που θα διαβάσουμε κάθε καταχώριση.
Scopeproducts:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του κανόνα.
Σώμα
on_cost_increase.actionstring- νέα τιμή για να διατηρηθεί το περιθώριό σας, παύση του προϊόντος ή μόνο ειδοποίηση.
on_cost_increase.keep_margin_percentstring- Με reprice: το περιθώριο που διατηρείται, επί της τιμής πώλησης.
on_cost_increase.max_increase_percentstring|null- Με reprice: η μέγιστη αύξηση μιας τιμής με τη μία. Πάνω από αυτή ισχύει το above_max: pause ή notify.
on_cost_decreasestring- keep_price, ή μείωση τιμής στο ίδιο περιθώριο.
on_out_of_stockstring- Πάντα zero_stock: ένα εξαντλημένο SKU δείχνει 0 στα κανάλια σας.
on_back_in_stockstring- restock, ή stay_paused μέχρι να το συνεχίσετε.
round_tostring|null- Κατάληξη τιμής για τις αναπροσαρμοσμένες τιμές, όπως .99 ή .00.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιος κανόνας σε αυτόν τον λογαριασμό. |
curl -X PUT "https://www.ninjabuy.com/api/v1/sync_rules/rule_default" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Content-Type: application/json" \
-d '{
"on_cost_increase": { "action": "notify" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99"
}'HTTP/2 200 OK
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": { "action": "notify" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
}Διαγραφή εξαίρεσης
DELETE/v1/sync_rules/{id}
Το προϊόν ακολουθεί ξανά τον προεπιλεγμένο κανόνα. Το ίδιο το rule_default δεν διαγράφεται.
Scopeproducts:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του κανόνα.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 409 | invalid-state | Το rule_default δεν διαγράφεται. |
curl -X DELETE "https://www.ninjabuy.com/api/v1/sync_rules/rule_9p3e" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{ "id": "rule_9p3e", "deleted": true }