Project portfolio Browse selected work

Shopify Plus Upgrade Monthly Fee Reduction + Up to $4800 Development Fee Credit - Exclusive WesWoo Offer

Guide

Shopify Market-Level Product Availability: Catalog Gates, Inventory Signals, and Checkout QA

Published: Editorial review: 2026-08-30

In Shopify Markets, the question “Can a buyer in this country purchase this product?” is not answered by a single inventory switch. It is a chain of conditions: which market is assigned to the buyer, whether the product belongs to that market’s catalog, what the product path displays, whether a shipping zone and rate exist, and whether the address, inventory, and payment conditions allow checkout to continue. Treating these conditions as one setting can turn a catalog gap into an inventory diagnosis, or turn a domain and language issue into a product-availability diagnosis.

This guide treats availability as a market-level gate. Shopify Markets supports market-specific customizations such as currency, language, pricing, product availability, domains, taxes, and shipping options. The current admin settings should still be checked item by item. For an internal-language overview, see Shopify Markets setup, then confirm the boundaries in Shopify’s Markets documentation.

The goal is not to claim that a product will always be available. The goal is to give every market a reviewable decision path: what state is expected, what state is a blocker, which setting controls it, and how to return to the last clearly tested configuration when an exception appears.

1. Define market-level product availability

Availability is not the same as inventory synchronization

Market-level availability should answer at least four questions at the same time. Is the buyer in the intended market? Is the product assigned to that market’s catalog? Does the product path show the expected state? Can checkout accept the destination, shipping, and payment conditions? Shopify’s Markets documentation treats product availability as one part of market customization. Its guidance on creating catalogs for markets states that a product must be in the market catalog to be visible and purchasable there.

Inventory is a different signal. It can affect the cart or checkout stage, but it does not replace the catalog gate and it does not choose a domain, language, or shipping zone. Shopify’s Checkout guidance explains that checkout evaluates inventory and that inventory is held only after payment details are submitted. Therefore, “inventory exists somewhere” cannot by itself establish that a product can be purchased in a particular market.

For testing, write each condition as an observable state instead of storing only a single available or unavailable conclusion. That separation shows whether the gap is in market matching, catalog assignment, product visibility, shipping, or checkout.

Decision layerQuestion to askEvidence to captureEffect on availability
Market contextWhich market is the buyer currently viewing?Selector, domain, browser, or address testDetermines which market settings should apply
Catalog gateIs the product assigned to that market catalog?Catalog view or CSV inspectionA product outside the catalog should not be treated as visible and purchasable there
Product pathWhat appears when the product path is opened directly?Page, price, and add-to-cart stateFinds differences between the storefront and the catalog setting
Inventory signalHow is inventory evaluated while checkout proceeds?Cart-to-checkout observationAffects whether the flow continues, but does not replace catalog eligibility
Shipping and checkoutIs there a valid rate and an acceptable destination?Shipping option, address validation, and checkout stateA missing valid path should block clearly rather than imply an order can be completed

2. Model markets before changing the catalog

Record country, currency, language, and fulfillment assumptions

Write the market context before changing the catalog. A useful market row includes the target country or region, the currency a buyer may use, the language and domain signals, the fulfillment path, the shipping zone and rate, and any tax-display assumptions that affect checkout. Market settings can contain these customizations, but the intended way to sell and the settings currently in effect should be recorded separately.

A market may use a dedicated domain, a subdomain, or a subfolder. Language matching may involve a domain, selector, browser, or IP. Those signals help create the intended local experience; they do not independently prove that a product has purchase eligibility. Keeping them together prevents a catalog change from being made without checking the address, rate, or currency that the buyer will encounter.

Use customizing markets as the configuration reference. For every market row, keep both an expected state and an observed state so later tests do not depend on memory.

