PW FeedSmarter Feed Management for Google Merchant Plugins
BUY

WooCommerce loyalty programs in Google Merchant Center: member pricing and points

WooCommerce loyalty programs in Google Merchant Center: member pricing and points

WooCommerce loyalty programs in Google Merchant Center require more than adding a points extension or creating a customer role in WordPress.

The loyalty program must already exist as a genuine store programme. Its name, membership conditions, tiers and benefits must be clearly explained on the merchant’s website. The same programme must then be configured in Merchant Center before product-level benefits such as member prices, loyalty points or member shipping can be associated with individual offers.

PW Merchant reporting screen for monitoring catalogue quality and synchronization results

WooCommerce should remain the authoritative source for the commercial membership rules.

Merchant Center receives a structured representation of supported loyalty benefits.

Google independently reviews the programme and determines whether, where and how those benefits may appear.

These responsibilities must remain separate.

A WooCommerce extension can calculate points, assign customer roles or apply member prices inside the store. That does not automatically create a Merchant Center loyalty programme.

Likewise, successfully submitting a loyaltyPrograms[] value through Merchant API does not prove that the corresponding price, points or shipping benefit is available to the customer.

The complete implementation must coordinate:

  • The WooCommerce loyalty programme
  • Membership eligibility
  • Programme tiers
  • Member prices
  • Loyalty points
  • Member shipping
  • Merchant Center programme settings
  • Programme and tier labels
  • Product and variation eligibility
  • Landing-page information
  • Cart and checkout behaviour
  • Target country
  • Product currency
  • Effective dates
  • Merchant product processing
  • Google’s programme review

The submitted information must reflect the benefit that a real customer can receive.

The short answer

To connect a WooCommerce loyalty programme with Google Merchant Center reliably:

  1. Confirm that the loyalty programme feature is available in the intended country.
  2. Confirm that the store already operates a genuine loyalty programme.
  3. Publish a complete loyalty programme page on the verified store domain.
  4. Document the programme’s membership requirements.
  5. Document every membership tier.
  6. Document member prices, points and shipping benefits.
  7. Activate the Loyalty programs add-on in Merchant Center.
  8. Create the programme using details that match the website.
  9. Create stable programme and tier labels.
  10. Submit the programme for Google’s review.
  11. Wait until the programme is active before relying on product-level benefits.
  12. Decide which WooCommerce products and variations qualify.
  13. Store the authoritative benefit values in controlled WooCommerce fields.
  14. Map supported values to the Merchant API loyaltyPrograms[] attribute.
  15. Submit member prices inside the loyalty-program attribute, not as the normal price or sale price.
  16. Use the same currency as the product’s regular or sale price.
  17. Submit whole-number loyalty points where applicable.
  18. Add the exact loyalty shipping label to eligible offers when required.
  19. Test the benefits as an ordinary member.
  20. Check every eligible variation separately.
  21. Retrieve and inspect the processed Merchant product.
  22. Review loyalty-related issues in Merchant Center.
  23. Recheck benefits after scheduled synchronisation.
  24. Remove expired prices and obsolete mappings promptly.
  25. Never assume that submission guarantees approval, display, clicks or sales.

Product-level loyalty data should be treated as a structured description of an existing programme, not as a method for inventing a discount.

Product diagnostics summary showing approved and problematic catalogue items

What is a Merchant Center loyalty program?

Google describes Merchant Center loyalty as an add-on for merchants that already operate a loyalty programme and want to showcase supported benefits on Google.

Current supported benefits include:

  • Member pricing
  • Redeemable points
  • Member shipping or delivery

Depending on availability and eligibility, these benefits may appear with free listings, Shopping ads, local inventory ads and other Google shopping experiences.

Google expanded loyalty features in 2026 to 14 countries:

  • Australia
  • Brazil
  • Canada
  • France
  • Germany
  • India
  • Italy
  • Japan
  • Mexico
  • The Netherlands
  • South Korea
  • Spain
  • The United Kingdom
  • The United States

Japan uses separate point-programme rules for applicable implementations. Feature behaviour can also differ between countries and Google surfaces. Türkiye is not included in Google’s current published list.

Merchants should therefore confirm current country availability before configuring WooCommerce fields or developing an automated integration. See Google’s current merchant loyalty programme overview and 2026 loyalty programme update.

A business based in Türkiye should not assume that targeting a supported country automatically makes its programme eligible.

The store must genuinely serve the intended country with consistent:

  • Language
  • Currency
  • Shipping
  • Returns
  • Payment methods
  • Programme terms
  • Membership availability
  • Checkout access

Google’s current troubleshooting documentation also states that a loyalty programme supports one country per Merchant Center account. Merchants operating separate loyalty programmes in several countries may therefore need an appropriate account structure for each country.

WooCommerce loyalty and Merchant Center loyalty are different systems

