Skip to content

Developer notes

Overview · Installation · Configuration · Usage · FAQ

Table Content
?:kv_emc_queue Jobs: ref (unique), kind (profile, subscribe, unsubscribe, event, products), name, email, order_id, payload (JSON), status (pending, sending, sent, skipped, failed), attempts, next_at, error
?:kv_emc_consents Consent log (append only): email, user_id, consent Y/N, source, text, ip, created_at

place_order (checkout opt-in), change_order_status_post (order events), update_profile (profile and registration opt-in), newsletters_update_subscriptions_post (Newsletters bridge). Controllers: checkout.pre, profiles.post, products.post, newsletters.pre (storefront) and kv_email_connect (dashboard, consent log, cron; storefront: catalog feed).

php admin.php --dispatch=kv_email_connect.cron sends up to 1000 jobs in about 4 minutes, continues the history import, queues the Brevo product sync once a day and removes old jobs.

Nothing is printed on cacheable guest pages. The queue and consent tables are in ignore_cache_tags.