Model fieldMinimum recordWhy it affects the gateCheck to perform
Market identityCountry or region, market name, matching methodDefines the scope from which catalog, currency, and shipping settings are readConfirm with selector, domain, and address separately
CurrencyMarket currency, automatic or manual rate, roundingAffects product, cart, checkout, and refund amountsTest the buyer country together with the actual payment path
Language and domainDomain, subdomain or subfolder, language assignmentShapes the entry path and localization signalsCheck links, selectors, and translation coverage
Fulfillment pathShipping origin, serviceable country, intended shipping zoneDetermines whether an address can receive a shipping optionQuery a valid rate for the destination
Tax assumptionsDisplay mode, tax inclusion, responsibility boundaryChanges the price composition shown at checkoutRecheck current market settings and applicable requirements without treating display as tax advice

3. Build the product eligibility matrix

Mark included, excluded, and review-needed products

Before editing a catalog, give each product a three-state decision: included, excluded, or review needed. Included means there is a clear basis for placing the product in that market catalog. Excluded means it should not currently be presented as purchasable there. Review needed means that product scope, shipping, price, or another required condition has not yet been confirmed. The third state matters because it prevents incomplete information from being treated as approval.

Shopify describes a catalog as a set of products assigned to a market, with optional prices. The eligibility matrix should use that product-level concept instead of relying on a single store-wide switch. Record the status separately for each market so a default catalog and a market-specific difference can be seen side by side.

The matrix does not need to predict a final customs, tax, or inventory outcome. Its job is to say whether the product should enter that market catalog and what remains to be checked. If another decision is needed, name the missing fact and keep the product in review-needed status until it is available.

Product eligibility stateCatalog actionConfirmation requiredNext step after review
IncludedAssign to the target market catalogThe product belongs in that market’s selling scope and a shipping path can be testedRun product-path and checkout tests
ExcludedDo not assign or remove from that market catalogThere is a clear market or fulfillment boundaryTest that the market does not present it as purchasable
Review neededDo not treat it as available yetProduct scope, price, destination, or shipping evidence is missingDecide included or excluded after the missing fact is confirmed
Catalog-specific priceKeep the price override with the catalogConfirm how market currency and pricing settings will renderTest product, cart, and checkout amounts together

4. Apply catalogs and inheritance

Inspect defaults and market-specific overrides

Market catalog, currency, domain and language, duties and taxes, and entity settings may be inherited from defaults or customized for a particular market. When a market changes, inspect not only the new value but also whether it is inherited or overridden. Shopify’s guidance on adding or removing market customizations describes this inheritance behavior.

A practical sequence is to view the default state, view the effective state for the target market, and then record the override relationship. If removing a customization causes a value to return to the default, include that return in the review; an empty-looking field should not be interpreted as “nothing is configured.” For catalogs, confirm the exact product set that the target market is using.

When several markets share a default catalog, a market-specific exclusion may affect only one market. Conversely, a default catalog change may affect every market that inherits it. Mark the affected markets for each adjustment and do not rely on the currently selected storefront alone.

5. Verify product visibility

Use View as, selectors, and a direct product-path test

After catalog assignment, use the market’s View as function and CSV tools to inspect whether the product appears in the correct catalog. That verifies an administrative assignment, but it does not prove that the storefront product path will behave as expected. Next, open the product through the target market’s domain or selector and use a direct product-path test to observe visibility and pricing.

Market matching may use IP, browser, domain, or manual selection. IP can be inaccurate, so a product-page test should record the selector or domain state and then repeat the test with the target shipping address at checkout. For the language entry point, see Shopify localization; for market matching and selectors, see setting up localization for markets.

The direct path test is not merely a link-availability check. Observe the product status within the target market context. If the product remains visible while the catalog inspection says excluded, or if the catalog says included while the product path is hidden, preserve both observations and inspect market selection and inheritance before changing another setting.

6. Separate inventory from purchase eligibility

Trace the path from product page to checkout

Passing the market catalog gate means only that the product has passed one eligibility layer. It does not guarantee a shipping zone, address validation, payment method, or successful inventory evaluation at checkout. In the other direction, inventory at a location cannot turn a product outside the market catalog into a market-eligible product.

Test one complete path in order: select the market, open the product page, add the product to the cart, enter checkout, provide the shipping address, and observe the shipping and payment information. Record the buyer country, currency, product state, and message at each step. Shopify explains that checkout evaluates inventory and that inventory is held only after payment details are submitted, so a pre-payment inventory message is an observed test state rather than an unchanging promise.