WooCommerce does not include one universal loyalty-programme model.

A store may implement membership through:

PW Merchant product review screen highlighting missing WooCommerce data
  • A loyalty-points extension
  • A customer-role extension
  • A membership extension
  • A subscription extension
  • Custom product metadata
  • User metadata
  • Coupon rules
  • Custom pricing code
  • An external customer relationship platform
  • An enterprise resource planning system
  • A dedicated loyalty service

The store-side system decides what happens when a customer signs in or completes an order.

Merchant Center stores a structured representation of the programme and its supported product-level benefits.

Component Primary responsibility
WooCommerce loyalty system Determines actual customer eligibility and benefits
Programme page Explains membership requirements and benefits
Merchant Center loyalty programme Defines the Google-side programme and tiers
Programme label Connects product-level benefits with the configured programme
Tier label Connects a benefit with a specific membership tier
loyaltyPrograms[] Supplies offer-level price, points or shipping information
Landing page Displays or clearly explains the applicable member benefit
Cart and checkout Applies the promised price, points or shipping benefit
Google Reviews, processes and decides how eligible benefits appear

A WooCommerce user role called gold_customer does not automatically become a Merchant tier.

A points extension recording 500 points does not automatically submit those points to Merchant Center.

A customer-specific coupon is not automatically a member price.

Every value needs a defined mapping.

What counts as an eligible loyalty program?

Google currently supports structured programmes with benefits based on membership tiers.

Published programme types include:

  • Free-to-join programmes
  • Programmes based on previous spending
  • Paid membership programmes
  • Merchant-branded loyalty credit-card programmes

The programme must represent a continuing customer relationship.

Google’s current participation criteria state that simple newsletter registrations and SMS subscriptions are not considered loyalty programmes.

WooCommerce products prepared for submission through the Google Merchant API

The current rules also exclude occupation-based tiers such as:

  • Student pricing
  • Military discounts
  • First-responder discounts
  • Profession-specific discounts

Other discounts that should not be represented as Merchant loyalty pricing include:

  • A one-time new-customer discount
  • A one-time credit-card sign-up incentive
  • Subscribe-and-save pricing
  • App-only pricing
  • Local-only pricing

These offers may require a different Google mechanism or may not be supported for the intended use.

Review the current loyalty programme editorial and participation criteria before creating product mappings.

The loyalty programme page

Merchant Center requires a live programme URL on the verified store domain.

The page should explain:

  • Programme name
  • Who can join
  • Whether joining is free or paid
  • Registration process
  • Membership renewal rules
  • Programme tiers
  • Tier qualification requirements
  • Member pricing
  • Point earning
  • Point redemption
  • Point expiry
  • Member shipping
  • Country availability
  • Important exclusions
  • How to leave the programme
  • Applicable terms

The page should provide an easy-to-find membership call to action.

Avoid using:

  • A PDF instead of a landing page
  • An email address as the programme URL
  • A third-party domain unrelated to the Merchant account
  • A page that requires an existing member login before any terms can be read
  • A vague marketing page with no membership rules
  • A broken or redirected URL

Google’s current editorial rules require the programme name, tier names, joining conditions and benefits to match the website.

If WooCommerce calls a tier “Gold Member” but Merchant Center calls it “Premium”, the relationship may be unclear even if the internal labels are technically valid.

PW Merchant settings for scheduling automatic product synchronization

The customer-facing name and the internal label serve different purposes.

For example:

Customer-facing programme name: PW Rewards
Internal programme label: pw_rewards
Customer-facing tier name: Gold Member
Internal tier label: gold_member

The label connects data.

The name explains the programme to customers.

Programme and tier labels

The programme label identifies the configured loyalty programme.

The tier label identifies one membership level inside that programme.

Google’s current editorial guidance applies a 25-character limit to programme and tier labels. Spaces are not supported in programme labels; underscores can separate words.

Suitable internal labels include:

pw_rewards
standard
silver
gold
premium_member

Avoid labels such as:

PW Rewards
Gold Member

when spaces are not supported.

Google Merchant Center account connection screen in PW Merchant

Also avoid:

program
tier
test
new
default
discount

These labels are too generic for reliable long-term administration.

Labels must match exactly across:

  • Merchant Center loyalty settings
  • WooCommerce mapping fields
  • Merchant API product data
  • Applicable shipping settings
  • Supplemental sources
  • Internal documentation

Treat these as different values:

pw_rewards
PW_REWARDS
pw-rewards
pw_rewards_

An integration should not convert capitalisation or replace underscores silently.

The authoritative label should be selected from a controlled programme configuration rather than typed independently on each WooCommerce product.

Single-tier and multi-tier programmes

A single-tier programme offers one membership level.

Example:

Programme: PW Rewards
Tier: Member
Benefit: 5% member price and 10 points per purchase

For eligible single-tier implementations, Google permits programme and tier labels to be omitted from applicable product data.

