Why does only the first product variant get added to my cart?

Topic summary

A Shopify store owner is experiencing a cart functionality issue where only the first product variant gets added to the cart, regardless of which variant customers select. The product has two options, but the system consistently defaults to the top variant.

Key Details:

  • The issue occurs on a specific product page (macrame workshop)
  • The store uses the “G:Variant + Color Swatch” app
  • Cart template code was shared, though it appears corrupted/reversed in the post

Diagnosis & Recommendation:
A community member identified that the Globo app is generating the error (confirmed via screenshot). They recommend:

  • Contacting the Globo app support directly for debugging
  • Checking JavaScript files rather than the Liquid template section
  • Note that third-party app code is difficult for others to troubleshoot

Status: The issue remains unresolved. Another user reported experiencing the same problem and requested assistance with their site as well.

Summarized with AI on November 24. AI used: claude-sonnet-4-5-20250929.

Hi everyone,

I’m having trouble adding a variant to my cart.. It continues to only add the first variant. There are only two options on the product and it will only add the top variant. I’m not too familiar with code or anything in this realm so I definitely need some help with this! Thank you!

Here’s the link: https://theknotterydesigns.com/products/macrame-workshop-with-thorn-brewing

I’m also using the app G:Variant + Color Swatch

{% comment %}

For info on test orders:

{% endcomment %}

{% if cart.item_count > 0 %}

{{ 'cart.general.title' | t }}


{{ 'cart.label.quantity' | t }}
{{ 'cart.label.total' | t }}

{% comment %}
Loop through products in the cart
{% endcomment %}
{% for item in cart.items %}

{{ item.product.title }} {% unless item.product.has_only_default_variant %}

{{ item.variant.title }}

{% endunless %}

{% if settings.product_vendor_enable %}

{{ item.vendor }}

{% endif %}

{% unless item.selling_plan_allocation == nil %}

{{ item.selling_plan_allocation.selling_plan.name }}

{% endunless %}

{% assign property_size = item.properties | size %}
{% if property_size > 0 %}
{% for p in item.properties %}
{% assign first_character_in_key = p.first | truncate: 1, ‘’ %}
{% unless p.last == blank or first_character_in_key == ‘_’ %}
{{ p.first }}:

{% if p.last contains ‘/uploads/’ %}
{{ p.last | split: ‘/’ | last }}
{% else %}
{{ p.last }}
{% endif %}


{% endunless %} {% endfor %} {% endif %}

{{ 'cart.general.remove' | t }}

{{ ‘cart.label.quantity’ | t }}

{%- if item.original_line_price != item.final_line_price -%}
{{ ‘products.general.regular_price’ | t }}
{{ item.original_line_price | money }}
{{ ‘products.general.sale_price’ | t }}
{{ item.final_line_price | money }}
{%- else -%}
{{ item.original_line_price | money }}
{%- endif -%}

{%- if item.unit_price_measurement -%}
{{ ‘products.general.unit_price’ | t }}

{%- capture unit_price_separator -%}
/ {{ ‘general.accessibility.unit_price_separator’ | t }} 
{%- endcapture -%}
{%- capture unit_price_base_unit -%}
{%- if item.unit_price_measurement.reference_value != 1 -%}
{{- item.unit_price_measurement.reference_value -}}
{%- endif -%}
{{ item.unit_price_measurement.reference_unit }}
{%- endcapture -%}

{{ item.unit_price | money }}{{- unit_price_separator -}}{{- unit_price_base_unit -}}

{%- endif -%}

{%- if item.line_level_discount_allocations != blank -%}

    {%- for discount_allocation in item.line_level_discount_allocations -%}
  • {{ discount_allocation.discount_application.title }} (-{{ discount_allocation.amount | money }})
  • {%- endfor -%}
{%- endif -%}
{% endfor %}
{%- comment -%} Optional, add a textarea for special notes - Your theme settings can turn this on or off. Default is on. - Make sure you have name="note" for the message to be submitted properly {%- endcomment -%} {% if settings.cart_notes_enable %}
{{ 'cart.general.note' | t }} {{ cart.note }}
{% endif %}
{%- if cart.cart_level_discount_applications != blank -%}
{%- for discount_application in cart.cart_level_discount_applications -%} {{ 'customer.order.discount' | t }}:{{- discount_application.title -}} -{{ discount_application.total_allocated_amount | money }} {%- endfor -%}
{%- endif -%}

{{ 'cart.general.subtotal' | t }}

{{ cart.total_price | money }}

{%- capture taxes_shipping_checkout -%}
{%- if cart.taxes_included and shop.shipping_policy.body != blank -%}
{{ ‘cart.general.taxes_included_and_shipping_policy_html’ | t: link: shop.shipping_policy.url }}
{%- elsif cart.taxes_included -%}
{{ ‘cart.general.taxes_included_but_shipping_at_checkout’ | t }}
{%- elsif shop.shipping_policy.body != blank -%}
{{ ‘cart.general.taxes_and_shipping_policy_at_checkout_html’ | t: link: shop.shipping_policy.url }}
{%- else -%}
{{ ‘cart.general.taxes_and_shipping_at_checkout’ | t }}
{%- endif -%}
{%- endcapture -%}

{{ taxes_shipping_checkout }}

{{ 'cart.general.update' | t }} {{ 'cart.general.checkout' | t }}

{% if additional_checkout_buttons and settings.cart_type != ‘drawer’ %}

{{ content_for_additional_checkout_buttons }}
{% endif %}

{% else %}
{% comment %}
The cart is empty
{% endcomment %}

{{ 'cart.general.title' | t }}


{{ 'cart.general.empty' | t }}

{{ 'cart.general.continue_browsing_html' | t: link: routes.all_products_collection_url }}

{{ 'cart.general.cookies_required' | t }}

{% endif %}

@theknottery ,

Something is messing up the script code. It would not be in the liquid section. You have to look on your js file.

Sorry.. Unfamiliar with code :confused:

Where would I find the JS file?

Hi @theknottery ,

I have checked and the error is generated by Globo app.

So it will be difficult for someone else to edit or debug it for you. I recommend you contact the app directly, they will help you check it quickly.

Good morning @LitExtension

I’m currently having the same issue. Will you be will to take a look at my website as well? www.TrueAngelicBeauty.com