New Order Printer App - Syntax Error

Topic summary

A user encountered a syntax error in Shopify’s new Order Printer app with previously functional code. The problematic line was {% if SKUlist | uniq | size == 1 %}, causing the app to crash with a “Syntax not valid” error.

Key Points:

  • The code worked perfectly in the old Order Printer but fails in the new version
  • User expressed frustration that Shopify replaced a working system with one offering no added value
  • Shopify support directed them to the community forum for help

Resolution:
After initial frustration and no immediate community response, the user worked with a colleague and used ChatGPT to troubleshoot. Within an hour, they successfully fixed all issues and implemented improvements to their packing slip template.

The discussion highlights compatibility issues when migrating custom Liquid code from Shopify’s legacy Order Printer to the new app version.

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

Hey,

Shopify’s new order printer is such a disappointment to me. Why fix something that isn’t broken and replace it with something offering no added value?

This code worked beautifully earlier, now it makes the New Order Printer crash; Syntax not valid on line XX.

This is the line: {% if SKUlist | uniq | size == 1 %}

And here’s the full code:


Order date {{ order.created_at | date: “%d.%m.%y” }}

Packing slip for order {{ order.order_name }}

Notes: {{ order.note }}




{% if order.shipping_address %}

Shipping Address

{% if order.shipping_address.company %} {{ order.shipping_address.company }}
{% endif %} {{ order.shipping_address.name }}
{{ order.shipping_address.street }}
{{ order.shipping_address.province_code }} {{ order.shipping_address.zip | upcase }} {{ order.shipping_address.city }}
{{ order.shipping_address.country }}
{% endif %}

Shipment Detail

{%- comment -%} Removed by Adam B ( Shopify Theme Support) May 24 2023 {%- endcomment -%} {% assign totalProductsOrdered = 0 %} {% assign totalProductsFulfilled = 0 %} {% assign sizeUnfulfilled = order.unfulfilled_line_items | size%} {% assign sizeFulfilled = order.fulfilled_line_items | size%}

{% if sizeFulfilled != 0 and sizeUnfulfilled != 0%}

{% endif %}

{% if sizeFulfilled != 0 %}
{% for line_item in fulfilled_line_items %}
{% if line_item.quantity != 0 %}

{% assign SKUlist = SKUs | strip %}
{% assign fulfilled_qty = line_item.quantity | minus: line_item.fulfillable_quantity %}
{% if SKUlist | uniq | size == 1 %}
{% assign length = SKUs | size %}
{% for i in (1..length) %}
{% assign totalProductsFulfilled = totalProductsFulfilled | plus: fulfilled_qty %}
{% assign totalProductsOrdered = totalProductsOrdered | plus: fulfilled_qty %}
{% endfor %}
{%- comment -%}Removed by Adam B ( Shopify Theme Support) May 24 2023

{%- endcomment -%}

{% else %}
{% assign optionNumber = 1 %}

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

{% if sizeUnfulfilled != 0 and sizeFulfilled != 0 %}

{% endif %}

{% if sizeUnfulfilled != 0 %}
{% for line_item in unfulfilled_line_items %}
{% if line_item.quantity != 0 %}

{% assign SKUlist = SKUs | strip %}
{% if SKUlist | uniq | size == 1 %}
{% assign length = SKUs | size %}
{% for i in (1..length) %}

{% comment %} Hidden by Sarah S. @ Shopify Theme Support | February 8 2023
{{ line_item.variant.option1 }}

{% endcomment %}

{% assign totalProductsOrdered = totalProductsOrdered | plus: line_item.fulfillable_quantity %}
{% endfor %}
{%- comment -%}Removed by Adam B ( Shopify Theme Support) May 24 2023

{%- endcomment -%} {% else %} {% assign optionNumber = 1 %} {% endif %} {% endif%} {% endfor %} {% endif %} {%if sizeFulfilled == 0 %} {% else %} {% endif %}
Image SKUSizeQuantity Item
Fulfilled:
{{ line_item.image | img_url: 'thumb' | img_tag }} {% assign SKUs = line_item.sku | split: '&' %} {% for sku in SKUs %} {{ sku }}
{% endfor %}

{% comment %} Edit by Sarah S. @ Shopify Theme Support | February 6 2023 {% endcomment %}
{{ line_item.variant.option3 }}


