Edit country-zone product prices
Use this guide to apply regional product amounts after the current site's zones are valid. These fields are intended for WooCommerce product managers.
Before you begin
- Enable Country pricing zones and create a valid fallback zone.
- Confirm the product already has its normal WooCommerce price and product type.
- Confirm the country-price product index is ready in Site Health.
- Keep another country-pricing engine inactive to avoid conflicting price reads.
Saved regional values change supported WooCommerce server-side price reads for requests resolved to that zone. They also control regional price ordering, price ranges, on-sale product sets, visibility, and purchasability without changing the stored WooCommerce base amounts.
Edit a simple product, external product, or subscription
- Go to Products → All Products and edit the product.
- In Product data, open Country prices.
- Choose one mode for each zone:
- Inherit WooCommerce prices uses the product's normal WooCommerce amounts.
- Override for this zone uses the regional amounts entered in that row.
- Unavailable in this zone removes the effective amount and makes the supported product unavailable for that zone.
- For an override, enter a non-negative Regular price.
- Optionally enter a lower Sale price. Leaving it empty means there is no regional sale.
- For a subscription, enter the recurring regular and sale amounts and the Sign-up fee. An empty regional sign-up fee is stored as zero for an override.
- Select Update.
The expected result is that the complete set of zone rows is accepted together, the product-list regional columns refresh, and server-side product reads use the amount for the resolved zone.
Edit a variation or subscription variation
- Edit the variable product.
- In Product data, open Variations.
- Expand the variation that needs regional amounts.
- Find Country prices inside that variation.
- Choose the mode and enter the same supported amounts described above.
- Repeat for each applicable variation.
- Select Save changes in the Variations panel.
Each variation owns its regional amounts. The variable parent's regional column displays the minimum and maximum among its purchasable variations for that zone.
The same available variations supply the server-side variable price range. A variation marked unavailable is inactive, invisible, and not purchasable for that zone.
Important choices and limits
- The regional sale amount must be lower than the regional regular amount.
- WooCommerce's normal product sale dates control when a regional sale is active.
- A future sale keeps the regional regular amount effective until its start time. The regional index and WooCommerce variation caches refresh at the scheduled start and end.
- An empty sale amount never inherits the normal WooCommerce sale amount when the row is an override.
- Unavailable in this zone is explicit and differs from inheriting an empty base price.
- Renaming or reordering a zone preserves its existing product rows.
- Disabling a zone keeps its saved product values but removes its product-list column until it is enabled again.
- Product duplication and supported Polylang product synchronization copy the complete country-price document, including variation-owned values when the integration duplicates those variations.
- All values and indexes belong to the current site in a multisite network.
- Simple, external, variable, variation, subscription, variable-subscription, and subscription-variation products are supported. Other custom product types retain their WooCommerce base values and appear in Site Health after they are observed.
Verify the result
- Reload the product and confirm each zone row retains its selected mode and values.
- Return to Products → All Products.
- Confirm each enabled zone has one price column.
- Confirm a simple override shows its effective current amount, an unavailable row shows Unavailable, and a variable product shows the expected range.
- View the product with a customer country from that zone and confirm the current, regular, sale, and variation values match the saved row.
- Check price ordering, a minimum/maximum price filter, and an on-sale product list for the same country.
- Confirm the public page first contains a neutral loading marker and then displays the regional price and complete product state.
- Go to Tools → Site Health → Status and confirm the product index and product-type compatibility results are good. Keep shared page caching bypassed unless Country pricing universal cache safety is also good.
Troubleshooting
The sale price is rejected
Enter a non-negative amount lower than the regional regular price, or leave the sale field empty. The previous valid country-price document remains unchanged when regional validation fails, even if WooCommerce saves unrelated product fields from the same update.
A variation does not show country-price fields
Confirm the country-zone tool is enabled, the zone configuration is valid, and the variation has finished loading. Expand the variation after the Variations panel loads.
A regional column shows “Not indexed”
Save the product once or follow Reindex country-zone product prices.
A supported product still shows the normal WooCommerce price
Confirm the request resolves to the expected country and enabled zone, the row uses Override for this zone, and the product index is ready. Then check Site Health for a conflicting country-pricing plugin. The runtime deliberately stays inactive when its configuration or index is unavailable or WooCommerce Price Based on Country is active.
A custom product type keeps its normal price
This is the safe fallback for unsupported product types. Review Country pricing product-type compatibility in Site Health and verify that product family before relying on regional amounts for it.