## Overview

Promotion 2 is the header record for a V2 promotion. It defines scheduling windows, stacking behavior, channel and customer scoping, coupon codes, and usage limits. Conditions and rewards are attached via [Promotion 2 Condition](promotion2-condition-object-reference) junction records.

| Property | Value |
|----------|-------|
| **API Name** | `s_c__Promotion2__c` |
| **Label** | Promotion 2 |
| **Plural Label** | Promotions 2 |
| **Type** | Custom Object |

## Fields

| Field Label | API Name | Type | Required | Description |
|-------------|----------|------|----------|-------------|
| Coupon Code | `s_c__Coupon_Code__c` | Text(255) | No | Promotion code entered by the customer at checkout. Leave blank for automatic promotions. Matching is case-insensitive. |
| Channel Scope Outlet | `s_c__Channel_Scope_Outlet_Id__c` | Lookup ([s_c__Outlet__c](outlet-object-reference)) | No | Restricts this promotion to a specific outlet. Mutually exclusive with Channel Scope Store. |
| Channel Scope Store | `s_c__Channel_Scope_Store_Id__c` | Lookup ([s_c__Store__c](store-object-reference)) | No | Restricts this promotion to a specific store. Mutually exclusive with Channel Scope Outlet. |
| Customer Scope Account | `s_c__Customer_Scope_Account_Id__c` | Lookup ([Account](account-object-reference)) | No | Restricts this promotion to a specific account. Mutually exclusive with other customer scope fields. |
| Customer Scope Contact | `s_c__Customer_Scope_Contact_Id__c` | Lookup ([Contact](contact-object-reference)) | No | Restricts this promotion to a specific contact. Mutually exclusive with other customer scope fields. |
| Customer Scope Membership | `s_c__Customer_Scope_Membership_Id__c` | Lookup ([s_c__Membership__c](membership-object-reference)) | No | Restricts this promotion to contacts with a specific active membership. Mutually exclusive with other customer scope fields. |
| Days of Week | `s_c__Days_Of_Week__c` | Number[] | No | Days the promotion is active: 0 = Sunday, 1 = Monday, … 6 = Saturday. Leave blank for all days. |
| Description | `s_c__Description__c` | LongTextArea | No | Internal description of this promotion. |
| Display Name | `s_c__Display_Name__c` | Text(255) | No | Customer-facing name for this promotion. |
| End Date | `s_c__End_Date__c` | Date | No | Last date the promotion is active. Leave blank for no end date. |
| End Time | `s_c__End_Time__c` | Time | No | Time on the End Date after which the promotion deactivates. Only applies on the end date boundary. |
| From Time | `s_c__From_Time__c` | Time | No | Daily window start — promotion is only active after this time each day. |
| Per Customer Usage Limit | `s_c__Per_Customer_Usage_Limit__c` | Number(18,0) | No | Maximum number of times a single customer can use this promotion. Leave blank for unlimited. |
| Priority | `s_c__Priority__c` | Number(18,0) | No | Evaluation order across all Promotion 2 records. Lower numbers are evaluated first. |
| Reward Strategy | `s_c__Reward_Strategy__c` | Picklist | No | Controls how multiple Promotion 2 Conditions are applied. `tiered` (default) — only the highest-priority matching condition applies. `stacked` — all matching conditions apply. |
| Stacking Behaviour | `s_c__Stacking_Behaviour__c` | Picklist | No | Controls whether this promotion combines with others. `stackable` (default) — can combine. `not_stackable` — conflicts with other non-stackable promotions. |
| Stacking Priority | `s_c__Stacking_Priority__c` | Picklist | No | Tie-breaker when two non-stackable promotions conflict. `existing_promotions` (default) — keep already-applied promotions. `biggest_reward` — keep whichever gives the largest discount. |
| Start Date | `s_c__Start_Date__c` | Date | No | First date the promotion is active. |
| Start Time | `s_c__Start_Time__c` | Time | No | Time on the Start Date from which the promotion activates. Only applies on the start date boundary. |
| Stop After This Promo | `s_c__Stop_After_This_Promo__c` | Checkbox | No | When checked, no further promotions are evaluated after this one applies. Default: unchecked. |
| Store | `s_c__Store_Id__c` | Lookup ([s_c__Store__c](store-object-reference)) | Yes | The store this promotion belongs to. |
| Timezone | `s_c__Timezone__c` | Text(100) | No | Timezone for all time-based fields. Defaults to the store's timezone. |
| To Time | `s_c__To_Time__c` | Time | No | Daily window end — promotion is only active before this time each day. |
| Total Usage Limit | `s_c__Total_Usage_Limit__c` | Number(18,0) | No | Maximum total uses across all customers. Leave blank for unlimited. |
| Week Frequency | `s_c__Week_Frequency__c` | Number(18,0) | No | Recurrence frequency in weeks from Start Date. 1 = every week (default), 2 = every two weeks. |

## Relationships

| Field | Type | Related Object | Relationship Name |
|-------|------|----------------|-------------------|
| `s_c__Channel_Scope_Outlet_Id__c` | Lookup | [s_c__Outlet__c](outlet-object-reference) | Promotion2_Channel_Scope_Outlet |
| `s_c__Channel_Scope_Store_Id__c` | Lookup | [s_c__Store__c](store-object-reference) | Promotion2_Channel_Scope_Store |
| `s_c__Customer_Scope_Account_Id__c` | Lookup | [Account](account-object-reference) | Promotion2_Customer_Scope_Account |
| `s_c__Customer_Scope_Contact_Id__c` | Lookup | [Contact](contact-object-reference) | Promotion2_Customer_Scope_Contact |
| `s_c__Customer_Scope_Membership_Id__c` | Lookup | [s_c__Membership__c](membership-object-reference) | Promotion2_Customer_Scope_Membership |
| `s_c__Store_Id__c` | Lookup | [s_c__Store__c](store-object-reference) | Promotion2_Store |