-
Notifications
You must be signed in to change notification settings - Fork 15
MAS Feature Flags
This document provides a comprehensive reference for all available MAS (Merch at Scale) feature flags. Feature flags allow you to enable or disable specific functionality without code changes.
Feature flags can be set using HTML meta tags in the <head> section of your page:
<meta name="mas-ff-[flag-name]" content="on">| Flag Name | Description | Default Value | Valid Values |
|---|---|---|---|
mas-ff-defaults |
Enables good defaults for each locale and segment so that authors don't have to set them manually. This includes automatic tax display settings based on country and customer segment. | off |
on, off, true, false
|
mas-ff-3in1 |
Controls the 3-in-1 modal checkout experience. When enabled, TWP (Trial With Purchase), D2P (Direct to Purchase), and CRM (Content Rich Modals) modals will use the unified 3-in-1 checkout flow. | on |
on, off
|
mas-ff-annual-price |
Enables the display of annual pricing alongside monthly prices. When enabled and annual parameter is not set to false, prices will show the calculated annual cost. |
off |
on, off, true, false
|
mas-ff-copy-cta |
Adds a copy-to-clipboard button next to checkout CTAs. Useful for authors who need to copy CTA links for use in other contexts. | off |
on, off
|
mas-ff-mas-deps |
Controls whether MAS components are loaded from an external URL (when masLibs is present) or from local dependencies. When enabled, components load from external sources. | off |
on, off, true, false
|
mas-geo-detection |
Enables geographic locale detection using Akamai geolocation. When enabled, the user's actual geographic location is used to determine locale settings instead of the URL prefix. | off |
on, off, true, false
|
Purpose: Eliminates the need for authors to manually configure tax display and pricing settings for each locale. This flag automatically applies region-appropriate defaults based on country, language, and customer segment.
What it controls:
- Unit label display: Automatically adds unit labels (e.g., "per license") for team offers across all countries.
- Tax label display: Automatically shows or hides tax labels ("incl. tax" or "excl. tax") based on country regulations.
Tax Label Display by Country and Customer Segment:
Note: The settings in the table apply only to Milo.
| Country/Locale | INDIVIDUAL_COM | TEAM_COM | INDIVIDUAL_EDU | TEAM_EDU |
|---|---|---|---|---|
| Europe | ||||
| AT_de (Austria) | inkl. MwSt. | inkl. MwSt. | inkl. MwSt. | zzgl. MwSt. |
| BE_en (Belgium) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| BE_fr (Belgium) | TTC | HT | TTC | HT |
| BE_nl (Belgium) | incl. btw | excl. btw | incl. btw | excl. btw |
| BG_bg (Bulgaria) | с включен ДДС | без ДДС | с включен ДДС | без ДДС |
| CH_de (Switzerland) | inkl. MwSt. | zzgl. MwSt. | inkl. MwSt. | zzgl. MwSt. |
| CH_fr (Switzerland) | TTC | HT | TTC | HT |
| CH_it (Switzerland) | incl. IVA | escl. IVA | incl. IVA | escl. IVA |
| CZ_cs (Czech Republic) | včetně DPH | bez DPH | včetně DPH | bez DPH |
| DE_de (Germany) | inkl. MwSt. | zzgl. MwSt. | inkl. MwSt. | zzgl. MwSt. |
| DK_da (Denmark) | inkl. moms | ekskl. moms | inkl. moms | ekskl. moms |
| EE_et (Estonia) | käibemaksuga | käibemaksuta | käibemaksuga | käibemaksuta |
| ES_es (Spain) | IVA incluido | sin IVA | IVA incluido | sin IVA |
| FI_fi (Finland) | sis. ALV:n | ilman ALV:tä | sis. ALV:n | ilman ALV:tä |
| FR_fr (France) | TTC | HT | TTC | HT |
| GB_en (United Kingdom) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| GR_el (Greece) | (συμπερ. ΦΠΑ) | (εξαιρ. ΦΠΑ) | (συμπερ. ΦΠΑ) | (εξαιρ. ΦΠΑ) |
| GR_en (Greece) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| HU_hu (Hungary) | áfával | áfa nélkül | áfával | áfa nélkül |
| IE_en (Ireland) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| IT_it (Italy) | incl. IVA | escl. IVA | incl. IVA | escl. IVA |
| LT_lt (Lithuania) | su PVM | be PVM | su PVM | – |
| LU_de (Luxembourg) | inkl. MwSt. | zzgl. MwSt. | inkl. MwSt. | zzgl. MwSt. |
| LU_en (Luxembourg) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| LU_fr (Luxembourg) | TTC | HT | TTC | HT |
| LV_lv (Latvia) | ar PVN | bez PVN | ar PVN | – |
| NL_nl (Netherlands) | incl. btw | excl. btw | incl. btw | excl. btw |
| NO_nb (Norway) | inkl. mva | ekskl. mva | inkl. mva | ekskl. mva |
| PL_pl (Poland) | w tym VAT | bez VAT | w tym VAT | bez VAT |
| PT_pt (Portugal) | IVA incluso | IVA não incluso | IVA incluso | IVA não incluso |
| RO_ro (Romania) | cu TVA | fără TVA | cu TVA | fără TVA |
| SE_sv (Sweden) | inkl. moms | exkl. moms | inkl. moms | exkl. moms |
| SI_sl (Slovenia) | z DDV-jem | brez DDV-ja | z DDV-jem | brez DDV-ja |
| SK_sk (Slovakia) | vrátane DPH | bez DPH | vrátane DPH | bez DPH |
| TR_tr (Turkey) | KDV dahil | KDV hariç | KDV dahil | KDV hariç |
| UA_uk (Ukraine) | з ПДВ | без урахування ПДВ | з ПДВ | без урахування ПДВ |
| Asia-Pacific | ||||
| AU_en (Australia) | incl. GST | incl. GST | incl. GST | incl. GST |
| ID_en (Indonesia) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| ID_in (Indonesia) | termasuk PPN | sebelum PPN | termasuk PPN | sebelum PPN |
| IN_en (India) | incl. GST | excl. GST | incl. GST | excl. GST |
| IN_hi (India) | GST सहित | GST अतिरिक्त | GST सहित | GST अतिरिक्त |
| JP_ja (Japan) | 税込 | 税込 | 税込 | 税込 |
| KR_ko (South Korea) | 부가세 포함 | 부가세 별도 | – | 부가세 별도 |
| MY_en (Malaysia) | incl. SST | excl. SST | incl. SST | excl. SST |
| MY_ms (Malaysia) | termasuk SST | SST dikecualikan | termasuk SST | SST dikecualikan |
| NZ_en (New Zealand) | incl. GST | incl. GST | incl. GST | incl. GST |
| SG_en (Singapore) | incl. GST | – | incl. GST | excl. GST |
| TH_en (Thailand) | incl. VAT | incl. VAT | incl. VAT | incl. VAT |
| TH_th (Thailand) | รวม VAT | รวม VAT | รวม VAT | รวม VAT |
| Middle East & Africa | ||||
| EG_ar (Egypt) | شاملاً الضريبة | باستثناء ضريبة | شاملاً الضريبة | باستثناء ضريبة |
| EG_en (Egypt) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| MU_en (Mauritius) | incl. VAT | incl. VAT | – | – |
| NG_en (Nigeria) | incl. VAT | incl. VAT | – | – |
| SA_ar (Saudi Arabia) | شاملاً الضريبة | – | – | – |
| SA_en (Saudi Arabia) | incl. VAT | – | incl. VAT | – |
| ZA_en (South Africa) | incl. VAT | excl. VAT | incl. VAT | excl. VAT |
| Latin America | ||||
| CO_es (Colombia) | – | IVA no incluido | – | – |
For the rest of the countries tax label is not displayed by default.
Important: Any card created in M@S Studio automatically has the mas-ff-defaults flag enabled, regardless of whether a meta tag is present on the page.
Usage:
Add the feature flag in the page metadata:
<meta name="mas-ff-defaults" content="on">Or on the commerce service element:
<mas-commerce-service data-mas-ff-defaults="on"></mas-commerce-service>Purpose: Controls the unified 3-in-1 modal checkout experience that streamlines the purchase flow by combining multiple checkout steps into a single modal interface.
What it controls:
- TWP (Trial With Purchase)
- D2P (Direct to Purchase)
- CRM (Content Rich Modals)
Behavior:
- When enabled (default): Checkout links with modal types
twp,d2p, orcrmopen in the unified 3-in-1 modal interface - When disabled: The system uses fallback workflow steps based on product-specific configurations (segmentation, commitment, recommendation, or email steps)
- The checkout URL includes
cli=mini_plansfor TWP/D2P orcli=creativefor CRM modals
When to disable: Use off when you need to bypass the 3-in-1 modal and use traditional multi-step checkout flows, or when testing specific workflow step configurations.
Usage:
<!-- Disable 3-in-1 modal (enabled by default) -->
<meta name="mas-ff-3in1" content="off">Purpose: Enables the display of annual pricing information alongside monthly prices, helping customers understand the total yearly cost of subscription products.
What it controls:
- Annual price calculation: For yearly commitment products billed monthly, calculates and displays the total annual cost (monthly price × 12)
-
Promotional pricing: When promotions are active, calculates the blended annual price considering:
- Discounted months during the promotion period
- Regular price months after promotion ends
- Example: 3 months at $9.99/mo + 9 months at $22.99/mo = $236.88/year
- Price template rendering: Adds annual price display in parentheses after the monthly price, e.g., "$22.99/mo ($275.88/yr)"
-
Mini compare chart styling: Adds
annual-price-new-lineclass to price headings for proper layout
Usage:
<meta name="mas-ff-annual-price" content="on">When enabled, individual price elements can opt out using the annual=false parameter in the merch link.
Purpose: Adds a copy-to-clipboard utility button next to checkout CTA buttons, enabling content authors to easily copy CTA links for documentation or reuse in other contexts.
What it controls:
- Copy button placement: Adds a small clipboard icon button adjacent to each checkout CTA
-
Copy format: Copies the CTA as an HTML anchor tag with the full checkout URL and text placeholder, e.g.:
<a href="https://commerce.adobe.com/..." title="Special Link">CTA {{Buy now}}</a>
When to use: Enable this flag during content authoring and review phases. This is primarily a development/authoring tool and is disabled in production.
Usage:
<meta name="mas-ff-copy-cta" content="on">Purpose: Controls the source location for loading MAS (Merch at Scale) component dependencies, allowing teams to use either the centralized MAS repository or local Milo dependencies.
What it controls:
- Component loading source: Determines where MAS components (commerce service, merch cards, inline prices, checkout links) are loaded from
-
Loading priority:
- If
masLibsconfig is set: Load from the specified external URL - If this flag is enabled: Load from
https://www.adobe.com/mas/libs/ - Fallback: Load from local Milo deps (
../../deps/mas/)
- If
- Error handling: If external load fails, automatically falls back to local Milo dependencies with a console warning
Components affected:
mas-commerce-servicemerch-cardinline-pricecheckout-link
When to use: Enable when you want to use the latest MAS components from the centralized Adobe MAS repository instead of the bundled Milo versions.
Usage:
<meta name="mas-ff-mas-deps" content="on">Purpose: Enables automatic geographic locale detection using Akamai EdgeScape geolocation data, ensuring users see prices and checkout flows appropriate for their actual location rather than the URL-inferred locale.
What it controls:
-
Locale resolution: Uses Akamai's geolocation (stored in
sessionStorageasakamai, or provided in the page URL in the query parameterakamaiLocale) to determine the user's country -
Language-first site handling: Particularly useful for sites with URL structures like
/ar,/africa, or/langstore/[lang]where the URL indicates language but not country - Price localization: Ensures WCS (Web Commerce Service) calls use the correct country code for accurate pricing
- Checkout flow: Routes users to the appropriate regional checkout experience
Behavior by URL pattern:
-
/ar(Argentina) + Akamai ES (Spain) → Useses_ARlocale with ES country for pricing -
/africa+ Akamai ES → Usesen_MUlocale with ES country -
/langstore/en+ Akamai ES → Usesen_USlocale with ES country - Standard country-prefixed URLs (e.g.,
/ae_ar) → Uses URL locale regardless of Akamai
When to use: Enable for language-first sites or multi-region sites where users may access content from different geographic locations than the URL suggests.
Usage:
<meta name="mas-geo-detection" content="on">- Feature flags default to
offunless otherwise specified (exceptmas-ff-3in1which defaults toon) - Values
onandtrueare equivalent for enabling a flag - Values
offandfalseare equivalent for disabling a flag - Feature flags can be overridden via URL parameters for testing purposes
- Changes to feature flags take effect on page load