Create efficient picking lists

Use the Order Printer app to create efficient picking lists for your Shopify store

By  Panos Voulgaris
Estimated Reading Time  about 3 minutes

If you run a small e-commerce business, but still process a large number of orders daily, then the following issue might be a bit too familiar:

You get your order printed out to prepare the products for shipping, go through the shelves of your warehouse to pick them out, but end up going back and forth because you missed one on the way back. The products in your order sheet aren’t sorted, so you skipped an SKU that was in front of you.

If that sounds all too familiar, we feel you. It’s definitely a minor issue, but can be very frustrating and if your orders have more items than average, then you’re bound to lose time picking each product up as well. The line items in an order are not sortable, and are displayed in the way the customer added them to their cart. Since a shopping experience isn’t necessarily linear, that means that they probably didn’t add them in the order you’d prefer.

Well, fret not, because there might just be an easy solution and, no, we’re not talking about an additional app. Just a simple Order Printer template will do it. You can add it to your own list of templates and you’ll have a perfectly viable solution, where the products are sorted by SKU, so most similar items/brands should be next to each other. We’ve also added a checkbox to the right, and a total quantity number at the bottom, so that you can quickly make sure that all the items are accounted for.

This solution is for small businesses (with orders with multiple items) that use Shopify’s inventory system, instead of a dedicated ERP/WMS. It replicates the picking list features of these systems, without the need for apps, or costly alternatives.

All you have to do is install Shopify’s Order Printer app (if you don’t use it already) and click on Add template. Then, just copy and paste the code below, assign a name for your template (we call it “Picking List”) and then save. Now every time you need to pick your items for an order fulfillment you can just print out this list and get the job done with less back and forth inside your warehouse.

With a few tweaks you can also have it sort by different parameters, to better reflect you own warehouse’s set up.

Here’s the code:


<h1>{{ order_name }}</h1>
Created at: {{ created_at }}
{% capture pickorder %}
{% for line_item in line_items %}
{{ line_item.sku }}^{{ line_item.title }}^{{ line_item.quantity }}
{% unless forloop.last %}#{% endunless %}
{% endfor %}
{% endcapture %}
{% assign pickorder = pickorder | split: '#' | sort %}
{% assign totalqty = 0 %}

<th width="20%">SKU</th>
<th width="50%">Product</th>
<th width="20%">QTY.</th>
<th width="10%">✔</th>

{% for order in pickorder %}
{% assign item = order | split: '^' %}
{% assign qty = item[2] | plus: 0 %}
{% assign totalqty = totalqty | plus: qty %}
<td width="20%">{{ item[0] }}</td>
<td width="50%"><small>{{ item[1] }}</small></td>
<td width="20%">{{ item[2] }}x</td>
<td width="10%"></td>
{% endfor %}
<th style="text-align: left;" width="70%" colspan="2">TOTAL ITEMS</th>
<td width="30%"><strong>{{ totalqty }}</strong></td>

h1 { margin-bottom: 50px; }

table {
border: 1px solid black;
text-align: center;

tr, th, td {
border: 1px solid black;
padding: 10px !important;
text-align: center;



Looking for ways to run your store more efficiently and save valuable time and money? We might have a few ideas to make your life easier.

Panos Voulgaris Founder
Post written by Panos Voulgaris
Panos has been working with brands and companies for the past decade, starting with personalized experiences in the fields of interior design, architecture and branding, shifting gears mid-way to re-establish MALVI as a 360º design and communication agency, incorporating every part of a brand's needs; from space to visual design, marketing and advertising, content creation, product design and strategy consulting, the agency helps companies grow and evolve with design in mind.
Opens Function() Messenger Chat in a new window