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. |
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 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 configuration in commercetools. Google calculates tax based on the buyer's location for US and Canada.