# Shopping Lists A Shopping List can be used to implement a "save-for-later" feature for an individual Customer, a shareable wishlist, or a public collection of Products. Shopping Lists typically have Line Items: [ShoppingListLineItems](/api/projects/shoppingLists.md#shoppinglistlineitem) that contain [Products](/api/projects/products.md) and/or [TextLineItems](/api/projects/shoppingLists.md#textlineitem) that use text values to represent any other item. A Shopping List can contain up to **250** Line Items and up to **100** Text Line Items. The maximum number of Shopping Lists that can be added to a Project is **10000000**. After this limit is reached, the [automatic cleanup task](/api/general-concepts.md#automatic-cleanup) deletes Shopping Lists based on their retention period. 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). Learn more about how to utilize Shopping Lists in our self-paced Implement Shopping Lists module. ## Representations #### ShoppingList [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingList). #### ShoppingListDraft [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListDraft). #### ShoppingListPagedQueryResponse [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListPagedQueryResponse). #### ShoppingListReference [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListReference). #### ShoppingListResourceIdentifier [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListResourceIdentifier). #### Line Items ##### ShoppingListLineItem [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListLineItem). ##### ShoppingListLineItemDraft [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListLineItemDraft). ##### TextLineItem [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:TextLineItem). ##### TextLineItemDraft [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:TextLineItemDraft). ## Get ShoppingList ### Get ShoppingList by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/\{id}:GET). ### Get ShoppingList by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/key=\{key}:GET). ## Get ShoppingList in Store ### Get ShoppingList in Store by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/\{id}:GET). ### Get ShoppingList in Store by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/key=\{key}:GET). ## Query ShoppingLists [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists:GET). ## Query ShoppingLists in Store [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists:GET). ## Check if ShoppingList exists ### Check if ShoppingList exists by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/\{id}:HEAD). ### Check if ShoppingList exists by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/key=\{key}:HEAD). ### Check if ShoppingList exists by Query Predicate [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists:HEAD). ## Check if ShoppingList exists in Store ### Check if ShoppingList exists in Store by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/\{id}:HEAD). ### Check if ShoppingList exists in Store by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/key=\{key}:HEAD). ### Check if ShoppingList exists in Store by Query Predicate [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists:HEAD). ## Create ShoppingList [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists:POST). ## Create ShoppingList in Store [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists:POST). ## Update ShoppingList ### Update ShoppingList by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/\{id}:POST). ### Update ShoppingList by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/key=\{key}:POST). ## Update ShoppingList in Store ### Update ShoppingList in Store by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/\{id}:POST). ### Update ShoppingList in Store by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/key=\{key}:POST). ## Update actions #### Set Key [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetKeyAction). #### Set Slug [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetSlugAction). #### Change Name [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListChangeNameAction). #### Set Description [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetDescriptionAction). #### Set Customer [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetCustomerAction). #### Set Store [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetStoreAction). #### Set Business Unit [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetBusinessUnitAction). #### Set AnonymousId [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetAnonymousIdAction). #### Set Custom Type [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetCustomTypeAction). #### Set CustomField [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetCustomFieldAction). #### Set DeleteDaysAfterLastModification [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetDeleteDaysAfterLastModificationAction). #### Update ShoppingListLineItems ##### Add ShoppingListLineItem [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListAddLineItemAction). ##### Remove ShoppingListLineItem [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListRemoveLineItemAction). ##### Change ShoppingListLineItem Quantity [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListChangeLineItemQuantityAction). ##### Change ShoppingListLineItems Order [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListChangeLineItemsOrderAction). ##### Set ShoppingListLineItem Custom Type [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetLineItemCustomTypeAction). ##### Set ShoppingListLineItem CustomField [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetLineItemCustomFieldAction). #### Update TextLineItems ##### Add TextLineItem [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListAddTextLineItemAction). ##### Remove TextLineItem [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListRemoveTextLineItemAction). ##### Change TextLineItem Quantity [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListChangeTextLineItemQuantityAction). ##### Change TextLineItem Name [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListChangeTextLineItemNameAction). ##### Set TextLineItem Description [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetTextLineItemDescriptionAction). ##### Change TextLineItems Order [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListChangeTextLineItemsOrderAction). ##### Set TextLineItem Custom Type [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetTextLineItemCustomTypeAction). ##### Set TextLineItem CustomField [type definition](/api/projects/shoppingLists.md?urn=ctp:api:type:ShoppingListSetTextLineItemCustomFieldAction). ## Delete ShoppingList ### Delete ShoppingList by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/\{id}:DELETE). ### Delete ShoppingList by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/shopping-lists/key=\{key}:DELETE). ## Delete ShoppingList in Store ### Delete ShoppingList in Store by ID [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/\{id}:DELETE). ### Delete ShoppingList in Store by Key [endpoint definition](/api/projects/shoppingLists.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shopping-lists/key=\{key}:DELETE). ## Related pages - [Area overview page with navigation](/api.md) - [Previous page: Payments](/api/projects/payments.md) - [Next page: Order Edits](/api/projects/order-edits.md)