Skip to main content

Troubleshooting

Order fulfillment requests are not going to the desired location:

  • Check the location has shipping rates defined for the order's destination.
  • Check that another location hasn't been given shipping order routing priority.
  • Check the location has product inventory allocated for all products being ordered.

More detail about setting up your location fulfillments in Shopify.

Shipping notifications to the customer are missing the tracking links:

This is usually caused by the shipping company name used in the 3PL partner's system not being an exact match against any of the Shopify supported tracking companies. Changing the company name in the 3PL partner's system to match the exact name used by Shopify should resolve the issue.

note

For example, in New Zealand, Shopify only recognizes the local shipping company name New Zealand Post. Alternative names or variations, such as Aramex or NZ Post, are ignored during order fulfillment updates and effectively discarded by Shopify.

When the 3PL partner's system is providing tracking urls but the shipping notifications are being sent without links on the tracking numbers, this will require the Shipping confirmation to be edited to remove any references to fulfillment.tracking_company in the Liquid template. This template can be found under Settings > Notifications > Order processing.

The default Shipping confirmation notification will add the tracking number link using the following Liquid template section:

{% if fulfillment.tracking_numbers.size == 1 and fulfillment.tracking_company and fulfillment.tracking_url %}
{{ fulfillment.tracking_company }} tracking number: <a href="{{ fulfillment.tracking_url }}">{{ fulfillment.tracking_numbers.first }}</a>
{% elsif fulfillment.tracking_numbers.size == 1 %}
Tracking number: {{ fulfillment.tracking_numbers.first }}
{% else %}
{{ fulfillment.tracking_company }} tracking numbers:<br />
{% for tracking_number in fulfillment.tracking_numbers %}
{% if fulfillment.tracking_urls[forloop.index0] %}
<a href="{{ fulfillment.tracking_urls[forloop.index0] }}">
{{ tracking_number }}
</a>
{% else %}
{{ tracking_number }}
{% endif %}
<br/>
{% endfor %}
{% endif %}

Removing references to fulfillment.tracking_company, this Liquid template section becomes:

{% if fulfillment.tracking_numbers.size == 1 and fulfillment.tracking_url %}
Tracking number: <a href="{{ fulfillment.tracking_url }}">{{ fulfillment.tracking_numbers.first }}</a>
{% elsif fulfillment.tracking_numbers.size == 1 %}
Tracking number: {{ fulfillment.tracking_numbers.first }}
{% else %}
Tracking numbers:<br />
{% for tracking_number in fulfillment.tracking_numbers %}
{% if fulfillment.tracking_urls[forloop.index0] %}
<a href="{{ fulfillment.tracking_urls[forloop.index0] }}">
{{ tracking_number }}
</a>
{% else %}
{{ tracking_number }}
{% endif %}
<br/>
{% endfor %}
{% endif %}

I need to manually update an order fulfillment request:

Shopify provides instructions for manually cancelling, reverting and fulfilling order fulfillment requests.