Buying the same product from two suppliers

Shopify gives a product one Vendor field, and its purchase orders remember more than that field does — including that you have bought the same thing at several prices. What it has nowhere to put is the rest of what you know about each supplier, and one of the gaps sends your own product code to the wrong company.

Shopify gives a product one supplier. "Each product has a single Vendor field." If you buy the same thing from two companies, one of them is in that field and the other exists only on the purchase orders you have sent it.

What is less well known is that the purchase order screen remembers more than the product does. Order from a supplier you have used before and Shopify fills in what you paid them last time — and if you have paid several different prices, it offers you the list: "If you've used multiple costs before, then you can select a previous cost from the drop-down menu, or enter a custom value."

So Shopify is keeping a per-supplier memory of prices. You can see what you paid whom by opening past purchase orders, and Shopify's own purchase order cost report exports it grouped by supplier and SKU. What you cannot do is read it off the product — or have anything act on it.

The gap that actually causes trouble

This one is worth knowing before anything else on this page:

"If a product doesn't have a supplier SKU on file, then the variant's SKU is used by default."

A purchase order always carries a code. If you have never recorded the supplier's own code for that product, the code that goes to them is yours — and your internal code means nothing at their end. That is how a supplier ships the wrong item and everybody blames the warehouse.

With two suppliers it gets worse, because you now have two different codes for one product and one hidden field per supplier–product pair to hold them, which you can only reach while typing an order. (The field itself has its own trap: in the admin it is write-only — you cannot correct it, and it appears on no screen except the purchase orders it was typed on. An app can read it since Shopify's October 2026 API version, which is new and does not give you a screen. That page is here.)

Two suppliers, two codes, one Vendor field? Describe what you need kept →

Where Shopify tells you to put the rest

Shopify's own answer is direct, and so is its limit:

"To track multiple suppliers for one product, supplier-specific SKUs, lead times, minimum order quantities, or case packs, use variant metafields or metaobjects."

"These metafields store information for your reference. They're independent of purchase order ordering and receiving calculations, so your staff convert case packs into individual units manually when they create or receive an order."

Read the second quote twice. The case pack you carefully recorded does not reach the ordering screen: when somebody raises a purchase order for six cases, they do the multiplication in their head. The data is stored, and nothing uses it.

And the supplier record itself keeps less than people assume: "Payment terms and supplier currencies are specific to individual purchase orders, and aren't saved as default values to any specific supplier." The terms you agreed are on each order, not on the company.

What to do about it

If you only need somewhere to look it up, metafields are genuinely fine — define them under Settings → Custom data so they are visible and editable on the product, then fill them in. You will be reading them yourself, and typing the numbers into orders yourself, but nothing is hidden.

If the second supplier is a decision rather than a note — who to order from this week, how much to order to make the case pack work, whether the cheaper one's four-week lead time is worth it — then storage is not the problem. The problem is that nothing does anything with it, and that is true no matter how neatly you store it.

Which route is yours

What you need Where it lives
Record the second supplier's price and code Metafields you define, or the purchase order's own memory
See what you last paid a supplier Native — on the purchase order, or exported from the purchase order cost report
Their lead time, minimum, case pack Metafields "for your reference" — nothing acts on them
Case packs turned into units when ordering Not native — your staff do the multiplication
"Order from whichever is quicker this week" Not storage — a rule, and that has to be built

What Shopivibe does

You describe it as the buying decision it is: "when this needs reordering, work out how many to order and from which of my two suppliers — use their case pack and their lead time, and send them their own code."

One row per supplier, in your own admin, and a rule that reads it. Their code for the product, their price, their lead time, their minimum, their case pack — on Shopify's own screens, where you can see and edit them. The rule is what turns that from a reference you look up into the thing that decides which supplier an order goes to, and how many units make a whole case.

Three things to say plainly. This is built for you, not switched on — a person sets up both the rows and the rule with you. Shopify's own purchase-order screen will not read them; it keeps its own memory, and what we keep sits beside it rather than inside it. And the rows live in a structure Shopivibe keeps for you — visible and editable in your admin, and maintained by us as your suppliers change — it is our structure rather than a native Shopify record, which is why keeping it working is ours and not yours.

Shopivibe solves the problem in your store and keeps what it adds maintained, including when Shopify changes something underneath. If the app cannot complete your request on the spot, somebody at Shopivibe takes it on straight away and has it working in your store within 24 hours, included in the plan at no extra charge. Shopivibe is free during early access, with 3,500 credits included. Credits beyond the included 3,500 cost $0.06 each.

Know your suppliers better than Shopify does? Describe what should happen with that →

Checked against Shopify's documentation and the App Store on 20 September 2026.