Allow hiding/filtering internal Line Item Properties in Checkout Order Summary and Admin Order View

When using apps like “Live Product Options” that add internal properties to line items (e.g., _cl_options, _cl_options_currency, _cl_options_price), these properties appear in three places that merchants on the Basic plan apparently cannot control:

  1. In the checkout order summary (visible as an expandable section showing “product or option duplication”—which, in my opinion, is absolutely disastrous and confusing for the customer).
  2. In the order view within the Shopify admin (extremely confusing and cluttered when complex products result in 5–10 extra lines such as:
    _cl_options_clox2gadfk78
    _cl_options_id:1782310808459
    _cl_options_price:500
    _cl_options_currency:EUR
    _cl_options_price_base:500
  3. In third-party invoicing tools (e.g., Billbee) that retrieve data via the Shopify API, where these options cannot be hidden. Although properties starting with an underscore (_) are supposed to be hidden in email notifications, this filter does not work consistently across all areas.

Please provide merchants with a native way to filter or hide specific line item properties (e.g., based on a prefix like cl) in the checkout order summary and the admin order view—without requiring Shopify Plus!

I think you are confusing what you can do, what your app is doing, and what shopify controls…

  1. All line item properties show in the Order page, whether they are hidden in cart/checkout or not. This is supposed to happen. You cannot control this. It’s embedded into the way the line item properties work.
  2. When writing the code to capture the property in html, and you put something like
    <input type="hidden" name="properties[Source]" value="homepage-hero">
    or
    <input type="hidden" name="properties[_campaign]" value="summer-drop">
    then it will be silently captured without being visible to the customer, depending on which you use.
  3. It is up to whoever writes and edits the code to establish whether or not it’s hidden in cart/checkout.
  4. The name of the property is controlled by whomever wrote the code. This means if you are using an app to do this, it’s on them.
  5. Wherever there is liquid code to display line item properties, they will show. So if your emails includes something like
    {% for property in item.properties %}
    {{ property.first }}: {{ property.last }}
    {% endfor %}
    then it will obviously show them. The underscore is only for checkout rendering visibility. In all other places, like the order screen and emails, line item properties are meant to be shown. They are immutable, capturing intent and context. It is your responsibility to use them wisely.
  6. Bottom line - if you have an issue with what your app does, you should tell your app developers. Shopify’s only responsibility in this case is to ensure that line item properties go through and are attached to the order, and shown on the order screen.

maximus is right that the admin order page always shows every line item property, that part you genuinely can’t hide, it’s the permanent record of what was ordered.

the checkout order summary is a different surface though. properties whose name starts with an underscore (_cl_options and friends) are meant to be hidden from the cart and checkout summary, so if those are still showing it’s worth looking at how the app injects them, because a correctly underscored property shouldn’t render there. that’s a Live Product Options behaviour to raise with them, not a Shopify setting you’re missing.

so the split is: admin view, no way to hide, by design. checkout summary, should already be suppressed by the underscore, so that points back at the app. is it the checkout summary or the admin view that’s actually bothering your customers?

Thanks for your feedback!
I see – so that means these add-ons can’t be hidden in my order overview. Okay, while that’s a bit annoying and makes things look cluttered, I can live with it.

My main issue is that the product appears twice during checkout (in an expandable section labeled “part of product XY”). There are no _cl_options listed there, but the entire product – including the product image and selected options – is displayed again right underneath:

According to app support, this is generated by Shopify and cannot be hidden.
I wonder why this happens and if I’m the only one facing this problem. It’s simply very confusing for the buyer, and I don’t really understand the point of it either.

Best regards,
Liri

That is because you have a Side Pocket add on:

Looks like your app is using the original product itself as a child/component to support the paid option. That is why it appears as duplicated in checkout. The app’s paid option/transform logic is causing the original product line to be represented as a nested component, which Shopify then displays.

You can verify this by not checking the Side Pocket option. Then it does not appear in checkout:

In any case, this is caused entirely by the app. This isn’t Shopify duplicating the product. Shopify is merely displaying the product structure created by the app.

To provide a bit more info on this:

The app seem to use “nested cart lines”

This allows them to add the add-on price to the price of the main product.

I guess the app can potentially be configured (or modified by the developers) so that “parent” product title is not the same as the base child product – this will remove confusion.

Say:

 "Customized skirt"
   "Women's linen skirt with button placket"

may look a bit better…

Alternatively, configure it to not hide the add-on product – this would give customers better understanding of the order and price structure.

Of course, I have no idea how exactly this is done, but App dox have an explanation here – Checkout Extensibility - Cloudlift App Knowledge Base – just scroll down to “Bundle”