To be shown in the store, every SKU needs to:
- Have a price.
- Have stock.
- Be marked as an Active SKU.
Even if you want to create an SKU that will be available to your customers merely as a gift, you need to enable it on the SKU registration page, in the Catalog. And you must also register a price and inventory for it.
If this SKU is selected as a gift at checkout, it will be free.
That is, even if a gift has a registered price (necessary condition for it to be displayed in the store), it will not be charged when selected as a gift.
Apart from this, it's worth pointing out that cases exist in which a gift is removed from the cart without any apparent reason. The reasons are the same as those that make this SKU appear as "unavailable": price or inventory not being registered, as well as registration not being activated.
To get around this, just check the three items on the platform, the same way you would do for an "unavailable" gift.