Why isn't the customer's phone number showing up in the packing slip?

Topic summary

Packing slips are missing customer phone numbers, especially for POS (point of sale) orders. Online orders populate {{ shipping_address.phone }}, but POS orders don’t, and {{ customer.phone }} returns blank in packing slips despite phone being required at checkout.

Update/solution: The OP found that {{ customer.phone }} doesn’t work in packing slips and used a Liquid fallback that did: check billing_address.phone first, then order.customer.phone, and finally shipping_address.phone. This made the phone appear more reliably across order types.

Key context: This concerns the packing slip template and Shopify Liquid variables (billing_address, shipping_address, order.customer). The behavior suggests POS phone data may not be saved to the shipping address or customer profile consistently.

Open questions: Whether shipping phone numbers are added to customer profiles for POS orders, and which field merchants should use in POS to ensure it prints. Another participant asked where to insert the code snippet (implementation guidance not yet provided).

Status: Partial workaround shared; thread remains open with implementation and data-mapping questions unresolved.

Summarized with AI on December 15. AI used: gpt-5.

I am having some issues with having the customers phone number show up in the packing slip. Client prints it out for all orders: POS and online (POS is more of a phone call or someone comes in, then they ship or customer returns later for items once made/assembled).

In settings we have selected that you have to input your phone number on checkout, but I can not seem to call on it for POS orders, only online orders.

I then tried to just call on the client’s phone number from their profile with no luck.

{{ shipping_address.phone }} will call on the phone number for online orders only for us (makes sense)

{{ customer.phone }} doesn’t give me anything??

By this logic, does that mean that the shipping address phone number doesn’t get added to the clients profile? Should client use a different field for phone number for POS orders?

Any ideas?

For those having issues with this and find this, {{ customer.phone }} does not work for packing slips.

I have made this work so far though, so that it looks for a billing phone number (from online orders), then if the phone was added to the customer profile, and if that is blank will add it from the shipping address:

Phone: {% if billing_address.phone == blank %} {{ order.customer.phone }} {% elsif order.customer.phone == blank %} {{ billing_address.phone }} {% else %} {{ shipping_address.phone }} {% endif %}

How do I use this code? Where it has to be inserted? I am a complete noob. My whatsapp automation does not work because of this issue.