This sequence also narrows diagnosis. If the product is hidden on the product page, start with the catalog. If the product is visible but changes in the cart or checkout, inspect inventory and checkout conditions. If checkout opens without a shipping option, inspect the combination of country, market, shipping zone, and rate.

7. Connect shipping zones to market availability

Fail closed when no valid rate exists

Shopify’s shipping zones and markets guidance creates a key gate: the buyer’s country must be in an active market and in a shipping zone with rates for the buyer to select shipping at checkout. Passing the catalog gate does not pass shipping. Passing a shipping-zone check does not prove that the product belongs in the catalog.

Use a concrete destination country and address rather than checking only that a zone name exists in admin. If the country is not in an active market, is not in the zone, has no rate, or cannot produce a valid address result, the flow should show a clear reason that it cannot continue. Do not cover a missing rate with language suggesting that shipping will appear later.

For an English-language explanation of this operating area, see Shopify shipping zones. Keep the following diagnostic table with the market check.

Observed stateGate to inspectDirection for actionEvidence to save
Product path is hiddenMarket catalog and market selectionConfirm whether the product should be included, then inspect the assignmentView as, catalog view, current market
Product path is visible but no shipping option appearsCountry, active market, shipping zone, and rateConfirm the destination and rate one by oneAddress, market context, shipping options
A shipping zone appears but has no rateRates inside the shipping zoneAdd a valid rate or keep the flow blockedZone settings and checkout message
Currency is correct but the address is rejectedAddress collection and validation rulesMake ownership of validation unambiguous and remove conflictsAddress input, validation message, setting
Catalog and shipping pass but checkout changes the stateInventory and checkout conditionsRepeat the full cart-to-checkout pathProduct, cart, and checkout states

8. Align language and domain signals

Avoid letting localization hide an availability defect

Domains, subdomains, subfolders, language assignments, translations, and selectors form the localization entry point. They can bring a buyer to the intended market experience, and they can also make the same product appear with different language or price signals. Shopify’s guidance on assigning domains and languages to markets and localization and translation calls for these signals to be checked separately.

Localization does not substitute for catalog eligibility. First confirm that the entry point represents the intended market, then verify the catalog and product path. Do not skip product assignment or shipping just because a page is translated or the domain looks correct. A language selector can otherwise lead to content that is localized while its product scope is wrong.

For each market, cross-check at least one domain or folder entry, one manual selector, and one destination address. If the entry signal and address signal point to different markets, preserve the difference and let checkout evaluate the verifiable destination conditions instead of guessing which signal should win.

9. Check buyer country and local pricing together

Test currency and buyer identity together

Local-currency display should be tested with the buyer country. Shopify’s guidance on pricing in local currencies explains that browsing, payment, and refunds depend on the store’s payment and checkout configuration. Currencies, rates, rounding, exchange fees, refunds, and processor limitations should also be checked in currencies for markets and currency exchange rates.

Do not switch only the currency selector and then conclude that the market is ready. Record the market selection, buyer country, product amount, cart amount, checkout amount, and currency on the order record, and compare each with the expected state. Store currency, market currency, and manual exchange rates are distinct controls; rounded display needs its own check.

Tax display is another separate layer. If a market uses tax-inclusive or tax-exclusive behavior, review dynamic tax-inclusive pricing and the current market tax settings; a displayed tax treatment is not a substitute for professional tax advice. For an English-language boundary guide, see Shopify VAT boundaries.

10. Design a pre-opening test matrix

Capture expected and observed states per market

Before opening a market, choose representative paths for included, excluded, and review-needed products. Fix the buyer country, market entry, language, currency, and destination address for each test. The purpose is not to make every market produce the same result; it is to verify that each market model and product eligibility decision appears correctly on the storefront.

Record expected and observed states at the product, cart, and checkout stages. Checkout should also be checked for address collection and shipping rates. For a broader cross-border flow, see Shopify cross-border checkout and address collection preferences. If the outcome differs, mark the stage that failed before changing the corresponding gate.

