> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt ## Resource: wix-pricing-plans-backend ## Namespace: events ## Article: Introduction ## Article Link: https://dev.wix.com/docs/velo/apis/wix-pricing-plans-backend/events/introduction.md ## Article Content: # Introduction Wix Pricing Plans events are fired in your site's backend when certain events occur with plans. You can write event handlers that react to these events. Event handler functions receive data that corresponds to the event that has occurred. Use event handlers to create custom responses to pricing plan events. > **Note**: Backend events don't work when previewing your site. ### Working with Pricing Plan Event Handlers To add a pricing plan event handler, add an **events.js** file to the **Backend** section of your site if one does not already exist. All event handler functions for your site are defined in this file. Event handler functions are defined using the following pattern: ```javascript export function _(event) { } ``` For example, an event handler that handles pricing plan updates looks like this: ```javascript export function wixPricingPlansBackend_onPlanUpdated(event) { } ``` ### Event Types The Pricing Plans API events support different types of events: | Type | Examples | Event Object Properties | |---------|-----------------------------|--------------------------------------| | Domain | orderCreated, orderUpdated | event.metadata and event.entity | | Action | orderCanceled, orderResumed | event.metadata and event.data (to support custom payloads, which in our case is always the order) | > **Note**: Deprecated Paid Plans API functions trigger their original Paid Plans events. These events receive different event objects than the ones received when new Pricing Plans events are triggered. Make sure to accommodate for this in your code. Be aware of which events are being called and anticipate which event objects will be returned. ### Order Events and Corresponding Statuses As an order progresses through its lifecycle from order creation until order completion, various events get triggered. The order's status is updated accordingly. For example, the following describes the events and statuses for an online, recurring order: | Timeline of Events | Events Triggered | Order Status | |----------------------------------------|-------------------------------------|--------------| | 1) Online, recurring order created | orderCreated | DRAFT | | 2) Payment arranged, start date later | orderPurchased | PENDING | | 3) Start date arrives | orderStarted, orderCycleStarted | ACTIVE | | 4) Next cycle arrives | orderCycleStarted | ACTIVE | | 5) Last cycle finishes | orderEnded | ENDED | The following flowchart details order events and statuses. ![Order Events](https://wixmp-833713b177cebf373f611808.wixmp.com/images/velo-images/media_orderevents.png)