> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.printoteca.ro/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Why do I need to collect a customer phone number on every order — and how to enable it on Shopify / WooCommerce

**Applies to:** Printoteca → Shopify and Printoteca → WooCommerce integrations **Audience:** Merchants using Printoteca as a Print-on-Demand supplier **Severity:** Blocking — orders without a phone number cannot be shipped
## TL;DR
The courier **requires a valid mobile phone number** for every shipment. Without it:
* The parcel **cannot be picked up** by the courier (the AWB is rejected at validation).
* The order **stays stuck** in Printoteca until the phone number is added manually.
* The customer **does not receive SMS notifications** about pickup point, delivery slot, or out-for-delivery status.
* The driver **cannot call the customer** if the address is incomplete or the customer is not home.
By default, **both Shopify and WooCommerce make the phone field optional**, and many merchants only discover this after their first stuck order. This article shows how to make it **mandatory at checkout** on each channel.

> Printoteca pulls the phone number from the **shipping address** of the order (and falls back to the **billing/contact phone** if shipping has none). Make sure at least one of these is captured and is a **valid mobile number** (10 digits for Romania, E.164 format for international).

## Why couriers require a phone number
Romanian and EU couriers (Sameday, FAN Courier, Cargus, DPD, GLS, etc.) treat the phone number as a **mandatory AWB field**, not an optional one. They use it to:
1. **Send the tracking SMS** with the AWB number and estimated delivery date.
2. **Notify the time slot** the morning of delivery (typically a 2-hour window).
3. **Let the driver call** if the address is hard to find, the buzzer doesn't work, or no one is home.
4. **Coordinate easybox / locker pickup** — the unlock code is sent by SMS to that exact number.
If we submit an AWB with an empty or invalid phone field, the courier's API returns an error and the parcel is **not** generated. 
## Shopify — make the phone number required at checkout
Shopify has **two separate phone fields** and you should configure both.

### Step 1 — Require the contact phone (instead of email) OR require both
1. Go to **Shopify Admin → Settings → Checkout**.
2. Scroll to the **Customer contact method** section.
3. Select **Phone number or email**, then **check the box "Require the customer to also provide a phone number at checkout"** (the exact label may read *"Require phone number"* depending on your Shopify version).
4. Click **Save** in the top-right corner.

### Step 2 — Require the phone field on the shipping address
1. Still in **Settings → Checkout**, scroll down to **Customer information**.
2. Find the row **Shipping address phone number**.
3. Change it from **Optional** (or **Hidden**) to **Required**.
4. Click **Save**.
From now on, customers cannot complete checkout without entering a phone number, and that number flows directly into the order sent to Printoteca.

### Step 3 (optional) — Validate the phone format
Shopify does not validate phone numbers by country by default. If you want to block obviously wrong numbers (e.g. `0000000000`), install a small checkout validation app from the Shopify App Store (search for *"phone validator"* or *"checkout validation"*). This is **not required** for orders to ship — Printoteca will still try to use what is provided — but it reduces "phone is invalid" support tickets.

## WooCommerce — make the shipping phone required at checkout
WooCommerce **does require the billing phone by default**, but the **shipping address has no phone field at all** in a standard install. You need to add it explicitly.
### Option A — Use a Checkout Field Editor plugin (recommended, no code)
1. In WordPress Admin, go to **Plugins → Add New**.
2. Search for **"Checkout Field Editor for WooCommerce"** (the official Themehigh / WooCommerce.com one is the most widely used; any reputable equivalent works).
3. Install and activate the plugin.
4. Go to **WooCommerce → Checkout Form** (the menu name depends on the plugin).
5. Open the **Shipping** tab.
6. Click **Add Field** and configure:
    * **Type:** Phone (or Text)
    * **Name / Key:** `shipping_phone`
    * **Label:** Phone number
    * **Required:** ✅ Yes
    * **Position:** below the address fields
7. Click **Save Changes**.

### Option B — Add a snippet to your theme (for developers)
If you don't want to install a plugin, add this snippet to your **child theme's&#160;`functions.php`**:
```
// 1. Add a phone field to the shipping address
add_filter( 'woocommerce_shipping_fields', function( $fields ) {
    $fields['shipping_phone'] = array(
        'label'        => __( 'Phone', 'woocommerce' ),
        'required'     => true,
        'class'        => array( 'form-row-wide' ),
        'priority'     => 100,
        'validate'     => array( 'phone' ),
    );
    return $fields;
});

// 2. Make sure it is also required when "Ship to a different address" is unchecked
add_filter( 'woocommerce_billing_fields', function( $fields ) {
    if ( isset( $fields['billing_phone'] ) ) {
        $fields['billing_phone']['required'] = true;
    }
    return $fields;
});
```
Save the file and clear any caching plugin. The phone field will now appear on the shipping address block and be enforced at checkout.
### Step C — Verify it appears in the order
1. Place a test order on your store.
2. Open the order in **WooCommerce → Orders → [order]**.
3. Confirm the **Shipping** block shows the phone number (not just the billing block).
4. Re-sync the order to Printoteca, or wait for the next auto-sync, and check that the phone is present in the Printoteca order detail.

## What to do for orders already stuck without a phone
If you have orders that came in **before** you applied the settings above and they are now blocked in Printoteca:
1. Contact the customer (by email or by replying to the order confirmation) and ask for a mobile number.
2. Open the order in your Shopify / WooCommerce admin and add the phone to the **shipping address**.
3. Re-sync the order to Printoteca, or send us the phone number on the support channel and we will update it on our side.
Once the phone is on the order, we will generate the AWB and the parcel ships normally.
## Quick checklist
* ☐ Shopify: **Require phone number** is checked under *Customer contact method*.
* ☐ Shopify: **Shipping address phone number** is set to **Required**.
* ☐ WooCommerce: a **`shipping_phone`&#160;field** exists and is marked **Required** (via plugin or snippet).
* ☐ WooCommerce: **`billing_phone`** is required (this is the default — only verify if you previously customized it).
* ☐ Test order placed — phone visible on both the storefront checkout and the order detail.
* ☐ Old stuck orders cleaned up by contacting the customer for their number.
After this is in place, no future order should land in Printoteca without a phone — and no parcel should get blocked at courier handoff.