> ## Documentation Index
> Fetch the complete documentation index at: https://docs.m3ter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Mapping Resolution

The m3ter Connector for Salesforce managed package offers the *Product Mapping Resolution* capability, which supports mapping the same Salesforce Product to different m3ter Plans or Plan Templates, depending on Billing Frequency and/or Currency Code.

This topic introduces Product Mapping Resolution and explains how to work with it:

* [Mapping Resolution Additional Dimensions](#mapping-resolution-additional-dimensions)
* [Billing Frequency](#billing-frequency)
* [Currency Code](#currency-code)
* [How Mapping Resolution Cascades](#how-mapping-resolution-cascades)

<Warning>
  **Important!**

  * **Check Version**. The Product Mapping Resolution feature described in this topic is only available in **v1.1** and above of the m3ter Connector for Salesforce. See [m3ter Connector for Salesforce - Changelog](https://docs.m3ter.com/guides/m3ter-connector-for-salesforce/m3ter-connector-for-salesforce-changelog) for details on how to check your current installed version.
</Warning>

## Mapping Resolution Additional Dimensions

The Product-to-Plan mapping engine can now resolve mappings using two additional dimensions — **billing frequency** and **currency code** — in addition to the existing Product match. Both additional dimensions are optional and only take effect when configured. For example:

<img src="https://mintcdn.com/m3ter/cpZPXOu6R2kAxt6C/images/SMPPRM1.png?fit=max&auto=format&n=cpZPXOu6R2kAxt6C&q=85&s=28df448cbd0c49ec5ea68ed81efbdcfc" alt="SMPPRM1" width="1127" height="205" data-path="images/SMPPRM1.png" />

<Warning>
  **Important!** If you are upgrading to **v1.1** of the m3ter Connector for Salesforce, you must first add the **Billing Frequency** and **Currency Code** fields to the **SyncConfig CMDT layouts** in your Org.
</Warning>

## Billing Frequency

This allows a single Product to resolve to different m3ter Plans depending on the source record's billing frequency - for example, Monthly vs. Annual.

**Setup (SyncConfig):**

* Set **Product Mapping Billing Frequency Key** to the field path where the billing frequency lives on the source object — a direct field (such as `Description`) or a parent path (such as `Opportunity.Description`)

**Mapping records:**

* Set the new **Billing Frequency** field on each m3ter Mapping to the value that mapping applies to.
* Leave it blank to act as the generic fallback for that Product.

**Notes:**

* Values are matched after trim and case normalization, so minor casing/white space differences still match.
* Leave the **SyncConfig** key blank to keep the existing Product-only behavior.

## Currency Code

This allows a single Product to resolve to different m3ter Plans depending on the record's currency — useful for multi-currency Orgs where each currency has its own Plan.

**Setup (SyncConfig):**

* Set **Product Mapping Currency Code Key** to the field path where the currency lives (such as `CurrencyIsoCode`), or a parent path (such as `Opportunity.CurrencyIsoCode`)

**Mapping records:**

* Set the new **Currency Code** field on each m3ter Mapping (such as USD, EUR, GBP).
* Leave it blank for a generic fallback mapping.

**Notes:**

* Values are matched after trim and uppercase normalization, in line with ISO currency codes.

## How Mapping Resolution Cascades

When both dimensions are configured, Product Mapping Resolution tries the most specific match first and falls back progressively:

* Product + Billing Frequency + Currency Code
* then Product + Billing Frequency
* then Product + Currency Code
* then Product only
