# Free items Free items are a type of item that users can get without spending virtual or real currency. These include: - Virtual items - Bundles - Virtual currency packages Free items are only available to authorized users. Unauthorized users can only view the catalog of free items. Examples of usage: - You can give away free items on important dates for your project (for example, on the day the project was founded) to reward users for their loyalty. - You can give away free starter packs for the game in the store to attract new users to the game. You can limit the free giveaway of unique items if the user already has them. To set up free items: 1. [Add free items to the catalog](#sdk_free_items_add_items). 2. [Implement logic of ordering free items by users](#sdk_free_items_order_items). 3. [Implement the logic of granting free items to the user](#sdk_free_items_grant_items). ## Adding free items to catalog Detailed instructions for creating items are available in the following documentation sections: - [Set up a virtual currency package](/sdk-client-side/cocos/integrate-complete-solution/set-up-catalog-and-subs/#create_catalog_create_vc_package) - [Create virtual items](/sdk-client-side/cocos/integrate-complete-solution/set-up-catalog-and-subs/#create_catalog_create_vi) - [Create bundles](/sdk-client-side/cocos/integrate-complete-solution/set-up-catalog-and-subs/#create_catalog_create_bundle) When creating or editing a free item, you need to select a **Free item**, **Free package** or **Free bundle** in the **Paid or Free** section. ## Ordering free items by user A user can order a free item in two ways: - [In one click](#sdk_free_items_order_item_in_one_click) (without using the shopping cart) — one SKU in any quantity. For example, 100 identical potions. - [Via the shopping cart](#sdk_free_items_order_item_via_cart) — any type of items in any quantity. ### Ordering free item in one click To implement this option, call the `createOrderWithSpecifiedFreeItem` SDK method when a user clicks the button in the catalog to order the free item. The delivery of items to the user’s inventory on the Xsolla’s side occurs immediately after a successful request to this method (without the need to open Pay Station). ### Ordering free items via shopping cart In case the user buys through a shopping cart: - If the user’s cart contains both paid and free items: a. Get the payment token and order ID using the `fetchCartPaymentToken` SDK method. b. Implement opening of the payment UI. To do this, call the `openPurchaseUI` SDK method and pass the payment token and order ID to it. - If the user’s cart contains only free items, call the `createOrderWithFreeCart` or `createOrderWithSpecifiedFreeItem` SDK method. The delivery of items to the user’s inventory on the Xsolla’s side occurs immediately after a successful request to this method (without the need to open the Pay Station payment form). ## Granting free items to user You can track the status of a free item order by repeatedly calling the `checkOrder` SDK method. If the order was successful, use [SDK methods for displaying user inventory](/sdk-client-side/cocos/player-inventory/display-inventory/) to update the data on the client side of the application. > [!NOTE] > If you've configured your application’s server to handle Xsolla webhooks, you can update the data on your application’s client side when the [order_paid](/webhooks/overview/#section/Webhooks-list) webhook is received.