WooCommerce promotions in Google Merchant Center: setup and mapping guide
WooCommerce promotions in Google Merchant Center require more than creating a coupon in WordPress. The promotion must offer a genuine additional benefit, work for every eligible customer, match the correct products and remain redeemable under the conditions submitted to Google.
A WooCommerce coupon is a store-side discount rule.

A Google Merchant promotion is a separate Merchant Center resource that may display as a special offer with eligible Shopping ads or free listings.
The two systems can work together, but they do not become connected merely because they use the same discount percentage or promotional wording.
A reliable implementation must coordinate:
- The WooCommerce coupon
- Eligible products and variations
- The Merchant promotion
- The promotion ID
- Product-level promotion mapping
- Target country
- Content language
- Promotion dates
- Redemption conditions
- Cart and checkout behaviour
- Merchant Center review results
WooCommerce should remain the authoritative source for the commercial offer. Merchant Center should receive an accurate representation of that offer, and Google independently reviews whether the promotion can be displayed.
A successful WooCommerce coupon does not guarantee Merchant promotion approval.
A technically accepted Merchant API operation does not prove that the discount works at checkout.
Both sides must be verified.
The short answer
To manage WooCommerce Google Merchant Center promotions reliably:
- Confirm that Promotions is available for the intended country.
- Activate the Promotions programme in Merchant Center.
- Define the actual WooCommerce discount.
- Decide whether the promotion applies to all products or specific products.
- Create a stable and unique promotion ID.
- Keep the promotion ID separate from the customer’s coupon code.
- Create the Merchant promotion through a supported method.
- Map the promotion ID to every eligible product or variation when required.
- Keep price, currency, country and language settings consistent.
- Test the coupon as a logged-out customer.
- Confirm the discount at cart or checkout.
- Verify minimum purchase and quantity conditions.
- Confirm excluded products cannot redeem the promotion.
- Submit the promotion early enough for review.
- Check its processed status in Merchant Center.
- Recheck product mapping after scheduled synchronisation.
- Remove or update expired mappings.
- Never assume that submission guarantees approval, display or performance.
The promotion should be planned as a complete checkout experience rather than a label attached to an advertisement.
What is a Google Merchant promotion?
A Google Merchant promotion is structured information describing a special offer that customers can redeem when purchasing an eligible product.
Google states that approved promotions may appear as a special-offer link across applicable Google surfaces. The customer can then view the promotion title and redemption code.

Supported examples can include:
- A percentage discount
- A fixed monetary discount
- Free or discounted shipping
- Buy a specified quantity and receive a discount
- A qualifying free gift
- A gift card for a future purchase from the same merchant
- An eligible subscription-related incentive
- A promotion limited to new customers
- A promotion requiring a defined minimum purchase
Every offer remains subject to the current Google Merchant Center promotions policies and editorial requirements.
A promotion must provide real additional value.
It should not simply restate:
- The normal product price
- A permanent store service
- An existing product feature
- Standard free shipping already available to everyone
- A regular bundle configuration
- An ordinary payment option
- A vague marketing claim
- A discount that cannot be obtained at checkout
The submitted promotion must match the actual WooCommerce purchasing process.
WooCommerce coupons and Merchant promotions are different
A WooCommerce coupon controls what happens inside the store.
It can define:
- Percentage or fixed discount
- Coupon code
- Minimum spend
- Maximum spend
- Product inclusion
- Product exclusion
- Category inclusion
- Category exclusion
- Individual-use restrictions
- Sale-item exclusions
- Usage limits
- Customer-specific restrictions
- Expiry date
- Free shipping eligibility
A Merchant promotion describes the offer to Google and links it with eligible product data.
| Component | Purpose | Typical customer visibility |
|---|---|---|
| WooCommerce coupon | Calculates the store discount | Visible in the cart or checkout |
| Promotion ID | Identifies and maps the Merchant promotion | Normally not shown as the redemption code |
| Redemption code | Code entered by the customer | Shown when applicable |
Product promotionIds[] |
Connects eligible products with promotions | Not a customer-facing product attribute |
| Promotion title | Explains the offer | May appear in promotion details |
| Sale price | Represents a directly reduced product price | Shown on the landing page and product listing |
One promotion can therefore have two different identifiers:
Merchant promotion ID: SUMMER_2026_15
Customer coupon code: SAVE15
The promotion ID is used for data management and product mapping.