Supplying explicit labels can still make source ownership easier to understand.

Product error details and recommended fixes in the PW Merchant interface

A multi-tier programme has several levels.

Example:

Standard: 5% member price
Silver: 10% member price and free shipping
Gold: 15% member price, free shipping and additional points

For multi-tier programmes, programme and tier labels are required in product-level loyalty information.

Each tier must correspond to a tier configured in Merchant Center.

Do not submit a WooCommerce tier that Merchant Center does not know.

Do not submit a Merchant Center tier that customers cannot actually obtain.

The number of tiers configured in Merchant Center should match the programme described on the website.

Merchant API loyalty attributes

Merchant API exposes the product-level field:

loyaltyPrograms[]

Each loyalty programme entry can include:

  • programLabel
  • tierLabel
  • price
  • cashbackForFutureUse
  • loyaltyPoints
  • memberPriceEffectiveDate
  • shippingLabel

Google’s current Merchant API reference states that:

  • programLabel connects the benefits with a configured programme.
  • tierLabel must match a tier in that programme.
  • price represents the instant member price.
  • loyaltyPoints represents the points earned from the purchase.
  • memberPriceEffectiveDate defines the applicable period.
  • shippingLabel identifies an offer eligible for a member-shipping policy.
  • cashbackForFutureUse represents cashback available for later purchases.

The authoritative field definitions are available in Google’s Merchant API ProductAttributes reference.

This product attribute describes offer-level benefits.

It does not create:

  • A WooCommerce user
  • A customer membership
  • A points balance
  • A customer role
  • A checkout discount
  • A shipping method
  • A Merchant Center loyalty programme

Those components must already exist in their appropriate systems.

Member pricing is not the regular product price

Suppose a WooCommerce product has:

Regular price: 100 USD
Public sale price: 90 USD
Gold member price: 80 USD

The product’s regular and public sale prices describe what ordinary customers pay.

The Gold member price is a loyalty benefit.

The member price belongs in the price subfield of the loyaltyPrograms[] entry.

It must not replace the product’s public price.

It must not be submitted as the public salePrice.

A simplified Merchant API product-attribute fragment could look like:

{
  "price": {
    "amountMicros": "100000000",
    "currencyCode": "USD"
  },
  "salePrice": {
    "amountMicros": "90000000",
    "currencyCode": "USD"
  },
  "loyaltyPrograms": [
    {
      "programLabel": "pw_rewards",
      "tierLabel": "gold",
      "price": {
        "amountMicros": "80000000",
        "currencyCode": "USD"
      }
    }
  ]
}

Merchant API represents prices in micros: one currency unit equals 1,000,000 micros. See Google’s current Merchant API Price reference.

This is only a simplified attribute fragment.

A complete product operation also needs the appropriate:

  • Merchant account
  • Data source
  • Offer ID
  • Feed label
  • Content language
  • Product attributes
  • Marketing-method configuration

Member-price requirements

Google’s current member-pricing guidance requires:

  • The member-price currency to match the product price and sale-price currency.
  • The member price to be equal to or lower than the regular price.
  • The programme and tier labels to match Merchant Center.
  • The submitted benefit to match the website.
  • A limited-time member price to include an effective period.
  • The member price to represent the lowest price the member can obtain.

If an applicable seasonal promotion can be combined with the usual member discount, Google instructs merchants to submit the final post-promotion member price.

For example:

Regular price: 100 USD
Evergreen member price: 90 USD
Additional member event discount: 10 USD
Final member price during event: 80 USD

During the event, the applicable submitted member price should reflect 80 USD when that is the genuine lowest available member price.

The value must also be obtainable on the website.

A member should not see 80 USD on Google and then receive only 90 USD after signing in.

Google’s current guidance states that member pricing is shown in ads when the discount is at least 5% or at least five units of the applicable currency compared with the regular or available sale price. This display threshold should not be misrepresented as an approval or performance guarantee. See Google’s member-pricing implementation guide.

Member-price effective dates

A temporary member price needs a defined effective period.

Merchant API uses memberPriceEffectiveDate for the period during which an offer qualifies for the submitted member price.

Review:

  • WooCommerce price start date
  • WooCommerce price end date
  • WordPress timezone
  • Server timezone
  • Merchant timestamp
  • Target-market timezone
  • Cache expiration
  • Scheduled synchronisation
  • Product-processing delay

If no effective period is supplied, Google may treat the member price as continuously available.

That is unsuitable for an offer intended to run only for one week.

Example concept:

Start: 2026-08-01T00:00:00+01:00
End: 2026-08-15T23:59:59+01:00

Use ISO 8601 dates and include an unambiguous timezone.

When the benefit ends:

  • Restore the correct evergreen member price, or
  • Remove the expired member-price entry

Do not rely only on the WooCommerce storefront hiding the old value.

