Build a catalog
Catalogs are used to define the set of products that are published to customers in different contexts, and the prices of each product. The context of each catalog determines which group it applies to. For example, a catalog assigned to the European market might specify that customers shipping to Europe can purchase anything except the electronics without CE certification, but that with a few exceptions, they have to pay 10% higher prices.
In this guide, you’ll learn how to configure a market’s catalog with a price list and publication to control prices and restrict product availability for a specific market.
Requirements
Anchor link to section titled "Requirements"- Your app can make authenticated requests to the GraphQL Admin API.
- Your app has the
write_products
access scope. Learn how to configure your access scopes using Shopify CLI. You've created products and product variants in your store.
You’ve learned about the requirements for stores to set product prices by country.
You’re familiar with the concept of catalogs.
Your store uses Shopify Markets and you’ve set up at least one international market.
Step 1: Query the market catalog
Anchor link to section titled "Step 1: Query the market catalog"Each market has a catalog that’s automatically created and associated with the market. The catalog determines the products that are published to customers in that market. You can use the catalogs
query to retrieve the market catalogs on a store:
Step 2: Associate a price list with the catalog
Anchor link to section titled "Step 2: Associate a price list with the catalog"After you query a catalog, you can use the catalog ID to associate a price list with the catalog. The price list determines the prices that are shown to customers in that market. If a price list isn’t associated with the catalog, then customers in the associated market receive the initial variant prices converted to the market currency.
Create a new price list
Anchor link to section titled "Create a new price list"Use the priceListCreate
mutation to create a new price list for the catalog. You can set the name, a percentage-based adjustment, a currency, and the ID of the catalog to associate.
Associate an existing price list
Anchor link to section titled "Associate an existing price list"Use the priceListUpdate
mutation to associate an existing price list with a catalog. You can also make changes to the name, currency, or percentage-based adjustments with the priceListUpdate
mutation.
Step 3: Set fixed prices for specific product variants
Anchor link to section titled "Step 3: Set fixed prices for specific product variants"Use the priceListFixedPricesAdd
mutation to set a fixed price for specific product variants.
If a product variant is published to the catalog and doesn’t have a set fixed price, then its price is automatically calculated using the percentage-based adjustment that’s specified in the PriceListParent
object.
Delete fixed prices
Anchor link to section titled "Delete fixed prices"To delete a partial set of fixed prices on a price list, you can use the priceListFixedPricesDelete
mutation. After a fixed price is deleted, the price for the affected product variant is automatically calculated using the price list parent's percentage-based adjustment.
To delete fixed prices, you need to specify the variant ID. You can specify a maximum of 250 variant IDs in the array.
Step 4: Unpublish specific products to restrict them from sale
Anchor link to section titled "Step 4: Unpublish specific products to restrict them from sale"If there are specific products that must be restricted from sale in the market, then use the publicationUpdate
mutation to remove them from the market’s publication. The publicationUpdate
mutation allows you to republish a product to the market.
Step 5 (Optional): Delete a price list
Anchor link to section titled "Step 5 (Optional): Delete a price list"You can use the priceListDelete
mutation to delete a price list so that it no longer applies for products in that market catalog. To delete a price list, you need to specify the price list ID. When deleting a priceList
, all of the priceListPrices
are also deleted.
Step 6: Check the final results
Anchor link to section titled "Step 6: Check the final results"Catalogs are the building blocks to control pricing and product availability around the world. Once you’ve configured a catalog, you can check what a real customer will see by passing a specific country to the publishedInContext
and contextualPricing
fields.
This ability to query from a specific buyer’s perspective is especially useful when customizing pricing for multi-country markets. Even when you set a fixed price in a market’s default currency, the final price a customer sees might have been converted into their local currency. Learn more about international pricing.