Fix theme options not saved (sticky cart)
If the options are not saved when adding to the cart, follow the steps below to fix the setup.
Note: first make sure that the options are actually not saved. Try the checkout to see if the options are visible there:

If you can see the options on the checkout but not on the cart, your theme might simply not show them, in this case you can visit the following guide: Options on cart page
If the options are not listed on the checkout, the setup is not working as intended. This can be due to two reasons:
Sticky Cart

Sticky add to cart buttons at the bottom of the page on most themes only add the product variant to the cart, this completely skips all the custom options entered on the product page.
Theme does not support saving options
A very small percentage of themes to not support saving custom line item properties.
This is a standard feature of shopify, most professional theme will support this out of the box.
The customer came back through an abandoned cart email
If the options are missing on some orders while the same product works when you test it yourself, check how the customer reached the cart.
Shopify's Cart Abandoned automation (and the equivalent flow in Klaviyo and other email tools) sends a recovery link of the form /cart/<variant id>:1 . That link rebuilds the cart from the product and the quantity only — it carries no line item properties, so every option value the customer selected, and any file they uploaded, is gone. The customer is dropped straight into the cart, so the product page never runs and there is nothing for the app to save.
This is not a theme or app problem, and it affects every options app in the same way.
Fix: in Shopify admin, disable the Cart Abandoned automation and use Checkout Abandoned instead. A checkout recovery link restores the full checkout, including custom options and uploads. Very little recovery is lost in practice, because the customer's email address is normally captured at checkout anyway.
Add to cart fix
To make sure all custom options are saved in all cases, the app can use its own add to cart logic when an add to cart button is clicked.
On your theme, find the location of the specific "Add to cart" button, find a wrapper DIV or add a new element around the button and add the attribute data-live-cart-add to the element:
<div data-live-cart-add> <button type="submit" name="add">Add to cart</button> </div>
The app will then look for this attribute and use it's own add to cart logic.
Only use this when options are actually not saved
The attribute makes the app take over the add to cart process, which means the theme's own add to cart handler no longer runs. Do not add it as a general precaution. Apply it only on a button where you have confirmed that the options are missing from the checkout.
Side effects on themes with a cart drawer
Because the theme's handler is skipped, on a theme with an AJAX cart or a slide-out cart drawer the customer is redirected to the /cart page instead of the drawer opening.
If you need the attribute and want the drawer back, use the window.clOnCartUpdate hook to re-open and refresh your theme's drawer after the app has added the item.
You can add it to your theme's code or in the App global JS setting and make sure to replace the selector with your theme's drawer trigger:
window.clOnCartUpdate = () => {
const cartDrawerButton = document.querySelector('.js-drawer-open-cart');
if (cartDrawerButton) {
cartDrawerButton.click();
}
}
Removing the attribute
The attribute is not required for the app to save options, prices or line item properties. On most themes the options are saved through the theme's normal add to cart. If you inherited it from a previous setup, duplicate your theme, remove the wrapper there and test the full flow (options saved, price adjustments, drawer, tracking) before changing your live theme. A sticky add to cart button usually forwards to the main add to cart button, so removing the attribute from the main button is normally enough.