A scheduled product synchronisation may continue submitting obsolete metadata if the source field is not updated.

Loyalty points

Loyalty points describe the number of points a member earns by purchasing a product.

The Merchant API loyaltyPrograms[] structure uses:

loyaltyPoints

The value must be a whole number.

Examples:

10
100
1250

Avoid:

10.5
5%
Approximately 100
10 points per dollar

The submitted value should represent the points earned for that specific offer under the intended tier.

If WooCommerce calculates points dynamically from the order total, tax, sale price or customer tier, determine which value can be represented accurately before submission.

Possible calculation sources include:

  • Fixed points per product
  • Points based on the current product price
  • Points based on the member price
  • Points based on quantity
  • Tier multiplier
  • Category multiplier
  • Seasonal multiplier
  • Sale-item exclusion
  • Coupon interaction
  • Tax-inclusive or tax-exclusive value

A product-level value becomes inaccurate if the number changes according to information unavailable at product level.

For example:

Standard member: 10 points
Gold member: 20 points

These values can be represented through separate tier entries.

However:

Points depend on the customer’s full basket and payment method

may not produce one reliable product-level value.

The merchant should not submit an estimated or maximum figure merely because it looks attractive.

The separate Japan loyalty-points field

Merchant API also contains an older product-level loyaltyPoints object outside the loyaltyPrograms[] list.

Google’s current product reference identifies that field as Japan-only.

Do not confuse:

ProductAttributes.loyaltyPoints

with:

ProductAttributes.loyaltyPrograms[].loyaltyPoints

They are not interchangeable.

A WooCommerce Google Merchant Center plugin should select fields according to the target country and current Google specification rather than submitting both automatically.

Member shipping

Member shipping can describe benefits such as:

  • Free shipping
  • Reduced shipping cost
  • Faster delivery
  • Free shipping above a minimum purchase
  • Tier-specific shipping service

The benefit must first be included in the configured Merchant Center loyalty programme.

A corresponding member-shipping policy must then be created.

The policy can apply to:

  • All products
  • Specific products

When it applies only to specific products, eligible offers need the exact loyalty shippingLabel inside their loyaltyPrograms[] entry.

For example:

{
  "loyaltyPrograms": [
    {
      "programLabel": "pw_rewards",
      "tierLabel": "gold",
      "shippingLabel": "gold_free_shipping"
    }
  ]
}

An ineligible product should not carry that label.

Google explicitly distinguishes the loyalty shipping label from the regular product shipping label. They can have different purposes even though both use the term “shipping label”.

Google’s current member-shipping instructions also explain that Customer Match is required for member-shipping benefits to appear to known members in Shopping ads.

The store must still apply the promised benefit at checkout.

Test:

  • Eligible product
  • Ineligible product
  • Eligible tier
  • Ineligible tier
  • Minimum order
  • Delivery country
  • Delivery region
  • Shipping class
  • Remote-area surcharge
  • Tax
  • Coupon combinations
  • Variable-product selection

Member pricing and promotions

Member pricing and Merchant promotions are separate mechanisms.

Member pricing represents a continuing benefit of programme membership.

A promotion represents a temporary or conditional special offer.

Examples:

Gold members always pay 90 USD

This is member pricing.

All customers receive 10 USD off this weekend

This is a promotion.

Gold members receive an additional 10 USD discount this weekend

This may affect the final member price if the offers can be combined.

Google’s current loyalty guidance states that an unconditional product promotion may be displayed instead of member pricing.

Merchants should not assume that both annotations will appear simultaneously.

The store’s commercial logic should define:

  • Whether the promotion and member benefit can be combined
  • Which discount is calculated first
  • The final member price
  • Whether the same products qualify
  • Whether sale items are excluded
  • When the temporary benefit expires

Do not submit one discount as:

  • A sale price
  • A loyalty price
  • A promotion

at the same time unless those genuinely represent three separately obtainable prices or benefits.

Variable WooCommerce products

Variable products require offer-level loyalty mapping.

A WooCommerce parent product can have variations with different:

  • Prices
  • Member prices
  • Point awards
  • Stock
  • Shipping classes
  • Merchant offer IDs
  • Programme eligibility
  • Tier eligibility
  • Effective dates

Consider:

Black / Small: Gold member price 80 USD
Black / Medium: Gold member price 85 USD
Red / Small: No member price
Red / Medium: Out of stock

Submitting one parent-level price of 80 USD for every variation would be inaccurate.

For each submitted variation, record:

  • Parent product ID
  • Variation ID
  • SKU
  • Merchant offer ID
  • Regular price
  • Sale price
  • Programme label
  • Tier label
  • Member price
  • Points
  • Shipping label
  • Effective period
  • Final checkout result

Parent inheritance should be used only when every applicable variation genuinely shares the same value.

An explicit variation-level exception must take priority over the parent default.