{% for i in (1..length) %}
{{ fulfilled_qty }}

{% endfor %}

{% comment %} Hidden by Sarah S. @ Shopify Theme Support | February 8 2023 {% for option in line_item.product.options %} {% assign totalProductsOrdered = totalProductsOrdered | plus: fulfilled_qty %} {% assign totalProductsFulfilled = totalProductsFulfilled | plus: fulfilled_qty %}

{% if optionNumber == 1 %}
{{ line_item.variant.option1 }}
{% elsif optionNumber == 2 %}
{{ line_item.variant.option2 }}
{% elsif optionNumber == 3 %}
{{ line_item.variant.option3 }}
{% endif %}


{% assign optionNumber = optionNumber | plus: 1 %}

{% endfor %}
{% endcomment %}

{% comment %} Hidden by Sarah S. @ Shopify Theme Support | February 8 2023
{% comment %} Added by Mike V. at Shopify Theme Support November 30 2020 {% endcomment %}
{% assign variant_titles = line_item.variant.title | replace: ‘/’, ‘
’ %}
{{ variant_titles }}
{% endcomment %}
{% comment %} Edit by Sarah S. @ Shopify Theme Support | February 6 2023 {% endcomment %}
{{ line_item.variant.option3 }}

{% for option in line_item.product.options %} {{ fulfilled_qty }}
{% endfor %}
{{ line_item.product_title }}
Unfulfilled: {{test}}
{{ line_item.image | img_url: 'thumb' | img_tag }} {% assign SKUs = line_item.sku | split: '&' %} {% for sku in SKUs %} {{ sku }}
{% endfor %}

{% comment %} Hidden by Sarah S. @ Shopify Theme Support | February 8 2023
{% comment %} Added by Mike V. at Shopify Theme Support November 30 2020 {% endcomment %}
{% assign variant_titles = line_item.variant.title | replace: ‘/’, ‘
’ %}
{{ variant_titles }}
{% endcomment %}

{% comment %} Edit by Sarah S. @ Shopify Theme Support | February 6 2023 {% endcomment %}
{{ line_item.variant.option3 }}

{% for i in (1..length) %}
{{ line_item.fulfillable_quantity }}

{% endfor %}

{% for option in line_item.product.options %} {% assign totalProductsOrdered = totalProductsOrdered | plus: line_item.fulfillable_quantity %}

{% if optionNumber == 1 %}
{{ line_item.variant.option1 }}
{% elsif optionNumber == 2 %}
{{ line_item.variant.option2 }}
{% elsif optionNumber == 3 %}
{{ line_item.variant.option3 }}
{% endif %}

{% assign optionNumber = optionNumber | plus: 1 %}
{% endfor %}

{% comment %} Hidden by Sarah S. @ Shopify Theme Support | February 8 2023
{% comment %} Added by Mike V. at Shopify Theme Support November 30 2020 {% endcomment %}
{% assign variant_titles = line_item.variant.title | replace: ‘/’, ‘
’ %}
{{ variant_titles }}
{% endcomment %}
{% comment %} Edit by Sarah S. @ Shopify Theme Support | February 6 2023 {% endcomment %}
{{ line_item.variant.option3 }}

{% for option in line_item.product.options %} {{ line_item.fulfillable_quantity }}
{% endfor %}
{{ line_item.product_title }}
Total items: {{ totalProductsOrdered }}Total items: {{totalProductsFulfilled}} of {{ totalProductsOrdered }}



{{ shop.name }}
by sCHNOw Sàrl
{{ shop.address.address1 }}
{{ shop.address.province_code }} {{ shop.address.zip | upcase }} {{ shop.address.city }}
{{ shop.address.country }}

If you have a question, mail us at {{ shop.email }}

Thank you in advance for any help. Shopify chat is as usual useless.

Paal

Thank you Shopify support for suggesting to post my challenge here. “You’ll see, you’ll get immediate help”.

No pun intended to contributors (I’ve had great help here), this is a message of disappointment to Shopify support. Letting you down, again.

And after having felt frustrated and bitched a bit in public (above), I grabbed a great coffee, sat down with my colleague and challenged him to challenge ChatGPT. 1 hours later…all fixed with improvements in our packing slip.

ChatGPT - my new 1st level support. Even 2nd level I guess. Or higher.