# Stores Stores let you model the context your customers shop in. Stores can be used to model, for example, physical retail locations, brand stores, or regions. They allow to define what subset of resources within a project is available in the context of a store. Permissions can be granted for particular Stores only. For example, with an OAuth Scope like `manage_orders:acme-inc:luxury-brand`, an API Client can only access Carts and Orders within the Luxury Brand Store, but not within the Budget Brand Store. [Store-scoped API methods](/api/projects/stores.md#store-scoped-api-methods) are available to access resources within a specified Store only. A maximum number of **300000** Stores can be created per Project. This is a soft limit that can be increased per Project after a performance impact review. See [Limit increase guidance](/api/limit-increase-guidance.md#resource-count-limits). For details about how Store configuration affects projected Product data and Line Items in Store-bound Carts, see [Locales](/api/projects/productProjections.md#locales), [Projection by Store](/api/projects/productProjections.md#projection-by-store), and [Inventory entries](/api/projects/productProjections.md#inventory-entries) in Product Projections. Deleting a Store permanently removes all associated Product Tailoring data. Learn more about Stores in our self-paced [Stores and Channels](/learning-model-your-business-structure/stores-and-channels/overview.md) module. ## Store-scoped API methods Store-scoped API methods let you work with resources in a specific Store. They scope reads and writes to the named Store, so only data relevant to that Store is affected. Your [API Client](/api/projects/api-clients.md) must have Store-related [scopes](/api/scopes.md), for example `manage_orders:{projectKey}:{storeKey}`, to call these endpoints. Path pattern: ```text /{projectKey}/in-store/key={storeKey}/{resource}(/additional-path) ``` Example: Get a Cart in Store by ID ```http GET /{projectKey}/in-store/key={storeKey}/carts/{id} ``` For use of Store-scoped methods in GraphQL, see [Store-scoped queries and mutations](/api/graphql.md#store-scoped-queries-and-mutations). The following table lists Store-scoped API methods for several resources: | Resources | API methods (links shortened) | | --- | --- | | Business Units | [Get](/api/projects/business-units.md#get-businessunit-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fbusiness-units%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fbusiness-units%3APOST), [Update](/api/projects/business-units.md#update-businessunit-in-store), [Delete](/api/projects/business-units.md#delete-businessunit-in-store) | | Carts | [Get](/api/projects/carts.md#get-cart-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcarts%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcarts%3APOST), [Replicate](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcarts%2Freplicate%3APOST), [Update](/api/projects/carts.md#update-cart-in-store), [Delete](/api/projects/carts.md#delete-cart-in-store) | | My Carts | [Get](/api/projects/me-carts.md#get-my-cart-in-store), [Get active Cart](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Factive-cart%3AGET), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fcarts%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fcarts%3APOST), [Update](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fcarts%2F%7Bid%7D%3APOST), [Delete](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fcarts%2F%7Bid%7D%3ADELETE) | | Cart Discounts | [Get](/api/projects/cartDiscounts.md#get-cartdiscount-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcart-discounts%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcart-discounts%3APOST), [Update](/api/projects/cartDiscounts.md#update-cartdiscount-in-store), [Delete](/api/projects/cartDiscounts.md#delete-cartdiscount-in-store) | | Customers | [Get](/api/projects/customers.md#get-customer-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcustomers%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcustomers%3APOST), [Update](/api/projects/customers.md#update-customer-in-store), [Change password](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcustomers%2Fpassword%3APOST), [Authenticate](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Flogin%3APOST), [Get by password token](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcustomers%2Fpassword-token%3D%7BpasswordToken%7D%3AGET), [Reset password](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcustomers%2Fpassword%2Freset%3APOST), [Get by email token](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcustomers%2Femail-token%3D%7BemailToken%7D%3AGET), [Verify email](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fcustomers%2Femail%2Fconfirm%3APOST), [Delete](/api/projects/customers.md#delete-customer-in-store) | | My Customers | [Get](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fsignup%3APOST), [Update](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%3APOST), [Change password](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fpassword%3APOST), [Authenticate](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Flogin%3APOST), [Reset password](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fpassword%2Freset%3APOST), [Verify email](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Femail%2Fconfirm%3APOST), [Delete](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%3ADELETE) | | Discount Codes | [Get](/api/projects/discountCodes.md#get-discountcode-in-store), [Query](/api/projects/discountCodes.md#query-discountcodes-in-store), [Exists](/api/projects/discountCodes.md#check-if-discountcode-exists-in-store) | | Orders | [Get by ID](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%2F%7Bid%7D%3AGET), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%3AGET), [Create from Cart](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%3APOST), [Create from Quote](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%2Fquotes%3APOST), [Update by ID](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%2F%7Bid%7D%3APOST), [Delete by ID](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%2F%7Bid%7D%3ADELETE)[Get by OrderNumber](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%2Forder-number%3D%7BorderNumber%7D%3AGET), [Update by OrderNumber](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%2Forder-number%3D%7BorderNumber%7D%3APOST), [Delete by OrderNumber](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Forders%2Forder-number%3D%7BorderNumber%7D%3ADELETE) | | My Orders | [Get by ID](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Forders%2F%7Bid%7D%3AGET), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Forders%3AGET), [Create from Cart](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Forders%3APOST) | | Product Projections | [Get](/api/projects/productProjections.md#get-productprojection-in-store) | | Product Tailoring | [Get by Product Key](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproducts%2Fkey%3D%7BproductKey%7D%2Fproduct-tailoring%3AGET), [Get by Product ID](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproducts%2F%7BproductID%7D%2Fproduct-tailoring%3AGET), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproduct-tailoring%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproduct-tailoring%3APOST), [Update by Product Key](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproducts%2Fkey%3D%7BproductKey%7D%2Fproduct-tailoring%3APOST), [Update by Product ID](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproducts%2F%7BproductID%7D%2Fproduct-tailoring%3APOST), [Delete by Product Key](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproducts%2Fkey%3D%7BproductKey%7D%2Fproduct-tailoring%3ADELETE), [Delete by Product ID](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fproducts%2F%7BproductID%7D%2Fproduct-tailoring%3ADELETE) | | Quotes | [Get](/api/projects/quotes.md#get-quote-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fquotes%3AGET), [Exists](/api/projects/quotes.md#check-if-quote-exists-in-store), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fquotes%3APOST), [Update](/api/projects/quotes.md#update-quote-in-store), [Delete](/api/projects/quotes.md#delete-quote-in-store) | | Quote Requests | [Get](/api/projects/quote-requests.md#get-quoterequest-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fquote-requests%3AGET), [Exists](/api/projects/quote-requests.md#check-if-quoterequest-exists-in-store), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fquote-requests%3APOST), [Update](/api/projects/quote-requests.md#update-quoterequest-in-store), [Delete](/api/projects/quote-requests.md#delete-quoterequest-in-store) | | Shipping Methods | [Get for a Cart](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fshipping-methods%2Fmatching-cart%3AGET) | | Shopping Lists | [Get](/api/projects/shoppingLists.md#get-shoppinglist-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fshopping-lists%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fshopping-lists%3APOST), [Update](/api/projects/shoppingLists.md#update-shoppinglist-in-store), [Delete](/api/projects/shoppingLists.md#delete-shoppinglist-in-store) | | Staged Quotes | [Get](/api/projects/staged-quotes.md#get-stagedquote-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fstaged-quotes%3AGET), [Exists](/api/projects/staged-quotes.md#check-if-stagedquote-exists-in-store), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fstaged-quotes%3APOST), [Update](/api/projects/staged-quotes.md#update-stagedquote-in-store), [Delete](/api/projects/staged-quotes.md#delete-stagedquote-in-store) | | My Shopping Lists | [Get](/api/projects/me-shoppingLists.md#get-my-shoppinglist-in-store), [Query](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fshopping-lists%3AGET), [Create](/urn?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fin-store%2Fkey%3D%7BstoreKey%7D%2Fme%2Fshopping-lists%3APOST), [Update](/api/projects/me-shoppingLists.md#update-my-shoppinglist-in-store), [Delete](/api/projects/me-shoppingLists.md#delete-my-shoppinglist-in-store) | ## Representations #### Store [type definition](/api/projects/stores.md?urn=ctp:api:type:Store). #### StoreCountry [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreCountry). #### StoreDraft [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreDraft). #### StorePagedQueryResponse [type definition](/api/projects/stores.md?urn=ctp:api:type:StorePagedQueryResponse). #### StoreReference [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreReference). #### StoreKeyReference [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreKeyReference). #### StoreResourceIdentifier [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreResourceIdentifier). #### ProductSelectionSetting [type definition](/api/projects/stores.md?urn=ctp:api:type:ProductSelectionSetting). #### ProductSelectionSettingDraft [type definition](/api/projects/stores.md?urn=ctp:api:type:ProductSelectionSettingDraft). ## Get Store ### Get Store by ID [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/\{id}:GET). ### Get Store by Key [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/key=\{key}:GET). ## Query Stores [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores:GET). ## Check if Store exists ### Check if Store exists by ID [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/\{id}:HEAD). ### Check if Store exists by Key [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/key=\{key}:HEAD). ### Check if Store exists by Query Predicate [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores:HEAD). ## Create Store [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores:POST). Specific error codes: - [ProjectNotConfiguredForLanguages](/urn?urn=ctp%3Aapi%3Atype%3AProjectNotConfiguredForLanguagesError) ## Update Store ### Update Store by ID [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/\{id}:POST). ### Update Store by Key [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/key=\{key}:POST). ## Update actions #### Set Name [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetNameAction). #### Set Languages [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetLanguagesAction). #### Set Countries [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetCountriesAction). #### Add Country [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreAddCountryAction). #### Remove Country [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreRemoveCountryAction). #### Set Distribution Channels [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetDistributionChannelsAction). #### Add Distribution Channel [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreAddDistributionChannelAction). #### Remove Distribution Channel [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreRemoveDistributionChannelAction). #### Set Supply Channels [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetSupplyChannelsAction). #### Add Supply Channel [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreAddSupplyChannelAction). #### Remove Supply Channel [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreRemoveSupplyChannelAction). #### Add Product Selection [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreAddProductSelectionAction). A Store can incorporate multiple Product Selections, which is useful if a Product Selection is shared between Stores. For example, you may want to create a shared Product Selection as your base catalog which is supplemented by individual Product Selections for each Store. A Store without any Product Selection includes all Products of a Project. The number of Product Selections configured for a Store is limited to **100**. #### Remove Product Selection [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreRemoveProductSelectionAction). #### Set Product Selections [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetProductSelectionsAction). The number of Product Selections configured for a Store is limited to **100**. #### Change Product Selection Active [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreChangeProductSelectionAction). #### Set Custom Type [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetCustomTypeAction). #### Set CustomField [type definition](/api/projects/stores.md?urn=ctp:api:type:StoreSetCustomFieldAction). ## Delete Store To avoid dependency conflicts and errors, delete resources that reference the Store in the correct order before deleting the Store itself. You must delete all active and anonymous [Carts](/api/projects/carts.md#delete-cart) that reference the Store and then delete all [Orders](/api/projects/orders.md#delete-order) that reference the Store before you can safely delete the Store itself. ### Delete Store by ID [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/\{id}:DELETE). ### Delete Store by Key [endpoint definition](/api/projects/stores.md?urn=ctp:api:endpoint:/\{projectKey}/stores/key=\{key}:DELETE). ## Related pages - [Area overview page with navigation](/api.md) - [Previous page: Channels](/api/projects/channels.md) - [Next page: Tax Categories](/api/projects/taxCategories.md)