WooCommerce source design

A reliable integration should define where each value comes from.

Example:

Merchant loyalty value Authoritative WooCommerce source
Programme label Global loyalty configuration
Tier label Controlled tier configuration
Member price Product or variation member-price field
Loyalty points Product, variation or points-rule calculation
Effective period Member-price schedule
Shipping label Product eligibility rule
Programme eligibility Explicit product or category rule

Do not derive member prices from customer-facing text.

Do not copy ordinary WooCommerce tags into programme labels.

Do not treat the product category as a loyalty tier.

Do not extract prices from short descriptions.

Do not use customer roles as labels without a documented mapping.

The integration should define:

  • Source precedence
  • Missing-value behaviour
  • Parent inheritance
  • Variation overrides
  • Rounding rules
  • Currency conversion rules
  • Update triggers
  • Deletion behaviour
  • Expired-value behaviour

For example:

Variation member price
→ parent member price
→ no loyalty price submitted

This is safer than silently falling back to the public sale price.

Do not send customer information in product data

Product-level loyalty benefits do not require individual customer records.

Do not place any of the following in programLabel, tierLabel, shippingLabel or other product fields:

  • Customer names
  • Email addresses
  • Phone numbers
  • Postal addresses
  • Order numbers
  • User IDs
  • Customer-role IDs
  • Passwords
  • API keys
  • Access tokens
  • Licence keys
  • Points balances

Google also provides a separate Loyalty Customer Match service for managing customer–tier associations. As of July 2026, Google describes that service as being in active development and a pilot phase. It is a different, privacy-sensitive workflow with consent requirements and user identifiers.

It should not be treated as an automatic part of ordinary product synchronisation.

A WooCommerce product integration should not upload customer data merely because it supports product-level loyaltyPrograms[].

Common loyalty-programme errors

Loyalty benefits may fail or become ineligible because:

  • The programme is unavailable in the target country
  • The Loyalty programs add-on is inactive
  • The programme has not been approved
  • The programme URL is inaccessible
  • The programme name differs from the website
  • The number of tiers differs from the website
  • The programme label does not match
  • The tier label does not match
  • Labels contain unsupported spaces
  • An undefined tier is submitted
  • The loyalty country conflicts with shipping data
  • The member-price currency differs from the product currency
  • The member price exceeds the regular price
  • The member price is submitted as salePrice
  • An expired price remains active
  • A temporary price has no effective date
  • The website does not show or explain the benefit
  • The checkout does not apply the member price
  • Points contain a fractional value
  • Points differ from the store calculation
  • The wrong variation carries the benefit
  • An ineligible product carries the loyalty shipping label
  • The loyalty shipping policy is incomplete
  • Customer Match is absent for an applicable Ads experience
  • Another product source overwrites the value
  • Scheduled synchronisation restores obsolete data

The reported issue should guide the correction.

Repeatedly resubmitting unchanged information does not repair an incorrect label or unsupported benefit.

Loyalty programme not found

This issue can occur when a submitted programme label does not correspond to a programme configured in the Merchant Center account.

Check:

  1. Merchant account
  2. Programme status
  3. Programme label
  4. Capitalisation
  5. Underscores
  6. Hidden spaces
  7. Product data source
  8. Target country
  9. Processed product value

For example:

Merchant Center: pw_rewards
Product data: pw_reward

These values do not match.

Correct the authoritative source and resubmit the affected products.

Loyalty programme tier not found

This issue indicates that the submitted tier does not correspond to a configured tier.

For example:

Configured tiers:
standard
silver
gold

Submitted tier:
premium

Creating a WooCommerce role called premium does not create the Merchant Center tier.

Either configure the genuine tier correctly in Merchant Center or update the product mapping to use an existing tier.

Do not map an unrelated WooCommerce role to the closest available Merchant tier simply to remove the error.

Incorrect country for a loyalty programme

Google’s current troubleshooting guidance states that loyalty programmes support one country per Merchant Center account.

A shipping country that conflicts with the programme country can cause loyalty-related shipping issues.

Review:

  • Merchant Center programme country
  • Product feed label
  • Product target country
  • Product currency
  • Product shipping country
  • Member-shipping country
  • WooCommerce shipping zones
  • Checkout destination
  • Account structure

Do not change the country field merely to suppress the warning.

The store must genuinely support the selected market.

Multiple product data sources

Loyalty data can be affected by:

  • Merchant API product inputs
  • XML product sources
  • Supplemental data sources
  • Automatic website discovery
  • Local inventory
  • Regional inventory
  • Merchant Center rules
  • Manual edits
  • Previous WooCommerce plugins
  • ERP integrations
  • Scheduled file uploads

Record for every source:

  • Source name
  • Source ID
  • Source type
  • Fields supplied
  • Target country
  • Content language
  • Feed label
  • Update schedule
  • Owning integration
  • Last successful update