The coupon code is used by the customer to redeem the offer.
They may be identical, but they do not have to be.
Using separate values can make internal management clearer, provided both values are recorded accurately.
Promotions are not sale prices
A WooCommerce sale price changes the product’s displayed selling price.
For example:
Regular price: 100 GBP
Sale price: 80 GBP
The customer sees 80 GBP on the product page before entering a code.
A promotion generally provides an additional incentive that is confirmed at cart or checkout:
Landing-page price: 100 GBP
Coupon discount: 20 GBP
Checkout total: 80 GBP
Google’s current policies state that the product-data price must match the landing-page price and that the promotional benefit should be confirmed at the point of purchase. Google also states that sale prices should not be submitted as promotions. See the official sale price annotation guidance and promotions policies.
Submitting the same discount as both a sale price and an additional promotion can mislead customers.
For example, avoid this configuration:

Product data price: 100 GBP
Landing-page sale price: 80 GBP
Promotion title: 20 GBP off
Checkout total: 80 GBP
A customer may reasonably expect the additional 20 GBP discount to apply to the displayed 80 GBP price.
Choose the correct mechanism:
- Use
sale_pricewhen the reduced price is displayed directly on the product page. - Use a promotion when the additional benefit is applied according to promotion conditions at cart or checkout.
- Do not describe one discount as two separate benefits.
Where Google promotions are available
Google does not provide the Promotions programme in every country.
The current promotions data specification lists availability for customers in:
- Australia
- Brazil
- Canada
- France
- Germany
- India
- Italy
- Japan
- South Korea
- Spain
- The Netherlands
- The United Kingdom
- The United States
This list can change.
The merchant should check Google’s current documentation and the options shown in the intended Merchant Center account before designing an implementation.
A store’s business location alone does not determine eligibility.
The promotion also needs a supported:
- Target country
- Content language
- Product-data configuration
- Redemption channel
- Merchant Center programme configuration
Türkiye is not included in Google’s current published list.
A Turkish business targeting a supported country should not assume that account access alone proves eligibility. The store must genuinely support that market, including its language, currency, shipping, returns, payment methods and checkout.

Four primary ways to create promotions
Google currently describes four main creation methods:
- The Merchant Center promotion builder
- A promotions data source
- Merchant API
- A supported third-party partner
Google also describes automated promotions, but the current documentation identifies this as a closed beta that is not available to every website. It should not be treated as a universal setup method. See Google’s Promotions setup guidance.
Merchant Center promotion builder
The promotion builder can be appropriate for a small number of manually managed offers.
It allows an administrator to define the promotion through the Merchant Center interface.
This method can be useful when:
- Promotions are infrequent
- The catalogue is small
- A staff member reviews every promotion
- API automation is unnecessary
- Product filters provide adequate targeting
Manual creation does not remove the need for WooCommerce testing.
The coupon must still work under the submitted conditions.
Promotions data source
A promotions data source is separate from the main product data source.

Google currently supports applicable promotions sources using:
- XML
- Tab-delimited files
- Google Sheets
The promotions source should be added to the same Merchant Center account used for the related online products.
It defines the promotion itself.
The product source continues to define the products.
The matching promotion ID can connect the two when the promotion applies to specific offers.
A promotions source should not be confused with:
- A primary product source
- A supplemental product source
- Local inventory
- Product reviews
- Merchant reviews
- Automatic website product discovery
Each source has a different purpose.
Merchant API promotions
Merchant API includes a Promotions sub-API for creating and retrieving promotions.
Google’s current Promotions sub-API overview describes operations that can:
- Insert a promotion
- Retrieve a processed promotion
- List promotions
- Review promotion status
- Review item-level issues
The promotion is still reviewed by Google.

