D
Module

Subscription

Overview of the Subscription module handling plan billing, downgrades, and renewal notifications.

  • Three cron jobs drive the module: downgrade and addon-expired run every minute, while notification runs daily.
  • SubscriptionNotif queries lack a proper store_id scope, leaking notifications across merchants.
  • PaymentTimer blocks the request when QUEUE_CONNECTION=sync, since the timer job runs inline rather than on a queue.
  • The Downgrade flow contains dead code paths that are no longer reachable from current UI or cron triggers.
  • The pyment typo (intended “payment”) appears in variable names and is shipped in production.