A correct member price can disappear when another source with higher precedence supplies an empty or older value.

A deleted programme mapping can reappear if an obsolete scheduled source remains active.

Before creating a second source, identify which source currently owns the processed value.

PW Merchant API and loyalty programmes

PW Merchant API provides an API-oriented workflow for communicating supported WooCommerce product data to Google Merchant Center.

Merchant API exposes the loyaltyPrograms[] product attribute.

That does not mean every installed PW Merchant API version automatically supports loyalty-programme mapping.

Only features explicitly available in the installed version should be described.

Where an installed version explicitly supports loyalty fields, it may help:

  • Read configured product or variation values
  • Maintain WooCommerce and Merchant offer identity
  • Add supported loyalty attributes to product inputs
  • Submit product updates
  • Process simple and variable products
  • Record operation results
  • Recheck applicable product information

PW Merchant API should not be described as automatically:

  • Creating a WooCommerce loyalty programme
  • Registering customers
  • Calculating customer points balances
  • Assigning membership tiers
  • Creating Merchant Center tiers
  • Approving a Google loyalty programme
  • Creating Customer Match audiences
  • Uploading customer information
  • Applying discounts at checkout
  • Guaranteeing benefit annotations
  • Guaranteeing clicks, conversions or sales

Product synchronisation and customer loyalty management are different responsibilities.

A WooCommerce Google Merchant Center plugin should not be assumed to support loyalty benefits merely because Merchant API exposes the fields.

WooCommerce remains the authoritative source for supported commercial product information. PW Merchant API can manage supported product communication, while Google independently processes the information and determines programme and offer eligibility.

Recommended implementation workflow

A controlled WooCommerce loyalty implementation can follow this sequence:

  1. Confirm that the country is supported.
  2. Confirm that the programme genuinely exists.
  3. Identify the authoritative WooCommerce loyalty system.
  4. Publish a complete programme page.
  5. Document joining requirements.
  6. Document every membership tier.
  7. Document every supported benefit.
  8. Confirm benefits work across required purchase locations.
  9. Activate Loyalty programs in Merchant Center.
  10. Enter the programme name and description.
  11. Enter the programme URL.
  12. Create the programme label.
  13. Create exact tier labels.
  14. Submit the programme for review.
  15. Confirm that the programme becomes active.
  16. Identify eligible WooCommerce products.
  17. Identify eligible variations.
  18. Define member-price source fields.
  19. Define point-calculation sources.
  20. Define member-shipping eligibility.
  21. Define effective dates.
  22. Define source precedence.
  23. Map programme and tier labels.
  24. Generate supported loyaltyPrograms[] entries.
  25. Submit a representative test group.
  26. Record operation results.
  27. Retrieve processed products.
  28. Check programme and tier labels.
  29. Test member prices while signed in.
  30. Test points calculation.
  31. Test member shipping.
  32. Test ineligible customers.
  33. Test ineligible products.
  34. Test excluded variations.
  35. Check Merchant Center issues.
  36. Correct the authoritative source.
  37. Expand updates in controlled batches.
  38. Recheck after scheduled synchronisation.
  39. Remove expired prices.
  40. Remove obsolete programme mappings.

This verifies the product data and the real customer experience.

Example implementation

Consider this programme:

Programme name: PW Rewards
Country: United States
Programme label: pw_rewards

Standard tier:
Tier label: standard
Member price: 95 USD
Points: 10

Gold tier:
Tier label: gold
Member price: 85 USD
Points: 25
Member shipping label: gold_free_shipping

The WooCommerce product has:

Regular price: 100 USD
Public sale price: none
Standard member price: 95 USD
Gold member price: 85 USD
Standard points: 10
Gold points: 25
Gold member shipping: eligible

A simplified Merchant API attribute fragment may be:

{
  "price": {
    "amountMicros": "100000000",
    "currencyCode": "USD"
  },
  "loyaltyPrograms": [
    {
      "programLabel": "pw_rewards",
      "tierLabel": "standard",
      "price": {
        "amountMicros": "95000000",
        "currencyCode": "USD"
      },
      "loyaltyPoints": "10"
    },
    {
      "programLabel": "pw_rewards",
      "tierLabel": "gold",
      "price": {
        "amountMicros": "85000000",
        "currencyCode": "USD"
      },
      "loyaltyPoints": "25",
      "shippingLabel": "gold_free_shipping"
    }
  ]
}

The merchant should then verify:

  • pw_rewards exists in Merchant Center.
  • standard and gold exist as tiers.
  • The programme is active.
  • The product is eligible.
  • Every variation uses the correct value.
  • The public product price is 100 USD.
  • A Standard member can obtain 95 USD.
  • A Gold member can obtain 85 USD.
  • Standard members earn 10 points.
  • Gold members earn 25 points.
  • Gold members receive the submitted shipping benefit.
  • The checkout remains in USD.
  • The programme page explains the benefits.
  • Processed Merchant product values match the input.
  • Scheduled synchronisation preserves current values.