An API response does not bypass programme policies or editorial requirements.
The operation also needs the correct Merchant Center account and promotions data source.
According to Google’s current API documentation, required promotion information includes fields such as:
promotionIdcontentLanguagetargetCountryredemptionChannellongTitlepromotionEffectiveTimePeriodpromotionDestinationscouponValueTypeofferTypeproductApplicabilitypromotionUrl
Conditional fields depend on the type of offer.
For example:
- A fixed monetary discount requires the applicable money-off amount.
- A percentage discount requires the applicable percentage.
- A free gift requires gift information.
- A generic coupon requires a generic redemption code.
- Buy-one-get-one-style offers require applicable purchase and discount quantities.
- Free shipping promotions have additional redemption requirements.
An integration should build the request from the actual WooCommerce offer rather than selecting fields merely because they are available.
Supported third-party partners
Google documents a process for connecting promotions from supported WooCommerce or Shopify partner systems.
This does not mean that every WooCommerce plugin automatically supplies Merchant promotions.
The merchant must confirm:
- Which extension provides the integration
- Which coupon types are supported
- Which countries are supported
- Whether product mapping is automatic
- Whether variations are handled
- Whether old promotions are removed
- Whether status and rejection details can be reviewed
- Which data source owns the promotion
Do not assume that installing any WooCommerce Google Merchant Center plugin enables promotion synchronisation.
Product synchronisation and promotion synchronisation are separate capabilities.
Required promotion information
Google’s promotions data specification defines the submitted promotion fields.
Important requirements include:
| Field | Purpose | Important rule |
|---|---|---|
promotion_id |
Unique promotion identifier | Maximum 50 characters, case-sensitive |
product_applicability |
All products or specific products | Use accurate eligibility |
offer_type |
Code or no-code redemption | Generic codes require the redemption code |
long_title |
Complete promotion title | Maximum 60 characters |
promotion_effective_dates |
Period when the offer can be tested and redeemed | Must match the store |
promotion_display_dates |
Optional display period | Must fit within the effective period |
redemption_channel |
Online or in-store | Must match the actual process |
promotion_destination |
Applicable marketing method | Must reflect intended use |
coupon_value_type |
Type of benefit | Requires corresponding benefit fields |
minimum_purchase_amount |
Required cart value when applicable | Currency and amount must be accurate |
minimum_purchase_quantity |
Required product quantity when applicable | Must work at checkout |
generic_redemption_code |
Customer coupon code | Required for generic-code promotions |
Some fields are always required, while others become required according to the selected promotion type.
A technically complete request can still be rejected if its offer is inaccurate or unusable.
Creating a stable promotion ID
A promotion ID should be:
- Unique
- Stable
- Recognisable
- Case-consistent
- Free from spaces
- Within the supported length
- Suitable for product mapping
- Unrelated to private credentials
Example:
SUMMER_2026_15
Avoid:
15% OFF!
because it contains spaces and symbols.
Also avoid:
promo
discount
summer
test
new
These values are too generic for long-term administration.
A useful internal format may include:
Market + period + benefit
For example:
GB_SUMMER_2026_15PCT
US_FREESHIP_AUG2026
DE_NEWCUSTOMER_10EUR
This is an internal convention rather than a Google requirement.
Do not include:
- API keys
- Access tokens
- Licence keys
- Customer email addresses
- Order numbers
- User identifiers
- Private supplier information
The promotion ID describes a promotion, not a customer or transaction.
Promotion IDs in product data
Merchant API product attributes currently include:
promotionIds[]
Google’s ProductAttributes reference describes this as the list of unique promotion IDs associated with the product.
Google’s product-data specification currently allows up to ten promotion IDs for one product.
A simplified product fragment could look like:
{
"title": "Example waterproof jacket",
"price": {
"amountMicros": "100000000",
"currencyCode": "GBP"
},
"promotionIds": [
"GB_SUMMER_2026_15PCT"
]
}
This is only a simplified attribute fragment.
The complete product operation also needs:
- Merchant account
- Product data source
- Offer ID
- Content language
- Feed label
- Product attributes
- Applicable destination settings
Adding a promotion ID to a product does not create the promotion itself.
The corresponding promotion must also exist in the intended Merchant Center account and use the matching ID.
Exact promotion ID matching
The promotion ID in product data must match the promotion resource.
For example:
Promotion resource:
promotionId = GB_SUMMER_2026_15PCT
Product:
promotionIds[] = GB_SUMMER_2026_15PCT
The following values should not be treated as equivalent:
GB_SUMMER_2026_15PCT
gb_summer_2026_15pct
GB-SUMMER-2026-15PCT
GB_SUMMER_2026_15PCT_
Promotion IDs are case-sensitive.
One character difference can prevent the mapping.
The value should be selected from a controlled source rather than entered independently in several interfaces.
All products or specific products
Every promotion needs an accurate applicability setting.
For a store-wide promotion:
product_applicability = all_products
For a limited promotion:
product_applicability = specific_products
When a promotion applies to specific products, Google supports methods such as:
- Product ID filters
- Product type filters
- Brand filters
- Item group ID filters
- Promotion ID mapping in product data
Google’s product selection guidance states that merchants should avoid creating excessive duplicate promotions and can map one promotion to multiple eligible offers.
If both promotion-source filters and product-level promotion IDs are used, the effective products must satisfy both forms of targeting.
This intersection can unintentionally remove products.
For example:
Promotion filter:
brand = Example Brand
Product promotion ID:
GB_SUMMER_2026_15PCT
A product with the correct promotion ID but a different brand may not qualify.
Document which selection method is authoritative.
WooCommerce product eligibility
Before mapping a promotion, identify the WooCommerce rule that determines eligibility.
Possible sources include:
- Explicit product selection
- Explicit variation selection
- Category inclusion
- Category exclusion
- Coupon product restrictions
- Coupon category restrictions
- Sale-item exclusion
- Stock status
- Customer role
- Minimum cart value
- Minimum quantity
- Shipping method
- Shipping country
- First-order condition
- Subscription condition
Not every WooCommerce restriction has a direct Merchant promotion field.
A WooCommerce coupon can therefore be more restrictive than the submitted promotion appears.
If ordinary Google users cannot meet an undisclosed restriction, the promotion can produce a poor or misleading experience.
Review every condition before submission.
Variable products and promotions
WooCommerce variable products require offer-level mapping.
A parent product can have several variations with different:
- SKUs
- Prices
- Stock states
- Sale states
- Coupon eligibility
- Merchant offer IDs
- Target countries
- Landing-page selections
Suppose a jacket has these variations:
Black / Small: eligible
Black / Medium: eligible
Red / Small: excluded
Red / Medium: out of stock
Applying the promotion ID only to the parent product may not map the correct Merchant offers.
Each submitted variation should be reviewed individually.
Record:
- Parent product ID
- Variation ID
- SKU
- Merchant offer ID
- Promotion ID
- Coupon eligibility
- Final checkout result
Do not give an ineligible variation a promotion ID simply because another variation under the same parent qualifies.
Promotion dates and time zones
The Merchant promotion period must match the real WooCommerce coupon period.
Review:
- WooCommerce start time
- WooCommerce expiry time
- WordPress timezone
- Server timezone
- Target-country timezone
- Merchant promotion effective period
- Merchant promotion display period
- Scheduled synchronisation time
- Cache expiration
- CDN behaviour
The Merchant API uses RFC 3339 timestamps for applicable time fields.
A display period should not extend beyond the effective period.
The promotion must be testable while Google reviews it.
Do not create a promotion that begins at checkout several hours later than the submitted start time because of a timezone conversion error.
Google’s current policy FAQ states that a promotion can run for a maximum of six months, or 183 days. See the promotions policy FAQ.
Long-running permanent discounts should be reviewed to determine whether they represent normal pricing rather than a genuine promotion.
Promotion titles
The promotion title should describe the actual offer completely and accurately.
Suitable examples can include:
15% off waterproof jackets
10 GBP off orders over 100 GBP
Free travel mug with hiking backpack
Unsuitable examples include:
Great summer offer
Best deal
Special promotion
Massive savings
Limited campaign
Google’s current editorial requirements state that titles should include the specific value of the promotion and accurately describe its applicability.
The title should not:
- Use vague promotional language
- Hide a minimum purchase
- Hide a quantity requirement
- Misstate the discount
- Claim free shipping without the required mechanism
- Describe excluded products as eligible
- Include misleading urgency
- Use unsupported superlatives
- Promise a gift that is unavailable
- Conflict with the WooCommerce coupon
The title is a structured description of the offer, not an advertising slogan.
Coupon-code promotions
A generic coupon-code promotion needs a code that all eligible customers can use.
For example:
Promotion ID: GB_SUMMER_2026_15PCT
Offer type: generic_code
Redemption code: SAVE15
Test the code while:
- Logged out
- Using a new browser session
- Using an eligible delivery address
- Using an eligible currency
- Adding the minimum required quantity
- Meeting the minimum purchase amount
- Choosing an eligible variation
- Using a supported payment method
- Completing the normal checkout route
Do not test only as a WordPress administrator.
Administrators can have:
- Existing cookies
- Special user roles
- Previously applied coupons
- Cached cart state
- Different tax treatment
- Saved addresses
- Access unavailable to ordinary customers
A valid test should resemble the experience of a customer arriving from Google.
Free-shipping promotions
Google requires free or discounted shipping promotions to provide additional value.
The current specification requires a valid redemption code that the customer can apply manually for applicable shipping promotions.
If WooCommerce already provides free shipping for every qualifying order, describing that same service as a special promotion may not create added value.
Check:
- Normal shipping price
- Promotional shipping price
- Coupon requirement
- Shipping zone
- Shipping class
- Minimum order
- Product exclusions
- Remote-area surcharges
- Destination country
- Tax treatment
- Available checkout methods
A free-shipping coupon that works only in the store’s home country should not be submitted for another target country.
Minimum purchase promotions
For an offer such as:
10 GBP off orders over 100 GBP
confirm whether WooCommerce calculates the threshold:
- Before tax
- After tax
- Before shipping
- After shipping
- Before other coupons
- After other coupons
- From eligible items only
- From the full basket
- Using regular prices
- Using sale prices
The Merchant promotion should reflect the actual rule.
A basket total of exactly 100 GBP also needs defined behaviour.
Avoid an inconsistency where the promotion says “orders over 100 GBP” but WooCommerce requires 100.01 GBP or more.
Quantity-based promotions
Offers such as “buy two, get one free” require accurate quantity logic.
Confirm:
- Which product must be purchased
- Whether variations can be mixed
- Whether the free item is identical
- Whether the cheapest item is discounted
- Whether the quantity applies per SKU
- Whether the rule applies across a category
- Whether stock is available
- Whether the gift is added automatically
- Whether the customer must add all items manually
- Whether a coupon code is required
The promotion title must explain the condition sufficiently.
Do not submit a general “buy two, get one free” message if only one narrow product combination works.
Free-gift promotions
A free gift must be real, available and clearly described.
Review:
- Gift name
- Gift value where applicable
- Gift stock
- Eligible purchases
- Gift variation
- Automatic or manual addition
- Coupon requirements
- Cart confirmation
- Checkout confirmation
- End date
- Target country
- Shipping cost
Google’s policies require receipt of the promotion to be confirmed in the cart or checkout.
A banner on the product page alone is not enough.
If the gift becomes unavailable, update or stop the promotion rather than silently replacing it with an unrelated item.
Market, language and currency consistency
A promotion is tied to a target country and content language.
These values must be consistent with the promotions data source.
The product and store should also support the intended market.
Verify:
- Promotion target country
- Promotion content language
- Product content language
- Product feed label
- Landing-page language
- Cart language
- Checkout language
- Policy-page language
- Product currency
- Landing-page currency
- Cart currency
- Checkout currency
- Coupon currency
- Shipping country
- Return availability
A promotion written in English should not direct the customer to an untranslated checkout that prevents them from understanding its conditions.
A GBP discount should not be submitted for a checkout that switches unexpectedly to EUR.
Merchant API troubleshooting guidance also states that promotion language and target country must match the selected promotions data source.
Promotion status in Merchant API
Google processes promotion information asynchronously.
Current Merchant API promotion states include:
IN_REVIEWREJECTEDLIVESTOPPEDEXPIREDPENDINGSTATE_UNSPECIFIED
These states have different meanings.
IN_REVIEW does not mean approved.
PENDING can indicate that applicable reviews have passed but the active date is still in the future.
LIVE means the promotion is approved and active for the applicable context.
REJECTED requires issue review and correction.
EXPIRED means the promotion is no longer active.
STOPPED indicates that it has been stopped.
A WooCommerce integration should not translate every non-live state into the same generic error.
Where supported, record:
- Promotion ID
- Data source
- Submission time
- Processed state
- Reporting context
- Item-level issue
- Resolution type
- Last verification time
Common reasons promotions are rejected
A promotion may be rejected because:
- The coupon does not work
- The promotion ID is not mapped
- Mapped products are ineligible
- The title is vague
- The title hides important conditions
- The promotion duplicates a sale price
- The discount is already shown on the landing page
- The target country is unsupported
- The content language is unsupported
- Country and language do not match the data source
- The effective dates are invalid
- The display dates exceed the effective dates
- The promotion has expired
- The redemption code is missing
- Free shipping provides no additional value
- A required benefit field is missing
- The minimum purchase amount is inaccurate
- The coupon applies only to restricted customers
- The eligible product is unavailable
- Checkout cannot be completed
- A variation is mapped incorrectly
- Another data source restores an obsolete mapping
- The account has reached a promotions quota
The first correction should target the reported issue.
Repeatedly resubmitting unchanged information does not correct an invalid promotion.
Missing product mapping
A specific-product promotion can be rejected when no eligible products carry the matching promotion ID.
Review:
- The promotion’s exact
promotionId - Product-level
promotionIds[] - Capitalisation
- Spaces or hidden characters
- Product data source
- Offer ID
- Content language
- Feed label
- Target country
- Processed product attributes
- Product filters
- Variation-level mapping
Google states that after correcting product mapping, the promotion can be resubmitted through Merchant Center.
Verify processed data before resubmitting.
Multiple promotions for one product
Google’s current product-data specification allows up to ten promotion IDs for one product.
Technical capacity does not mean every product should receive ten simultaneous promotions.
Confirm that the promotions:
- Can be combined when shown together
- Do not contradict one another
- Do not exceed WooCommerce coupon restrictions
- Use accurate dates
- Remain understandable
- Do not create an impossible discount
- Do not map an excluded product
- Do not exceed account quotas unnecessarily
If WooCommerce marks coupons as individual-use only, two displayed promotions may not be redeemable together.
The customer experience should make compatibility clear.
Promotion quotas
Google applies promotion quota limits.
These can include:
- A limit on promotions submitted within a period
- A limit on promotions active at the same time
The current promotion quota guidance advises merchants to avoid creating duplicate promotions for individual offers and to map one appropriate promotion to multiple products where possible.
Do not create a new promotion for every WooCommerce product when the same offer applies to an eligible group.
For more than 1,000 related offers, Google recommends using product-level promotion ID mapping instead of an item-ID filter with more than 1,000 inclusions.
Quota management should include:
- Active promotion count
- Daily submission volume
- Expired promotions
- Duplicate IDs
- Duplicate offer definitions
- Promotion refresh logic
- Failed batch retries
- Scheduled update frequency
An integration should avoid resubmitting every promotion unnecessarily during each product synchronisation.
Multiple data sources and conflicting ownership
Promotion information can be affected by:
- Merchant Center promotion builder entries
- Merchant API promotions
- XML promotion sources
- Tab-delimited promotion sources
- Google Sheets
- Supported third-party partners
- Previous WooCommerce integrations
- Product API sources
- Supplemental product sources
- Merchant Center product rules
- Manual product edits
- ERP integrations
Record for each source:
- Source name
- Source ID
- Source type
- Target country
- Content language
- Promotion fields supplied
- Product fields supplied
- Update schedule
- Owning integration
- Last successful operation
Do not create a second promotion merely because the first one appears incorrect.
First determine which source owns the processed promotion.
Disabling an old WooCommerce plugin may not remove the promotions or product mappings it previously created.
PW Merchant API and promotions
PW Merchant API provides an API-oriented product-management workflow between WooCommerce and Google Merchant Center.
Its core purpose is to help manage supported WooCommerce product information and Merchant product operations.
Merchant API exposes the promotionIds[] product attribute, but that does not mean every installed PW Merchant API version automatically supports promotion mapping or creates Merchant promotions.
Where the installed version explicitly supports promotion ID mapping, it may help:
- Read the configured WooCommerce source value
- Attach supported promotion IDs to eligible product inputs
- Maintain variation-level product identity
- Update mapped products
- Record operation results
- Re-submit applicable product changes
- Review supported processing information
Creating the promotion itself remains a separate Merchant Center or Promotions sub-API operation unless that feature is explicitly present in the installed version.
PW Merchant API should not be described as performing an unsupported promotions function.
It cannot:
- Invent a commercial promotion
- Create a valid coupon without store configuration
- Guarantee promotion approval
- Guarantee a special-offer annotation
- Guarantee clicks, conversions or sales
- Make an unsupported country eligible
- Correct an unusable checkout automatically
- Decide which products are commercially eligible
- Guarantee compatibility between multiple coupons
- Override Google’s policies
- Prevent every external source from changing promotion data
WooCommerce remains the source of the actual discount. PW Merchant API can manage supported product communication, and Google Merchant Center independently processes the submitted data.
Recommended WooCommerce workflow
A controlled implementation can use this sequence:
- Confirm the intended target country is supported.
- Confirm the promotion language is supported.
- Activate Promotions in Merchant Center.
- Identify the intended Merchant account.
- Identify the promotions data source.
- Identify the product data source.
- Define the actual customer benefit.
- Decide whether it is a sale price or a promotion.
- Create the WooCommerce coupon.
- Define eligibility and exclusions.
- Define start and expiry dates.
- Define minimum purchase requirements.
- Define quantity requirements.
- Create the Merchant promotion ID.
- Record the customer redemption code separately.
- Create the Merchant promotion.
- Map specific eligible products when required.
- Map individual variations correctly.
- Save and synchronise affected products.
- Record operation results.
- Test the promotion while logged out.
- Confirm the discount in the cart.
- Confirm the discount at checkout.
- Test an ineligible product.
- Test an excluded variation.
- Check the processed promotion.
- Check product-level promotion IDs.
- Review promotion status and issues.
- Allow applicable review and processing time.
- Recheck after the next scheduled synchronisation.
- Stop or update the promotion when the WooCommerce offer ends.
- Remove obsolete product mappings where required.
This process verifies both technical submission and customer redemption.
Example promotion implementation
Consider this WooCommerce offer:
Offer: 15% off waterproof jackets
Target country: United Kingdom
Language: English
Coupon code: SAVE15
Start: 1 August 2026
End: 15 August 2026
Eligible products: Selected waterproof jackets
Excluded products: Sale items
Redemption: Online
The Merchant promotion plan may be:
promotionId: GB_AUG2026_JACKET15
contentLanguage: en
targetCountry: GB
redemptionChannel: ONLINE
productApplicability: SPECIFIC_PRODUCTS
offerType: GENERIC_CODE
genericRedemptionCode: SAVE15
couponValueType: PERCENT_OFF
percentOff: 15
longTitle: 15% off selected waterproof jackets
Eligible Merchant products would receive:
{
"promotionIds": [
"GB_AUG2026_JACKET15"
]
}
The merchant should then confirm:
- Every mapped product is a waterproof jacket
- No excluded sale item carries the ID
- Every mapped variation accepts
SAVE15 - The landing-page price matches product data
- The 15% discount is applied at checkout
- The target country is the United Kingdom
- Checkout remains in GBP
- The promotion dates match WooCommerce
- The Merchant promotion is processed
- The intended marketing-method status becomes eligible
This example is an implementation pattern rather than a universal promotion recommendation.
Frequently asked questions
Is a WooCommerce coupon automatically a Google Merchant promotion?
No. A WooCommerce coupon is a store-side rule. The promotion must also be created through a supported Merchant Center method and mapped to eligible products when required.
Is a promotion the same as a sale price?
No. A sale price is shown directly as the product’s reduced price. A promotion generally provides an additional benefit that is confirmed in the cart or at checkout.
Can I submit a WooCommerce sale as a promotion?
Google states that sale prices should not be submitted as promotions. Use the product sale-price attributes when the reduced price is already displayed on the landing page.
What is a Merchant promotion ID?
It is the unique, case-sensitive identifier used to manage the promotion and connect it with specific products.
Is the promotion ID the same as the coupon code?
Not necessarily. The promotion ID is used for data mapping. The coupon code is entered by the customer. They can be different values.
How many promotion IDs can one product have?
Google’s current product-data specification permits up to ten promotion IDs for one product.
Can I apply one promotion to all products?
Yes, when the offer genuinely applies to all eligible products and product_applicability is configured accordingly.
How do I target specific WooCommerce products?
Use supported promotion filters or map the matching promotion ID to each eligible product input. Variation-level Merchant offers should be checked separately.
Can I target products by category?
Merchant promotion filters support applicable attributes such as product type, brand, item ID and item group ID. WooCommerce category rules must be translated into an accurate supported mapping.
Can one promotion apply to multiple products?
Yes. Google recommends avoiding unnecessary duplicate promotions and mapping one promotion to multiple eligible offers where appropriate.
Are promotions available in Türkiye?
Türkiye is not included in Google’s current published Promotions country list. Always verify the latest official availability before implementation.
Does Merchant API support promotions?
Yes. Merchant API provides a Promotions sub-API and exposes product-level promotionIds[]. Availability and supported promotion conditions remain subject to Google’s current requirements.
Does PW Merchant API automatically create promotions?
Do not assume so. Only features explicitly supported by the installed version should be described. Product synchronisation does not automatically mean promotion creation is included.
Can a promotion use free shipping?
Yes, when it meets Google’s requirements and provides additional value. Google currently requires applicable free or discounted shipping promotions to use a valid redemption code.
Why was my promotion rejected for missing product mapping?
The promotion ID may not be attached to any eligible processed product, or the ID, country, language, data source or product filters may not match.
Why does the coupon work for me but not for Google?
You may be testing as a logged-in administrator, using saved cookies, a special role, a different address or an already qualified cart. Test again as a logged-out customer.
Can a promotion require a minimum purchase?
Yes. The submitted requirement must match how WooCommerce calculates and enforces the threshold.
Can I exclude sale items?
WooCommerce can exclude sale items from a coupon. Every product mapped to the Merchant promotion must respect the same restriction.
Can several promotions apply to one product?
Technically, multiple IDs can be supplied. The actual WooCommerce offers must still be compatible and redeemable under their stated conditions.
How long can a promotion run?
Google’s current policy FAQ states that the maximum duration is six months, or 183 days.
Does IN_REVIEW mean the promotion is approved?
No. It means the promotion is still being reviewed.
What does PENDING mean?
It can indicate that applicable reviews have passed but the promotion’s active date is in the future.
Does LIVE guarantee that every customer will see the promotion?
No. It does not guarantee display for every search, product, country or customer.
Can Google automatically find promotions on my WooCommerce site?
Google describes an automated promotions source, but its current documentation identifies the feature as a closed beta. It is not universally available.
Does an accepted API request guarantee approval?
No. Technical acceptance and promotion approval are separate stages.
Can promotions guarantee better sales?
No. They can make an eligible offer visible, but Google does not guarantee impressions, clicks, conversions or revenue.
Final promotions checklist
Before submitting a WooCommerce promotion, confirm that:
- The intended Merchant Center account was selected.
- Promotions was activated in the account.
- The target country was supported.
- The content language was supported.
- The store genuinely delivered to the target country.
- The product data source was identified.
- The promotions data source was identified.
- Existing promotions were reviewed.
- Existing third-party integrations were reviewed.
- Existing XML sources were reviewed.
- Existing API sources were reviewed.
- Existing product rules were reviewed.
- The offer provided genuine additional value.
- The discount was not merely the normal product price.
- A sale price was not duplicated as a promotion.
- The WooCommerce coupon existed.
- The WooCommerce coupon was active.
- The coupon start date was accurate.
- The coupon expiry date was accurate.
- WordPress timezone was checked.
- Server timezone was checked.
- Merchant timestamps were checked.
- The promotion duration remained within the supported limit.
- The promotion ID was unique.
- The promotion ID used no spaces.
- The promotion ID remained within 50 characters.
- Promotion ID capitalisation was consistent.
- The promotion ID contained no private information.
- The redemption code was recorded separately.
- The offer type was correct.
- The product applicability was correct.
- All-products promotions genuinely covered all products.
- Specific-product promotions had a documented selection method.
- Product filters were reviewed.
- Product ID inclusions were reviewed.
- Product ID exclusions were reviewed.
- Brand filters were reviewed.
- Product type filters were reviewed.
- Item group ID filters were reviewed.
- Product-level promotion IDs were supplied where required.
- No product exceeded the supported promotion-ID limit.
- Exact promotion ID matching was confirmed.
- Mapped products were eligible.
- Excluded products had no obsolete mapping.
- Parent-product eligibility was reviewed.
- Variation-level eligibility was reviewed.
- Every mapped variation accepted the coupon.
- Merchant offer IDs were recorded.
- Product content languages were recorded.
- Feed labels were recorded.
- Promotion target country matched the promotions source.
- Promotion language matched the promotions source.
- Product currency matched the landing page.
- Landing-page currency matched the cart.
- Cart currency matched checkout.
- The title stated the actual benefit.
- The title stated important conditions.
- The title avoided vague marketing language.
- The title remained within the supported length.
- The percentage discount was accurate.
- The monetary discount was accurate.
- Minimum purchase requirements were accurate.
- Minimum quantity requirements were accurate.
- Free-gift details were accurate.
- Free-gift stock was available.
- Shipping promotions included the required code.
- Shipping promotions provided additional value.
- Coupon category restrictions were reviewed.
- Coupon product restrictions were reviewed.
- Coupon sale-item exclusions were reviewed.
- Coupon usage limits were reviewed.
- Customer restrictions were reviewed.
- Individual-use restrictions were reviewed.
- Multiple-promotion compatibility was reviewed.
- The coupon was tested while logged out.
- A clean browser session was used.
- An eligible delivery address was tested.
- An eligible payment method was tested.
- An eligible product was tested.
- An eligible variation was tested.
- An ineligible product was tested.
- An excluded variation was tested.
- Minimum spend was tested.
- Boundary values were tested.
- Required quantities were tested.
- The discount appeared in the cart.
- The discount appeared at checkout.
- The final price was accurate.
- Taxes remained accurate.
- Shipping charges remained accurate.
- Checkout could be completed.
- The promotion operation result was recorded.
- The processed promotion was retrieved.
- The processed product mapping was checked.
- Promotion status was reviewed.
- Reporting-context statuses were reviewed.
- Item-level issues were reviewed.
- Missing mapping errors were corrected before resubmission.
- Applicable review time was allowed.
- Submission quotas were considered.
- Active-promotion quotas were considered.
- Duplicate promotions were avoided.
- Scheduled synchronisation was reviewed.
- Old sources could not restore expired mappings.
- Expired promotions were stopped or updated.
- Obsolete product promotion IDs were removed where required.
- No approval, display or performance guarantee was assumed.
WooCommerce promotions and Google Merchant Center promotions are connected through accurate offer data, stable promotion IDs and a checkout experience that matches the submitted conditions.
The WooCommerce coupon determines whether the customer receives the promised benefit.
The Merchant promotion describes that benefit to Google.
Product-level promotionIds[] can connect specific Merchant offers with the corresponding promotion.
Each part must agree on eligibility, timing, country, language, currency and redemption conditions.
A WooCommerce Google Merchant Center plugin can support product communication only within its documented capabilities. It should not be assumed to create or manage promotions unless those features are explicitly included.
WooCommerce remains the authoritative source of the commercial offer. PW Merchant API can manage supported product operations, while Google Merchant Center independently reviews the promotion and determines its status.
Accurate product mapping, honest promotion titles, reliable coupons and fully tested checkout conditions provide the strongest foundation for displaying WooCommerce special offers through Google.