Test scenarioFixed contextExpected stateObserved record
Product included in the catalogTarget market, country, language, and currencyProduct page reflects the market and can continue to shipping and checkout checksProduct, cart, and checkout screenshots or written states
Product excluded from the catalogSame market and entry pathIt should not be presented as purchasable in that marketSearch, direct path, and catalog-view result
No valid shipping rateProduct and catalog stay the same; destination has no valid rateThe flow blocks clearly and does not imply a selectable shipping promiseCountry, address, zone, rate, and checkout message
Currency and buyer-country combinationMarket, domain, buyer country, and payment path alignProduct, cart, and checkout amounts follow current settingsAmount, currency, rounding, and refund observations
Inventory changes during checkoutCatalog eligibility is already confirmed; the full path is usedRecord how checkout evaluates inventory rather than treating a page message as permanent eligibilityProduct, cart, checkout, and payment-information stages

11. Recover from a catalog or rate mistake

Restore the last known-good assignment and message

A common failure is that a market catalog has just been changed: a product is still visible on the product path, but checkout has no valid rate for the destination country. Do not expand the catalog merely to make the product page look normal. First preserve the current market, product, address, page, and checkout states, then determine whether the blocker is catalog assignment, shipping zone, rate, or address validation.

If a catalog assignment and shipping configuration has already passed a clear test, restore that known configuration relationship. Remove the incorrect market override, restore the product’s intended included or excluded state, and restore the destination’s valid rate. If the rate cannot be confirmed, keep the flow clearly unavailable rather than presenting an unverified purchase path. After restoration, repeat View as, selector, direct product path, currency, and address tests.

Buyer-facing language should match the observed state. It can explain that a market currently has no available shipping option or that a product is outside the market catalog, but it should not promise inventory, shipping, or successful payment. Compare expected and observed states after restoration so the same fault is not merely hidden.

12. Operate the gate after opening

Review changes, exceptions, and evidence on a schedule

Market-level availability needs ongoing review because a change to the catalog, market customization, inheritance, domain and language, shipping zone, rate, or checkout setting can change the storefront result. On an established schedule, review market and catalog changes and keep the market context, product state, address, currency, expected state, observed state, and action for each exception.

The review has two jobs. First, confirm that the effective settings still match the market model. Second, confirm that each exception has an explicit closure. A small, stable test set can be repeated; unverifiable growth rates, rankings, or sales outcomes are not quality controls. The useful evidence is what a defined input produced under the current settings.

Shopify capabilities and regional requirements change. Check current admin settings and official documentation before acting. When market matching, catalogs, localization, shipping, and checkout can all be explained by the same evidence chain, the availability gate becomes a routine operating check.

Frequently asked questions

What should I check first to decide whether a product can sell in Shopify Markets?

Identify the buyer’s current market first, then check whether the product is in that market’s catalog. Catalog membership is the foundation for visibility and purchase eligibility there; product path, shipping zone, rate, address, and checkout conditions still need to be tested. Do not infer market availability from an inventory number alone.

Why can a market product be unavailable even when inventory exists?

Inventory is only one signal. The product may be outside the market catalog, the destination may not have a valid shipping zone or rate, or address and checkout conditions may fail. Follow the sequence from market selection to catalog, product path, cart, and checkout to find the actual blocking layer.

What should I do if IP matching sends the buyer to the wrong market?

Do not rely on IP alone. Shopify notes that market matching can also use browser, domain, or manual selection and that IP can be inaccurate. Retest with a selector or explicit domain, then provide the real destination address to ensure that localization has not hidden a catalog or shipping issue.

What should I inspect when the catalog is correct but checkout has no shipping option?

Check that the destination country belongs to an active market, that it is included in a shipping zone, and that the zone has a rate. Also inspect whether address collection and validation rules conflict. Without a valid rate, the flow should block clearly rather than describe the product as ready to purchase.

What is the safest recovery after a catalog or rate change is wrong?

Preserve the failing path and market context, then restore the last clearly tested catalog assignment and shipping configuration. Repeat View as, selector, direct product path, currency, address, and checkout tests. External wording should describe only the state that was verified; it should not guarantee inventory, shipping, or payment.

Browse the WESWOO project portfolio