This example demonstrates a data structure, not a universal programme recommendation.

Frequently asked questions

Is a WooCommerce loyalty plugin automatically connected to Merchant Center?

No. A WooCommerce extension controls store-side membership and benefits. Merchant Center programme configuration and product-level loyalty attributes are separate.

Does Merchant Center create my loyalty programme?

No. Google’s loyalty feature is intended for merchants that already operate a genuine programme.

Can I use a newsletter subscription as a loyalty programme?

Google’s current criteria state that newsletter and SMS subscriptions are not considered eligible loyalty programmes.

Can I submit a student discount as a loyalty tier?

Google’s current criteria do not support occupation-based tiers such as student, military or first-responder programmes.

What is a programme label?

It is the internal identifier that connects product-level loyalty information with a programme configured in Merchant Center.

What is a tier label?

It is the internal identifier for a membership level inside the programme.

Can programme labels contain spaces?

Google’s current editorial guidance does not support spaces in programme labels. Use an underscore to separate words.

Do programme labels appear to customers?

They are primarily internal mapping values. The customer-facing programme and tier names are configured separately.

Are labels case-sensitive?

Mappings should be treated as exact. Keep spelling, capitalisation and separators consistent.

Can I use one programme in several countries?

Google’s current troubleshooting documentation states that one loyalty country is supported per Merchant Center account. Multi-country programmes may require an appropriate separate-account structure.

Are loyalty programmes available in Türkiye?

Türkiye is not included in Google’s current published country list.

What benefits can I submit?

Current supported benefit types include member pricing, redeemable points and member shipping.

Is a member price the same as a sale price?

No. A sale price is available publicly. A member price is associated with a loyalty tier and belongs in the loyalty-programme attribute.

Can a member price be higher than the regular price?

No. Merchant API defines the loyalty price as equal to or lower than the regular price.

What if a public sale price is lower than the member price?

Review the commercial benefit and the value submitted. The programme should not misleadingly claim a special member benefit that is worse than the price available to everyone.

Where should the member price be submitted?

Inside the price field of an applicable loyaltyPrograms[] entry, not as the product’s normal price or sale price.

Do member-price currencies have to match?

Yes. Google requires the member-price currency to match the product price and sale-price currency.

Can a member price have start and end dates?

Yes. Use the member-price effective period when the benefit is temporary.

What happens if I omit the effective dates?

Google may treat the member price as continuously available.

Can loyalty points contain decimals?

No. Google’s current loyalty-programme specification requires a whole-number value.

Can points differ by membership tier?

Yes, when the corresponding programme and tier entries accurately describe the real benefit.

Can points depend on the full order?

WooCommerce can calculate order-level points, but one product-level Merchant value may be inappropriate if the final amount cannot be determined accurately for the product.

Is the Japan loyalty-points field the same as loyaltyPrograms[]?

No. Merchant API also has a separate Japan-only loyaltyPoints object. It should not be confused with points inside loyaltyPrograms[].

Can members receive free shipping?

Yes, when the programme, tier, shipping policy and eligible products are configured accurately.

Is a loyalty shipping label the same as a normal shipping label?

No. Google explicitly distinguishes the loyalty shipping label from the regular product shipping label.

Is Customer Match always required?

Customer Match is required for specified loyalty benefits to appear to known members in applicable Shopping Ads experiences. Exact availability varies by benefit, country and surface.

Does product loyalty data require customer emails?

No. Product-level loyaltyPrograms[] data describes offer benefits and does not require individual customer records.

Can PW Merchant API upload Customer Match data?

Do not assume so. Customer loyalty matching is a separate, privacy-sensitive service and should only be described when explicitly supported by the installed version.

Why does Merchant Center say “Loyalty program not found”?

The submitted programme label may not match a programme configured in the selected Merchant account.

Why does it say “Loyalty program tier not found”?

The submitted tier label may not match any tier in the configured programme.

Why is the member price not showing?

Possible causes include programme status, country availability, incorrect labels, an insufficient display threshold, mismatched prices, absent Customer Match for a known-member experience or Google’s independent display decisions.

Does an active loyalty programme guarantee annotations?

No. Approval does not guarantee that every benefit will appear for every product, customer, search or Google surface.

Can loyalty benefits guarantee better sales?

No. They can communicate eligible benefits, but Google does not guarantee impressions, clicks, conversions or revenue.

Final loyalty programme checklist

