Skip to main content

Design your own packing slip

Decide how your packing slip should be designed using our Document Designer.

Updated yesterday

This feature requires Shipmondo Pro. See the full feature list.

When you print packing slips to include in your shipments, Shipmondo provides a fixed default template for the document design.

However, you also have the option to design your own packing slip using our Document Designer.

Design packing slip

Log in to your Shipmondo account and go to Settings > Document Designer.

Click Packing slip, and the designer will open.

In the designer, you will see Shipmondo’s standard template code, which you can now modify. You can either design your own layout from scratch or use one of the other packing slip design templates that we have created.

You can find these by clicking the three dots in the top-right corner. When you click Import document design, four different design templates will appear; Standard, Boxed, Extended, and Image.

Below, the Image design template is shown as an example.

While working, you can continuously generate a preview to see whether your changes have been applied and displayed correctly. The preview is shown as a PDF file.

When you are satisfied, click Save, and your new template will now be used as the default for your packing slips.

Examples of customizations

You can design your packing slip exactly the way you want. However, you can also make small adjustments to the original design. Below are a few examples of what can be changed and how to do it.

The examples are based on the Image design template.

Liquid code that adds the recipient’s email address:

{{ order.ship_to.email }}

Code block after the above code has been inserted under <section class=”order-details”>:

<section class="order-details">
<div>
<h3>{{ "receiver" | translate }}</h3>
{{ order.ship_to.name }}{% if order.ship_to.attention != blank %} / {{ order.ship_to.attention }}{% endif %}<br>
{{ order.ship_to.address1 }}<br>
{% if order.ship_to.address2 != blank %}{{ order.ship_to.address2 }}<br>{% endif %}
{{ order.ship_to.country.code }}-{{ order.ship_to.zipcode }} {{ order.ship_to.city }}<br>

<!-- Adding receiver's email -->
{{ order.ship_to.email }}<br>

{{ order.ship_to.mobile }}
</div>
..

Result (packing slip header):

Example 2: You can add sales prices to the item lines by adding a new column to the table, under <table>.

Code to add a new column header for product price to the table:

<th class="num" style="width: 22mm;">{{ "price" | translate }}</th>

Code that adds the product price to the item lines:

<td class="num">{{ item_line.unit_price | format_currency: item_line.currency_code }}</td>

Code block after the above code has been inserted under <table>:

<table>
<thead>
<tr>
<th style="width: 22%;">{{ "sku" | translate }}</th>
<th style="width: 20mm;"></th>
<th>{{ "item_name" | translate }}</th>
<th class="num" style="width: 14mm;">{{ "quantity" | translate }}</th>

<!-- Adding a price column header to the table -->
<th class="num" style="width: 22mm;">{{ "price" | translate }}</th>
</tr>
</thead>
<tbody>
{% for item_line in fulfillment.item_lines %}
<tr>
<td>{{ item_line.sku }}</td>
<td>{% image item_line %}</td>
<td>
{{ item_line.name }}{% if item_line.variant_code != blank %} ({{ item_line.variant_code }}){% endif %}
{% if item_line.custom_product_data != blank %}
<div class="product-data">
{% for product_data in item_line.custom_product_data %}
<div class="product-data-item">{{ product_data }}</div>
{% endfor %}
</div>
{% endif %}
</td>
<td class="num">
{% if item_line.quantity != item_line.shipped_quantity %}
{{ item_line.shipped_quantity }} / {{ item_line.quantity }}
{% else %}
{{ item_line.shipped_quantity }}
{% endif %}
</td>

<!-- Adding product price to the item lines -->
<td class="num">{{ item_line.unit_price | format_currency: item_line.currency_code }}</td>
</tr>
{% endfor %}
</tbody>
</table>

Result (item lines on the packing slip):

Example 3: To make returns easier, you can add a QR code that customers can use to return their order.

Code block that adds a QR code for the return portal:

<style>
.barcode-container {
margin-top: 6.5mm;
text-align: center;
break-inside: avoid;
page-break-inside: avoid;
}
</style>

<div class="barcode-container">
<p>Thank you for shopping with us.</p>
<p>To return an item, please scan the QR code below.</p>

{%- comment -%}
Important!
Update return_portal_base_url to the correct URL for your return portal
{%- endcomment -%}

{% assign return_portal_base_url = 'https://return-demo.shipmondo.com/return-united-kingdom-4700343' %}

{%- assign order_num = order.number | url_encode -%}
{%- assign email_enc = order.ship_to.email | url_encode -%}

{%- assign return_portal_url =
return_portal_base_url
| append: '?order_number=' | append: order_num
| append: '&email=' | append: email_enc
| append: '&search=true'
-%}

{% qr_code return_portal_url %}
</div>

Result (packing slip footer):

In the example below, the note “Thank you …” is added as static text. However, you can create a translation key (see the next section) so that the text follows the document language (the recipient’s language).

Language management for documents

It is also possible to control the language of the packing slip using our translation tool.

Here, you can enable multiple languages if you operate in multiple markets, and you can both create and translate specific translation keys using the translation tool.

Examples of translation keys for your packing slip could be product_image, price, and customer.

If you would like to learn more about our translation tool and how to use it, you can read much more in our guide.

Did this answer your question?