Decoding Shopify's Line Item Properties: When App Add-ons Appear Twice in Your Orders

Hey fellow store owners! Let's talk about something that's been a bit of a head-scratcher for many of us, especially when we're trying to offer cool product customizations or add-ons using third-party apps. You know that moment when you look at your checkout summary or an order in the admin, and suddenly, things look… duplicated? Or cluttered with internal notes you didn't expect customers to see?

Recently, a lively discussion popped up in the Shopify community, initiated by Liri, about exactly this issue. They were seeing internal app-generated line item properties, like _cl_options, showing up in the checkout, admin order view, and even third-party invoicing tools. It was causing confusion for buyers and clutter for merchants. Let's dive into what the community experts had to say and what we can do about it.

Understanding the 'Duplication' in Checkout

Liri's main concern was seeing products appear twice during checkout, often under an expandable section labeled “part of product XY.” This is super confusing for customers, right? It makes them wonder if they’re being charged twice or if something’s gone wrong.

Community members like Maximus3 and tim_tairli quickly pointed out that this behavior often stems from how certain apps handle product add-ons, particularly those using “nested cart lines”. Essentially, these apps might use the original product itself as a “child” or component to support a paid option. Shopify, in turn, simply displays the product structure that the app has created.

Maximus3 shared some helpful screenshots illustrating this. Here’s an example of how a “Side Pocket” add-on might cause a product to appear duplicated:

And how it looks when the add-on isn't selected:

So, the key takeaway here is: Shopify isn't duplicating your product; it's just displaying the structure that your app is sending it.

The “Hidden” Property Rule for Checkout

Now, here’s where it gets interesting. Lumine, another helpful community member, clarified a crucial point about line item properties in the checkout summary. Properties whose names start with an underscore (like _cl_options, _cl_options_price, etc.) are actually designed to be hidden from the cart and checkout summary. If these “underscored” properties are still showing up, it’s a strong indication that the app isn’t correctly implementing this “hide” behavior.

Liri's screenshot of the checkout showed exactly this – the product image and selected options displayed again, even without the _cl_options listed directly next to it, implying a structural issue rather than just a property display:

The Admin Order View & Third-Party Tools: A Different Story

While the checkout display might be an app issue, the consensus from the community is clear about the Shopify admin order view and third-party tools: all line item properties will show up here, by design. Maximus3 emphasized that this is Shopify’s way of maintaining a “permanent record” of what was ordered, capturing intent and context. You can’t natively control or hide these properties in the admin.

Liri highlighted how this can lead to an “extremely confusing and cluttered” admin view, especially with complex products generating multiple lines of internal properties like:

_cl_options_clox2gadfk78
_cl_options_id:1782310808459
_cl_options_price:500
_cl_options_currency:EUR
_cl_options_price_base:500

For third-party invoicing tools, the visibility depends on how they retrieve data via the Shopify API and their own filtering capabilities. Liri noted that often, these tools also can’t hide them.

Maximus3 also reminded us that while the underscore is for checkout rendering visibility, it doesn’t magically hide things everywhere else. If your email templates use a loop like {% for property in item.properties %}, they’ll show up there too. It’s our responsibility as merchants to use these properties wisely and understand their visibility.

What Can You Do? Actionable Steps!

So, facing this situation, what are the best steps to take? The community discussion points us in a few clear directions:

  1. Review Your App’s Configuration: Sometimes, the app itself offers settings that can mitigate the confusion.
    • Adjust Product Titles: As tim_tairli suggested, some apps might allow you to modify the “parent” product title to be more descriptive, like “Customized Skirt” instead of just “Women’s linen skirt” followed by the same title for the child product.
    • Explicitly Display Add-ons: If possible, configure the app not to hide the add-on product. This might mean the add-on appears as a separate line item, but it could offer customers a clearer understanding of the order and price structure, rather than a confusing duplication. Check your app's knowledge base, like the Cloudlift App Knowledge Base “Bundle” section, for such options.
  2. Contact Your App Developer: This is the most crucial step for the checkout display issue.
    • Explain that properties starting with an underscore (_) are appearing in the checkout summary, even though Shopify’s design intends for them to be suppressed.
    • Mention the “nested cart lines” behavior and how it’s leading to product duplication in the customer-facing checkout.
    • Ask if they can adjust their app’s logic or implementation to correctly hide these internal properties or restructure how the nested components are displayed in checkout.
  3. Manage Expectations for Admin & Third-Party Tools: For the Shopify admin order view and many third-party integrations, you’ll likely have to live with the internal properties being visible. They are part of the immutable order record. Focus your efforts on ensuring the customer-facing checkout is clear and intuitive.

It’s a bit of a balancing act, isn’t it? We want the power of customization apps, but we also need a clean, clear customer experience and a manageable backend. The key takeaway from this community discussion is that while Shopify provides the framework, the granular display of these complex app-generated line items often falls on the app developers themselves. Don't hesitate to reach out to them with specific feedback, armed with the knowledge of how Shopify *should* handle these “hidden” properties. Your feedback helps them improve their apps for everyone!

Share:

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases