When looking at columns available in Orders there’s a PO Number column. Where is this drawn from, ie where can I input the data for it to be shown?
Topic summary
The PO Number column in Shopify’s Orders list pulls from the internal purchase_order_number field, but populating it varies by plan and order type.
Key findings:
- The native PO field appears automatically in Draft Orders for B2B orders (customers belonging to a company)
- Standard plans may not expose this field in the Draft Orders interface
- Shopify Plus users can enable “Require a purchase order” in checkout settings
Workaround for non-B2B stores:
- Create a custom order metafield (e.g.,
custom.po_number) via Settings → Custom data → Orders - Enter PO numbers in this metafield when creating draft orders
- Use Shopify Flow to copy the custom metafield to the native
purchase_order_numberfield:- Trigger: Order created
- Condition: Check if custom PO metafield exists
- Action: Use Admin API call to write to the official PO field (not directly exposed in Flow’s standard actions)
Important limitations:
- The native PO field cannot be edited after order creation
- Setting up the Flow requires creating variables and using GraphQL API calls, which users found unintuitive
That “PO Number” column in your Orders list is pulled from each order’s Purchase Order Number field—Shopify calls it purchase_order_number internally. Here’s how you populate it so it shows up:
In Draft Orders
-
When you create a Draft Order in Shopify, there’s an Additional details section on the right-hand side.
-
Under that you’ll see Purchase Order. Fill in your PO number there, then “Create order.”
-
Once you convert that draft into a real order, the PO Number you entered will carry over and appear in the Orders list.
If you’re on Shopify Plus, you can enable “Require a purchase order” in Settings → Checkout
Hop this helps.
@ES1 Thanks for the reply. I dont seem to have that section. Is there a process of enabling it or is it only available to higher plans?
Hi @Anchoright
It looks like your store’s Draft Orders screen simply doesn’t expose Shopify’s built‑in Purchase Order field (that gear/“Additional details” toggle is missing), which means you won’t be able to enter a native PO Number there.
Use a Custom Metafield + Shopify Flow Automation (no code)1. Create an Order Metafield
-
Go to Settings → Custom data → Orders.
-
Click Add definition, name it “Purchase Order Number,” namespace/key something like custom.po_number, and choose Single line text.
-
Save.
-
Expose that Metafield on Draft Orders
- In your Draft Order screen you already see that metafield in the right column—enter your PO there when you save the draft or order.
-
Build a Shopify Flow (free app)
-
Install the Shopify Flow app from the App Store.
-
Create a new workflow:
-
Trigger: Order created
-
Condition: order.metafield custom.po_number is present
-
Action: Set order field → Purchase order number = order.metafield custom.po_number
-
This will copy your custom metafield into Shopify’s native purchase_order_number field whenever an order is created (including from drafts). Once that runs, the Orders list will show it in the PO Number column.
-
Hope this works for you.
The PO field is only visible for B2B orders. That is, orders where the customer belongs to a company.
Hello ES1,
Your work around makes a lot of sense. But when I try to implement it, I cannot find the PO Number field for the order in the options to create an action. The only fields that I can see that could be updated are the order notes or and order metafield.
Hello,
I want to recreate the flow, but I can’t find the action: “Set order field → Purchase order number = order.metafield custom.po_number”.
Can you help me to find it?
This is our Flow:
I don’t remember the detail of setting it up clearly now, but it is not very intuitive:
-
You have to create a “variable” parameter for the custom PO metafield so that you can use it in the IF block
-
You have to use an admin API call to write to the official PO parameter because it is not exposed otherwise.
-
You can’t change the PO number afterwards.





