Οι εξωτερικές υπηρεσίες (πληρωμές, courier, αποθήκες) στέλνουν ειδοποιήσεις στο https://site.gr/whook.php?provider=<όνομα>. Ο router τρέχει μόνο webhooks που έχουν δηλωθεί, και κάθε δήλωση πρέπει να ορίζει πώς ελέγχεται.
add_filter('cms39_webhooks', function (array $w) {
$w['stock'] = [
'verify' => 'key', 'key' => getenv('STOCK_WEBHOOK_KEY'), // ?key=… ή header X-Webhook-Key
'methods' => ['POST'],
'event' => fn($req) => $req['json']['event_id'] ?? null, // ίδιο event → μία εκτέλεση
];
return $w;
});
function cms39_webhook_stock(array $req)
{
foreach ($req['json']['items'] ?? [] as $item) {
// ενημέρωση αποθέματος
}
return ['ok' => true]; // array → JSON
}Έλεγχος
'verify' => 'key': μυστικό κλειδί (τουλάχιστον 16 χαρακτήρες)'verify' => fn($req, $def) => …: υπογραφή / HMAC της υπηρεσίας'verify' => false: μόνο για ό,τι δεν αλλάζει δεδομένα'ips' => ['1.2.3.4']: επιπλέον όριο σε διευθύνσεις IP
Κάθε ειδοποίηση γράφεται στον πίνακα cms39_webhook_events και φαίνεται στο Settings → Webhooks log. Αν η υπηρεσία στείλει το ίδιο event ξανά, δεν εκτελείται δεύτερη φορά.
ΗΛΕΚΤΡΟΝΙΚΑ ή τηλεφωνικά στο +30.2152151245-8