Skip to main content
Major Feature

B2B pricing for Shopify — your wholesale prices, on your storefront

If you sell wholesale through Shopify, you have probably been maintaining two sets of prices. The real ones live in SKU.io — the tier a customer sits on, the contract you agreed with them, the break they hit at 25 units — and then someone re-enters an approximation of all that into Shopify by hand, and it drifts from the day it's typed.

B2B pricing for Shopify removes the second set. SKU.io works out what each wholesale buyer should pay, using the same pricing rules that already produce your quotes and invoices, and publishes those prices to that buyer's company location in Shopify. Your buyers log into your storefront exactly as they do now, and see their own negotiated pricing.

Nothing reaches your storefront until you have looked at a preview and approved it.

Major Feature

Certificates of Analysis — prove what's in every batch, and stop the bad ones shipping

An email lands from a marketplace: your listing is suspended pending documentation for batch OO-2607-B. Or an auditor picks a batch at random and asks what you tested it for. If your Certificates of Analysis live in an inbox and a shared drive, the next hour is spent searching — and the honest answer to "did anyone check this batch met spec?" is often "probably".

Lot compliance puts that evidence where it belongs: on the batch. File a Certificate of Analysis against the lot it covers, record your own identity check, and enter the lab's numbers so SKU.io judges them against a standard you set. A result outside your limit doesn't just get flagged — it takes the stock off sale.

Major Feature

Price sync — change a price in SKU.io and the channel actually hears about it

There has been a Master of Price setting on your sales channels for a long time, and on all but one of them it did less than it looked like it did. Setting it to SKU.io stopped the channel's price from overwriting yours on the way in — but it never sent anything out. You'd change a price in SKU.io, watch the channel keep charging the old one, and have no way to tell the difference between "it hasn't run yet" and "it was never going to run".

Price sync closes that loop. On Amazon, BigCommerce, eBay, Faire, Magento 1, Magento 2, Shopify, Square, Temu, TikTok Shop, Walmart and WooCommerce, SKU.io now publishes your price to the channel on a schedule you choose — behind guardrails that stop a bad number reaching a marketplace, and with a run history that tells you what happened to every listing.

Major Feature

Multi-stage co-manufacturing — build the whole vendor chain in one pass

Plenty of products aren't made in one place. You send ingredients to a co-packer who cooks and blends them, truck the result to a second vendor for filling and pasteurizing, and land the finished cases at a 3PL — three vendors, two hand-offs, one product, and you own the goods the entire way. Until now, modelling that meant inventing the whole structure by hand: a work-in-progress SKU per hand-off, a recipe per stage, lot-tracking flags on every node, contractors, and a production order for each leg — roughly 25 minutes of setup, with several places to get the cost model quietly wrong.

Multi-stage co-manufacturing turns that into one guided flow. Tell SKU.io who does what and what they charge, and it builds the intermediate products, the per-stage recipes, and the vendor terms in a single transaction — then keeps them honest every time you run it.

Major Feature

Committed-spend billing — see what you've committed to before the invoice arrives

Your accountant plans cash flow from your accounting file — and until the supplier's invoice arrives, an open purchase order is invisible there. You have committed the money, the goods are on their way, and the books show nothing. For businesses ordering weeks ahead of delivery, that gap can hide a large slice of upcoming spend.

Committed-spend billing closes it. Turn it on and every purchase order you submit posts a bill for its unbilled amount right away, so committed inventory spend appears in your books the moment you commit to it. Each committed bill then looks after itself: it shrinks as real supplier invoices are recorded against the order, and disappears entirely once the order is fully billed.

Major Feature

Channel attributes and metafields — the fields only your channel has, finally in your catalog

Every channel has a standard set of product fields, and then it has yours. The care instructions you added as a Shopify metafield. The country_of_manufacture and warranty_months attributes your Magento store has carried for years. That data is real, it's maintained, and until now SKU.io imported none of it — it read the fields every channel has and dropped everything else on the floor, leaving you to re-enter it by hand or accept a catalog that knows less than your storefront does. Channel attributes closes that gap. SKU.io now discovers the attributes your channel actually sends, shows you how many products carry each one and what the values look like, and lets you point them at any SKU product field — either once, when a product is first created, or on every sync, with drift detection watching for changes.

Major Feature

Living Catalog — see every content change your channels make, and decide who wins

Importing a product from a channel has always been a one-time snapshot. Someone retitles a listing in Seller Central, swaps in a better photo, corrects a weight from pounds to grams — and SKU.io never hears about it. Months later your catalog and your channels have quietly drifted apart, and nobody can say which side is right. The usual workaround is a spreadsheet and a lot of squinting. Living Catalog replaces it: SKU.io now watches the content on your mapped listings, records exactly which fields changed on the channel side, and hands you a review queue instead of a mystery. Nothing is overwritten behind your back — you decide, per field, whether your catalog or the channel is the source of truth.

Major Feature

Product substitutions — sell the SKU they search for, ship the one you stock

The same physical part often lives under two SKUs: the official part number customers search for, and the identical equivalent you actually keep on the shelf. Until now those orders just stalled — the listed SKU sat backordered while the interchangeable item was in stock a few feet away, and "fixing" it meant editing order lines by hand. Product substitutions links equivalent SKUs so those orders flow: swap a stalled line to the stocked substitute in one click, or select the whole backlog and release it at once. The customer still sees exactly what they ordered — the invoice and packing slip keep the original SKU — while the pick list tells your warehouse which part to actually pull.

Major Feature

Airtable integration — two-way sync with no middleware

If your team plans in Airtable — merchandising calendars, purchasing boards, ops trackers — keeping it in step with SKU.io has meant CSV round-trips or a paid middleware subscription that breaks the moment either side changes. The new Airtable integration removes the bridge entirely: connect your Airtable account and SKU.io syncs your operational data both ways, on a schedule or in near-real-time. Push products, inventory, orders, purchase orders, and suppliers into your own Airtable base — or let SKU.io build a ready-made base for you in one click — and when someone edits a safe field in Airtable, review the change before it updates your catalog. It's a first-party, two-way connector with nothing in the middle.

Major Feature

Customizable dashboards — build the view your business runs on

Your home dashboard used to be one fixed layout — the same handful of cards for everyone, whether you live in sales, purchasing, or the warehouse. Now it's yours to shape. Customizable dashboards let you add any of 100+ widgets — KPIs, trend charts, gauges, leaderboards and live activity — then drag, resize and arrange them exactly how you want. Keep separate dashboards for different jobs (an Overview, a Sales view, an Operations view) and switch between them with one click. Everything is drawn from your live data, so the moment a widget lands on your board it's already showing real numbers.