# Pricing and availability data mapping for Google Understand how pricing and availability information maps to Google Merchant Center fields. Pricing and availability data is synchronized to Google Merchant Center through the supplemental data source. Updates to these fields are event-driven and sent in near real-time when product prices or inventory levels change in commercetools. ## Pricing fields Price values in commercetools are stored in `centAmount` format and must be converted to decimal using `fractionDigits` before being sent to Google Merchant Center. | Google Merchant Center field | Related commercetools field | Required | Mapping logic | | --- | --- | --- | --- | | `price` | `productData.variants[*].price.value.centAmount` and `currencyCode` | Required | Convert `centAmount` to decimal using `fractionDigits`. Format: `15.00 USD`. Use ISO 4217 currency code. | | `sale_price` | `productData.variants[*].price.discounted.value.centAmount` | Optional | Convert `centAmount` to decimal. Format: `12.00 USD`. Represents the promotional price. | | `sale_price_effective_date` | `variant.prices[0].discounted.validFrom` and `variant.prices[0].discounted.validUntil` | Optional | Format as ISO 8601 date range. For example: `2026-02-24T11:07+0100 / 2026-02-28T23:07+0100`. Maximum of 51 characters. If not specified, the sale price always applies. | | `cost_of_goods_sold` | `variant.attributes.cogs` | Optional | Internal cost tracking. Use `.` rather than `,` for decimal points. For example: `8.50 USD`. Requires a Variant-level Attribute of type [AttributeTextType](/urn?urn=ctp%3Aapi%3Atype%3AAttributeTextType). | ## Unit pricing If using `unit_pricing_measure` or `unit_pricing_base_measure`, you must create Variant-level Attributes for these fields. | Google Merchant Center field | Related commercetools field | Required | Mapping logic | | --- | --- | --- | --- | | `unit_pricing_measure` | `variant.attributes.unitMeasure` | Conditionally required | Required when mandated by local laws or regulations. Provide as a numerical value with unit. For example: `1.5kg`, `100ml`. | | `unit_pricing_base_measure` | `variant.attributes.baseMeasure` | Conditionally required | Required when mandated by local laws or regulations. The base unit for price calculation. For example: `100g`, `1l`. | ## Availability fields Availability values are derived from [Inventory Entries](/urn?urn=ctp%3Aapi%3Atype%3AInventoryEntry) in commercetools. The component uses supply Channel-scoped data when configured. | Google Merchant Center field | Related commercetools field | Required | Mapping logic | | --- | --- | --- | --- | | `availability` | `variant.availability.isOnStock` | Required | Map boolean to Google enum. `true` maps to `in_stock`, `false` maps to `out_of_stock`. Use `preorder` or `backorder` based on custom Attribute values where applicable. | | `availability_date` | `variant.attributes.availabilityDate` | Conditionally required | Required if availability is `preorder`. Provide as an ISO 8601 date string. Maximum of 1 year ahead. Maximum of 25 characters. For example: `2026-12-25T13:00-0800`. | | `expiration_date` | `variant.attributes.expirationDate` | Optional | Provide as an ISO 8601 date string. For example: `2026-07-11T11:07+0100`. Requires a Variant-level Attribute. | ## Tax Tax is not provided at the product level in the Google Merchant Center feed. For the US and Canada, tax rates are configured in the Google Merchant Center account settings. Google automatically calculates tax based on the buyer's location. Don't include taxes in the `price` field. For all other countries, include applicable taxes in the `price` field. Tax is configured at the Merchant Center account level. Tax configuration in Google Merchant Center is separate from [TaxCategory](/urn?urn=ctp%3Aapi%3Atype%3ATaxCategory) configuration in commercetools. Google calculates tax based on the buyer's location for US and Canada. ## Related pages - [Area overview page with navigation](/agentic-commerce.md)