Before submitting WooCommerce loyalty information, confirm that:

  • The intended Merchant Center account was selected.
  • The intended country was supported.
  • The store genuinely served that country.
  • The programme already existed.
  • The programme was not merely a newsletter.
  • The programme was not merely an SMS list.
  • The programme was not an unsupported occupation-based discount.
  • The programme page was live.
  • The programme page used the verified domain.
  • The programme page explained how to join.
  • Free or paid membership was stated.
  • Every tier was explained.
  • Every tier requirement was accurate.
  • Point earning was explained.
  • Point redemption was explained.
  • Point expiry was explained.
  • Member pricing was explained.
  • Member shipping was explained.
  • Important exclusions were explained.
  • The Loyalty programs add-on was active.
  • The programme name matched the website.
  • The programme description was accurate.
  • The programme URL was correct.
  • The tier count matched the website.
  • The programme was submitted for review.
  • The programme status was checked.
  • The programme label was stable.
  • The programme label contained no spaces.
  • The programme label remained within the supported limit.
  • The tier labels were stable.
  • Tier labels matched Merchant Center.
  • Label capitalisation was consistent.
  • Labels contained no customer information.
  • Labels contained no credentials.
  • Product eligibility was documented.
  • Variation eligibility was documented.
  • WooCommerce source fields were documented.
  • Source precedence was defined.
  • Parent inheritance was defined.
  • Variation exceptions were defined.
  • Missing-value behaviour was defined.
  • Rounding rules were defined.
  • Currency conversion rules were defined.
  • Member prices used the loyalty attribute.
  • Member prices did not replace public prices.
  • Member prices did not replace sale prices.
  • Member prices were equal to or lower than regular prices.
  • Member-price currencies matched product currencies.
  • The lowest obtainable member price was submitted.
  • Stackable promotions were considered.
  • Temporary prices had effective dates.
  • Effective dates used an unambiguous timezone.
  • Expired prices were removed.
  • Point values were whole numbers.
  • Point values matched WooCommerce calculations.
  • Tier multipliers were checked.
  • Sale-item rules were checked.
  • Coupon interactions were checked.
  • Order-level calculations were not misrepresented as fixed product values.
  • Japan-specific fields were used only when applicable.
  • Member shipping existed in the programme.
  • Member shipping policies were created.
  • Specific-product shipping labels matched exactly.
  • Ineligible products omitted the loyalty shipping label.
  • Loyalty shipping labels were not confused with normal shipping labels.
  • WooCommerce shipping zones were checked.
  • Minimum-order rules were checked.
  • Remote-area charges were checked.
  • Customer Match requirements were reviewed.
  • Customer information was not placed in product attributes.
  • Email addresses were not placed in product attributes.
  • Phone numbers were not placed in product attributes.
  • Order information was not placed in product attributes.
  • API keys were not placed in product attributes.
  • Access tokens were not placed in product attributes.
  • Licence keys were not placed in product attributes.
  • The product data source was identified.
  • Supplemental sources were reviewed.
  • XML sources were reviewed.
  • API sources were reviewed.
  • Automatic website sources were reviewed.
  • Local inventory sources were reviewed.
  • Regional inventory sources were reviewed.
  • Previous WooCommerce integrations were reviewed.
  • Every Merchant offer ID was recorded.
  • Every applicable variation was tested.
  • Member prices were tested while signed in.
  • Public prices were tested while signed out.
  • Points were tested after purchase where practical.
  • Member shipping was tested.
  • Ineligible customers were tested.
  • Ineligible products were tested.
  • Excluded variations were tested.
  • Cart prices were accurate.
  • Checkout prices were accurate.
  • Taxes were accurate.
  • Shipping charges were accurate.
  • The processed Merchant product was opened.
  • Processed programme labels were checked.
  • Processed tier labels were checked.
  • Processed member prices were checked.
  • Processed point values were checked.
  • Processed shipping labels were checked.
  • Loyalty-related issues were reviewed.
  • Corrections were made in the authoritative source.
  • Scheduled synchronisation was tested.
  • Obsolete sources could not restore expired values.
  • No programme approval guarantee was assumed.
  • No benefit-display guarantee was assumed.
  • No advertising-performance guarantee was assumed.

WooCommerce loyalty programmes and Google Merchant Center loyalty programmes are connected through accurate programme definitions, exact labels and product benefits that customers can genuinely obtain.

WooCommerce determines the commercial membership rules.

The Merchant Center loyalty programme describes the programme and its tiers to Google.

Product-level loyaltyPrograms[] data connects applicable offers with member prices, points and shipping benefits.

Each part must agree on programme identity, tier eligibility, price, currency, country, effective period and checkout behaviour.

A WooCommerce Google Merchant Center plugin can support this communication only within its documented capabilities. It should not be assumed to create loyalty programmes, manage customers or upload membership data unless those functions are explicitly included.

WooCommerce remains the authoritative source for the commercial benefit. PW Merchant API can manage supported product operations, while Google independently reviews and processes the submitted information.

Clear programme terms, reliable member benefits, exact label mapping and complete checkout testing provide the strongest foundation for representing WooCommerce loyalty benefits on Google.