ASG warehouse photo used as cover artwork; it does not document a particular customer order. By Janson Wang, Founder of ASG Dropshipping · October 3, 2026 · 17 min read
You used to ship by the carton — one PO, one pallet, one freight bill, a buyer who already knew how to receive it. Now you’ve opened a Shopify store, a TikTok Shop, or both, and you’re telling yourself this is just a new sales channel.
It isn’t. A channel is something you add.
What you’re actually doing is changing the unit every warehouse record keeps its promises in — from the carton to the single unit.
Stock count, pick-and-pack, order queue, tracking, returns: all five were built around “one box, one shipment, one buyer who already knows what’s inside.” Leave the unit alone and each one breaks in a specific, documented way.
Quick answer: I used to ship by cartons in wholesale — what exactly has to change in my warehouse, packaging, shipping and returns for DTC?
Moving from wholesale cartons to Shopify or TikTok Shop parcels isn’t adding a sales channel — it changes the unit every warehouse record is kept in, from the carton to the single unit.
Five records re-key per unit: inventory (define the conversion between case, sellable unit and parcel, then count and receive against it), packing (each order picked, packed and labeled on its own), orders (both channels reconciled onto one stock view, using whatever sync tool or spreadsheet you set up — this isn’t automatic by default), tracking (every parcel generating a trackable event when the carrier or app actually sends it), and returns (separate the refund decision from inspection and restocking, instead of assuming one fixed sequence covers every case).
Shopify lets you change fulfillment method per product, so you can switch one SKU at a time instead of flipping the whole warehouse in a day.
Key takeaways
Shopify’s “individually,” “in bulk,” and “in batches” are fulfillment actions, not a wholesale/DTC label: a DTC store can act on multiple orders in bulk, and named Batch fulfillment has its own eligibility (a self-managed location in a country Shopify supports for buying labels) — it isn’t unlocked by switching to per-unit counting.
One Shopify Community contributor suggested receiving against the PO at the unit level, not the box, as a fix for a seller with wrong counts — a practitioner’s suggestion, not a verified incident report or evidence that receiving is where most failures happen.
Two channels on one stock figure can double-count: one merchant documented Shopify’s “Committed” status double-counting across two synced stores until an order was marked fulfilled. Available, Committed and On hand are different states by design — the test is whether your own expected numbers reconcile, not whether Available equals Committed.
Shopify’s own return flow is create a return, then refund after inspecting the item — but Shopify also lets you refund without creating a return at all (price corrections, goods that never come back). Separate the refund decision from inspection and restocking instead of assuming one sequence covers every case.
You Are Not Adding a Channel: What Actually Changes in DTC Fulfillment When the Unit Goes From Carton to Piece
A wholesale shipment is one PO, received as a case count, packed as a pallet, handed to a buyer who already knows how to receive a case.
A DTC order is one person, one or two items, a label specific to that package, and a customer who has never seen your warehouse.
Shopify’s own documentation names three ways to fulfill an order: individually, in bulk (acting on several orders at once — a backend action, available to DTC orders too, not a wholesale-only mode), or in batches, a named feature that picks, packs and prints documents across many orders at once, with its own eligibility: a self-managed location in a country where Shopify supports buying shipping labels in-app.
Switching to per-unit counting isn’t the condition that unlocks it. What actually has to change when you add DTC is the unit each record tracks, not which of these three actions you click.
A Shopify Community contributor’s advice to a seller receiving wrong quantities makes a related point from the inbound side: receive against the PO at the unit level, not the box level, and record every discrepancy the moment you find it — one practitioner’s suggestion for one reported problem, not a verified incident report or a documented rule about where failures happen most.
Five operating records have to make that same switch, one at a time: inventory, packing, order aggregation, tracking, and returns.
The table below separates three kinds of claim that are easy to blur together — what you decide yourself, what Shopify documents as a built-in mechanism, and what a fulfillment vendor offers that varies by provider.
A blank cell means this article didn’t find evidence for it, not that the thing doesn’t exist.
Table 1 — Three kinds of answer, kept separate
You Are Not Adding a Channel: What Actually Changes in DTC Fulfillment When the Unit Goes From Carton to Piece
Operating record
① Your own decision
② Shopify’s documented mechanism
③ Vendor service (varies by provider)
Inventory unit
Define the case/sellable-unit/parcel conversion, then count and receive against it
Multi-location routing assigns an order to a location with enough stock; it splits or “oversells” only when no single eligible location can fill it; shipping profiles can include multiple locations or location groups, so eligibility is configured, not fixed to one location
ASG’s Shenzhen/Dongguan warehousing (confirm current terms with ASG). Stockout alerts are a 500+/day program, not a day-one feature
Pick, pack, label
Who picks/packs/labels, and how
“Individually,” “in bulk” (acting on multiple orders — available to DTC orders too), or named “Batches” (its own eligibility, not unlocked by per-unit counting); method is chosen per product
ASG’s six-step order-level QC check — coverage and sampling depth confirmed per SKU/order with ASG; packaging/labeling/kitting as a standalone service
Order aggregation
Which tool reconciles Shopify + TikTok Shop onto one stock view
App fulfillment request/accept/decline; Available, Committed and On hand are separate inventory states — one documented case showed Committed double-counting across synced stores before an order was marked fulfilled
ASG’s Shopify App for order sync, or Google Sheets. No ASG-documented native TikTok Shop integration found; Shopify’s own TikTok sales channel may be available subject to its own eligibility
Tracking
Who owns a stalled event or unsupported carrier
Three paths a tracking number can take; seller-entered carrier/number/URL fields are correctable, and carrier support decides map vs. link-out for the customer
ASG’s logistics-status callback and tracking-number upload
Return rules
Who sets shipping cost, window, restocking fee; who inspects before refund
Three cost options, per-market window/fee; Shopify’s own return flow inspects before refunding, but a refund can also be issued without creating a return at all; no return after a refund
We found no named ASG returns-triage service
Pilot scope
Which SKU goes first, the pass/pause criteria, and the rollback action
Fulfillment method set per product; one order can mix methods
ASG’s multiple routes let you pilot one before committing the catalog
Definition: the unit of record
The unit of record isn’t one number — it’s three that have to be mapped to each other: the sales unit (what the customer orders — a single piece, a multi-pack, or a bundle), the inventory base unit (whatever quantity the stock ledger actually deducts against), and the parcel unit (what the carrier scans, which doesn’t have to match the sales unit one-for-one — a three-piece bundle can ship in a single parcel under one label).
Wholesale typically records at the case or pallet level: one PO line, one ledger line, one freight bill.
Adding DTC doesn’t force every ledger line to become one physical piece; it forces you to define the conversion — how many base units are in a case, how a multi-pack’s sales unit maps to its component inventory, and how many parcels a given order actually produces.
Skip that conversion and receiving, counting and allocation go wrong — not from a mistake, but because nobody defined which unit the system is supposed to be counting in.
Scope. This covers what changes in warehouse, packaging, order handling, shipping and returns the first time a wholesale seller also sells DTC on Shopify and/or TikTok Shop.
It doesn’t cover moving a mature SKU to a 3PL (ASG’s readiness worksheet ), handing off a spec change (ASG’s handoff guide ), or why returns happen (ASG’s root-cause guide ).
It doesn’t cover TikTok Shop’s cross-border policy — the page reopened here scopes itself to US domestic seller-shipping.
Shopify facts below reflect the help-center pages as read; a future update may differ.
Colored sorting totes at an ASG warehouse; the photo does not establish stock counts for this guide.
Inventory: Receive by Unit, Count by Unit, and Decide Where DTC Stock Lives
The carton habit can break at receiving.
In a real Shopify Community thread about wrong counts, one contributor, posting as MiloDeMilo, suggested a fix: receive against the PO at the unit level, not the box, and log the discrepancy the moment you find it — a one-time outside re-check of the same thread also found this poster disclosed building a related tool, which this article hasn’t independently re-verified.
A second contributor, a Shopify partner, reinforced the idea — receiving too fast at the case level is how errors can enter the system, with barcode scanning at intake as one fix.
A third warned how an error can get erased: a later “fix” applied to the wrong variant can erase the original supplier error from the record.
This is practitioner advice in one community thread, not a verified seller incident report, and it doesn’t establish that receiving is where most failures happen.
Once stock is counted correctly, Shopify’s multi-location mechanics decide the rest.
With more than one active location, Shopify assigns an order to a location that can fulfill it entirely based on available inventory and your routing rules; only when no single eligible location can fill the whole order does it split across locations or the highest-priority one “oversell” — Shopify’s term for a location’s recorded sales exceeding its recorded stock, not proof that nonexistent goods physically shipped.
Shipping profiles can route a product to one location or to several, including location groups — “lock” describes a configuration choice, not a built-in single-location limit — and “Minimize split fulfillments” controls split frequency.
None of this needs two systems — wholesale and DTC stock can live in the same backend, as two configurations of the same logic.
Table 2 — Inventory record, before and after
Inventory: Receive by Unit, Count by Unit, and Decide Where DTC Stock Lives
What’s tracked
Wholesale habit
DTC requirement
Symptom if the case/unit conversion isn’t defined
Who decides
Receiving count
Count cartons against the PO
Define the per-carton unit count, then count units against the PO; log every discrepancy at once
A carton verified at 12 units, with 2 shipped, should leave 10 units on the ledger — not “1 carton + 10 units” of duplicate stock
You, at receiving
Stock ledger
One line = one case
One line = one sellable unit, converted from case quantity — not one physical piece per line by rule
Shopify’s “available” figure doesn’t match the shelf because the conversion was never defined
You, in how you configure counting
Multi-location allocation
Not applicable
Assigned to a location that can fill the whole order by inventory and your routing rules; splits or oversells only when no single eligible location can
An order oversells at a location only when every eligible location was actually short
Shopify’s routing rules
Discrepancy handling
Logged against the PO, often after the fact
Logged at the unit level, immediately
A later fix on the wrong variant can erase the original error
You, at receiving
This advice comes from one Shopify Community contributor’s suggestion, not a verified incident report or a published standard — useful as a practitioner’s idea worth checking against your own receiving process, not as proof of where failures usually happen.
ASG’s role sits on the physical side: Shenzhen/Dongguan warehousing is where piece-level stock can sit once you’ve switched to counting by the unit (confirm current terms, eligible customers and costs directly with ASG).
Real-time stockout alerts and sales-velocity pre-positioning are part of a separate Key-Account program gated at 500-plus orders/day — that program’s absence doesn’t mean a new DTC seller has no system inventory tracking at all.
What it means in practice: confirm with your fulfillment partner which parts of inventory recording and physical counting are automated, and which stockout-alerting is only included once you reach that volume.
Real warehouse workstation scene; the screen is not presented as a verified inventory ledger.
Pick, Pack, Label: From “In Bulk” to “Individually,” and Why “In Batches” Is How You Get the Speed Back
Shopify names three fulfillment actions, but they’re processing options, not a wholesale/DTC label: individually (one order, picked, packed, labeled and shipped on its own), in bulk (acting on several orders at once — a DTC store can bulk-mark, bulk-request or bulk-relocate orders too), and in batches (a named feature with its own eligibility, covered below).
A wholesale shipment tends to be one PO, one case, one set of paperwork handled on its own — that’s the habit this article is tracking, not a rule tied to the word “bulk.”
Definition: named Batch fulfillment has its own eligibility — it isn’t “bulk,” and it isn’t earned by counting per unit
Shopify describes fulfilling “in batches” as picking, packing and printing documents across many orders at one time.
That sounds like bulk, but it isn’t: every order inside a batch still gets its own pick, its own pack, and its own shipping label.
Named Batch fulfillment has a documented eligibility condition — the store needs a self-managed location, located in a country where Shopify supports buying shipping labels in-app; a location managed only by a fulfillment service doesn’t qualify.
Whether you count stock by the case or the piece isn’t a condition Shopify’s documentation lists.
A batch is the efficiency that per-order processing can otherwise cost you, available once your location setup qualifies — not a reward for switching your counting habit.
A structural fact follows from that vocabulary: when one order’s stock sits across more than one location, Shopify splits it into multiple “Unfulfilled” sections — fulfillments — by location, each fulfilled separately, and a single fulfillment’s tracking numbers must all share one carrier.
The packing floor now organizes around the fulfillment segment, not the whole order — something a wholesale operation, shipping one case from one location, never had to handle.
This article’s own recommendation for what a per-unit packing process has to decide: a defined per-order box/bag size, where the brand insert and label go, whether products get kitted, where the packing slip sits, and a final check before the parcel leaves.
One seller’s own thread on keeping packaging in-house versus 3PL adds one data point, not a rule: a reply suggested handmade or kitted products may be easier to manage in-house — a single seller’s experience.
ASG’s role here: its standardized six-step QC process — arrival, appearance, function, photo documentation, packaging check, outbound re-check — runs as part of every order’s handling, not as a one-in-many sample pull at the batch level.
That’s a statement about order-level coverage, not a claim that every single unit inside a multi-item order completes every one of the six steps; which checks are done at full-unit depth versus a sampling basis, for a given SKU or order size, is something to confirm directly with ASG rather than assume from this description.
Packaging design, labeling and kitting are available as a standalone service.
Original structural diagram of this article’s carton-to-unit framework; no measured data.
Real packing-table scene; no claim about the pictured order or customer.
Two real sellers independently wanted exactly this: one wanted several channels’ orders centralized to one fulfillment point instead of each running its own inventory; another wanted one-way product sync out, two-way order sync back with shipping details, and orders tagged by source store.
Both are in the merchants’ own words, not this article’s invented pain point.
Shopify’s mechanism for third-party fulfillment apps is a request/accept/decline handshake: requesting moves status to “In progress,” and the service accepts or declines, a decline returning the order to Unfulfilled.
Method is also chosen per product, so one order can mix methods — a basis for running a new DTC line on one path while a wholesale line keeps running on another.
The failure mode to watch for: one Shopify Community merchant running two stores (same brand, shared SKUs) on an in-house system via Shopify’s Fulfillment API reported a double-counting symptom in Shopify’s “Committed” status across both stores until an order was marked fulfilled.
The thread’s replies offered different explanations for the cause, and the merchant never confirmed a final root cause — so treat this as one documented symptom report, not a confirmed defect or a universal rule.
Available, Committed and On hand are distinct inventory states by design and aren’t expected to be numerically equal; the useful test isn’t “does Available match Committed,” it’s whether a single order consumes shared inventory exactly once across both systems as intended.
Before testing, write down the SKU/variant mapping, which system is the authoritative stock source, which quantity fields you’re comparing, and whether each system writes absolute counts or increments/decrements — then place a test order on each channel and confirm the expected state on both sides, not just that the two numbers match each other.
TikTok Shop, scoped deliberately. TikTok Shop’s own US Seller University page, which scopes itself explicitly to US domestic seller-shipping, requires uploading a valid tracking number in Seller Center within the seller’s own selected handling time, with losses and penalties for a missing or incorrect one.
Separately, the same page states delivery targets: Express within 3 business days, Standard/Free Economy with a first delivery attempt within 6 business days, 95% on-time required either way.
The handling-time window for uploading tracking and the delivery-time targets are not the same clock, and this article isn’t merging them.
What is clear: on TikTok Shop, uploading tracking is a scored requirement, not optional — which makes the tracking record in the next section non-negotiable for a TikTok Shop seller.
Table 3 — What multi-channel order sync actually has to deliver
One Queue for Two Channels: How Shopify and TikTok Shop Orders Should Land on the Same Stock Figure
Need
What it has to achieve
Responsible
Rests on
Source
One-way product/inventory sync
Source catalog pushes data to every storefront
You, with a configured connector or manual process (verify before assuming it’s automatic)
Not confirmed as a built-in, zero-setup Shopify mechanism for this specific combination
one merchant’s description of a wanted workflow
Two-way order sync
Orders flow back to one place with shipping details intact
You, with a configured connector or manual process
Same as above
one merchant’s description of a wanted workflow
Order tagging by channel
Orders labeled by source store
You, with a configured connector or manual process
Same as above
one merchant’s description of a wanted workflow
Shared-inventory consumption check
A single order consumes shared stock exactly once across synced systems
You
Shopify’s Available/Committed/On hand states
one merchant’s documented double-count symptom report
Fulfillment handshake
App requests, accepts or declines each fulfillment
Shopify’s mechanism
Request / In progress / accept-decline
Shopify’s app-fulfillment page
TikTok Shop catalog/inventory/fulfillment/order sync
Orders and stock flow between Shopify and TikTok Shop
Shopify’s own TikTok sales channel, subject to its own store/country eligibility
Verifiable Locations address; store in an eligible country; published return-policy page
Shopify’s TikTok Shop setup page
The recommendation here isn’t a software name — build or confirm some version of the shared-inventory check above, because the one documented symptom report is quiet: a number that can look right until an order is marked fulfilled.
ASG’s role: its own Shopify App for order sync, logistics-status callback and tracking-number upload, or a Google Sheets alternative.
This article found no ASG-documented native TikTok Shop integration — that’s a statement about what ASG names as its own capability, not about Shopify’s platform: Shopify’s own TikTok sales channel can sync catalog, inventory, fulfillment and orders when a store meets TikTok’s eligibility (a verifiable Locations address, a store located in one of TikTok’s named countries, a TikTok for Business account, and a published return-policy page).
Whether that native Shopify-TikTok sync applies to your setup, versus needing a connector or manual handoff through ASG’s tools, is something to confirm before assuming either way.
Original conceptual workflow; confirm actual channel setup in your own accounts.
Tracking: Every Parcel Is Now a Customer-Facing Event Stream Your Wholesale Freight Never Was
A pallet on a freight truck doesn’t generate a tracking page a consumer refreshes twice a day. A DTC parcel does.
How that tracking number reaches Shopify depends on the fulfillment path: automatically if you buy the label inside Shopify, manually if you type it in, or automatically through a third-party service — but only if that service actually sends tracking back.
Some of this you can act on directly, some depends on the carrier.
You (or your fulfillment app) enter the tracking number, pick the carrier, and can correct either field if it’s wrong — those are editable inputs, not fixed outcomes.
What you don’t control per order is how the customer’s status page renders: a supported carrier gets real-time status with a map; an unsupported one just links out to the carrier’s page, and which carriers count as supported depends on your location and Shopify plan.
Notifications fire per event, not as one bundle — shipping confirmation on fulfillment, shipping update on a tracking change, and “out for delivery”/”delivered” only when Shopify receives that specific event from the carrier or from a fulfillment app that relays it.
Shopify’s own documentation states plainly that tracking event sources, accuracy and timing vary by carrier — and a tracking number with no recent scan means the carrier hasn’t reported a new event yet, not that the package definitely stopped moving.
One point carries over from packing: an order split across locations becomes multiple fulfillments, so one DTC order can generate more than one tracking number, each able to stall independently.
This article’s own recommendation, not a documented rule: decide who owns a tracking number that never arrived, an event that’s stopped updating, an unsupported carrier leaving the customer with only a link, and a multi-segment order confusing a customer with two or three tracking numbers.
ASG’s role: logistics-status callback and automatic tracking-number upload — the third of Shopify’s three documented paths for getting tracking into the system.
Real warehouse sorting area; no shipment result is inferred from this image.
Returns: The Single-Unit Inspection Step a Wholesale Contract Never Needed
A wholesale return, when it happened, was governed by a contract clause and settled as a batch.
A DTC return is a single unit that arrives without warning and needs a refund decision, an inspection decision, and a restocking decision — three separate calls, not necessarily all on the same day or in the same order every time.
A note on this evidence. Research found solid platform documentation on Shopify’s return mechanics, and one structural fact from a separate fulfillment provider — but no real seller discussion specific to DTC returns triage the way it found for inventory, sync or tracking.
This section is accordingly short, not because returns matter less, but because this article won’t fill the gap with a guess dressed up as a finding.
Shopify treats the return policy as something you configure: who pays return shipping is one of three settings (free, a flat fee, or the customer’s own label), and the return window and restocking fee are each set independently, including per market (currently available to a subset of merchants rather than every store).
Sequence matters when you use the return flow — Shopify’s own default is “create a return, send shipping instructions, and issue refunds after inspecting the returned items,” and once a refund has been issued, a return can no longer be created for those items.
That sequence isn’t universal: Shopify also lets a merchant refund an order without creating a return at all, including for cases like a price correction where no item is coming back.
TikTok Shop orders follow TikTok’s own channel-specific return/refund flow rather than this Shopify sequence by default.
A chargeback is a separate dispute path with its own range of causes (fraud, duplicate billing, non-receipt, and slow resolution among them) — the bank takes the disputed amount immediately, plus a fee, then reviews evidence from both sides; it is not simply a slower refund process restated.
The clearest evidence on what happens to a returned unit comes from a party with nothing to prove: one 3PL’s own developer documentation lists exactly four dispositions — Default, Restock, Quarantine, Dispose — moving through statuses from awaiting arrival to completed or cancelled.
One provider’s own system, not an industry standard, but it makes the structural point plainly: a returned unit doesn’t automatically become sellable again; somebody assigns it.
This article makes no claim about what fraction lands in any bucket — no source supports that number.
DTC returns need actions a wholesale contract never required: configure cost/window/restocking-fee settings before the first order ships; give every returned unit an inbound status on arrival; decide, for each case, whether refund waits on inspection or goes out first (and follow TikTok’s own flow for TikTok Shop orders); write the outcome back into stock.
This article found no named ASG returns-triage service — where inspection happens, and which refund sequence applies, is a decision for you and your fulfillment partner.
Original conceptual return-decision diagram; the actual settings and sequence depend on the merchant and channel.
Run the Switch on One SKU First: The Reversible Pilot Shopify’s Per-Product Routing Makes Possible
None of the five records have to change the same day, across the whole catalog — Shopify’s own mechanics are why.
A merchant can fulfill orders themselves, use a fulfillment service, or combine both, using different methods for different items in the same order.
Combined with the routing mechanics above, one SKU can run the new DTC process while the rest of the catalog keeps running under wholesale — what per-product routing is built to support, not a hopeful suggestion.
This article’s recommendation: sequence by what’s hardest to undo, and define the rollback before you need it.
Get the inventory unit right first — a wrong count at receiving corrupts everything downstream.
Then settle channel reconciliation — an undetected shared-inventory double-count is nearly impossible to untangle later. Packing and tracking are easier to adjust in flight.
Configure return rules before the first order ships, since Shopify’s default return sequencing — inspect, then refund, never a return after a refund — can’t be applied retroactively to orders already in flight.
Before placing the first pilot order, agree on what pausing the pilot actually means: stop routing new orders to the pilot SKU/location, decide who finishes any orders already accepted under the pilot (cancelling an in-progress fulfillment request doesn’t guarantee the fulfillment service actually stops), and reconcile inventory before resuming.
Fulfilling by product doesn’t guarantee a wholesale order on the same SKU is entirely unaffected by a DTC pilot on that SKU — check both, not just the DTC side.
Which SKU to pilot, and which warehouse location it belongs in, is answered separately by ASG’s mature-SKU fulfillment readiness worksheet ; what belongs here is only the order in which to flip the five records.
One more variable: ASG’s logistics menu lists multiple routes — line-haul, overseas warehouse, express, small-parcel — with reference lead times by route (US line-haul typically 5-to-8 days, UK 4-to-7), affected by product, destination, customs and peak season, not a fixed promise.
Piloting one route first is the same reversible logic applied to shipping.
Table 4 — Single-SKU pilot worksheet. Agree on these before the first pilot order ships: the pilot SKU and channel(s), the observation window and its timezone, how many comparable orders you need before judging an outcome, and where the evidence for each check actually comes from (a physical count, a platform screen, a carrier page).
Treat “pause” as a trigger to stop new pilot orders and investigate, not an automatic full rollback.
Run the Switch on One SKU First: The Reversible Pilot Shopify’s Per-Product Routing Makes Possible
Record
Before (wholesale)
During pilot (DTC)
Pass if (needs a defined sample/window)
Pause and investigate if
Rollback action
Responsible
Inventory
Received by the case
Received by the unit, pilot SKU only
A physical recount of the pilot SKU matches the Shopify stock figure at an agreed checkpoint
An unexplained discrepancy appears at any checkpoint — don’t wait out a fixed period hoping it resolves
Stop new pilot orders on this SKU; recount physically; correct the ledger before resuming
You
Pick, pack, label
One pack per case
Picked, packed, labeled individually
Pilot-SKU orders ship with their own label at a packing-error rate you define and compare against your non-pilot baseline, not zero errors
Pilot-SKU packing errors run meaningfully above that baseline over your defined sample
Route new pilot orders back to the prior packing process; review training/labels for the pilot SKU
You / warehouse
Order aggregation
Not applicable
Stock figure reconciles across every channel it sells on
A test order on each channel consumes the shared stock figure exactly once, with Available/Committed/On hand behaving as you defined them to
A test order consumes stock more than once, or you can’t explain the resulting numbers
Pause new pilot-channel orders; verify the sync tool’s write behavior before resuming
You
Tracking
Not tracked to the door
Every parcel has a tracking number and an incoming carrier event
For an agreed sample of orders, you can state the last known carrier event and when it was received, without needing to call the carrier for every one
Tracking numbers are missing, or multiple orders show no new carrier event for longer than your defined threshold
Flag affected orders to the fulfillment partner; hold new volume on that lane if it recurs
You / fulfillment partner
Return rules
Wholesale contract clause
Cost/window/fee configured before first sale; refund/inspection sequence decided per return type
Each pilot return is handled by a sequence you set in advance — Shopify’s inspect-then-refund flow, or an explicit no-return refund — and the choice is recorded, not improvised per case
A return is handled with no defined sequence, or the defined sequence wasn’t followed
Document the gap; apply the correct sequence to future pilot returns; no claim that one early miss requires abandoning the pilot
You
Logistics route
One freight lane
One ASG route selected for the pilot
Lead times for the pilot shipments fall within the route’s reference range, checked against an agreed number of shipments
Lead times consistently miss the reference range across that sample
Pause new pilot shipments on that route; confirm cause with the logistics partner before resuming
You / logistics partner
Blank operating worksheet. Fill in your own SKU evidence and owner.
The Carton-to-Unit Operating Checklist: Before and After, Record by Record
Everything above collapses into one document.
Walk the “symptom” column first and check off what’s already happening; then work “DTC requirement” top to bottom, in the pilot order above — inventory, order aggregation, packing/tracking, returns.
Table 5 — Carton-to-unit master checklist
The Carton-to-Unit Operating Checklist: Before and After, Record by Record
Record
Wholesale habit
DTC requirement
Symptom if the case/unit conversion isn’t defined
Responsible
Source
Inventory
Deduct by the case
Deduct by the unit, converted from case counts
Wrong counts are a possible sign of case-level receiving gaps — check, don’t assume the root cause
You
Shopify Community contributor suggestion
Pick, pack, label
Typically one pack per case
Individually, in bulk, or in named batches (own eligibility) — method chosen per product, not per business model
Packing bottleneck as volume rises
You / warehouse
Shopify fulfillment-overview, bulk- and batch-fulfillment pages
Order aggregation
One channel, one stock figure
Shopify + TikTok Shop reconciled to one stock view, via a sync tool you configure or verify
Shared inventory consumed more than once per order
You
merchant’s documented symptom report; Shopify inventory-states page
Tracking
Freight bill, no consumer tracking
Every parcel tracked with an incoming carrier event
Unsupported carrier, customer gets only a link; or a stalled event with no new carrier update
You / partner
Shopify tracking/notifications pages
Return rules
Wholesale contract clause
Cost/window/fee configured; refund/inspection sequence decided per return type, including TikTok’s own flow for TikTok orders
A return handled with no defined sequence
You
Shopify returns/refunding/TikTok-orders pages
Pilot order
All-at-once switch
One SKU piloted via per-product routing, with a defined pause/rollback action
No way to isolate which change broke something, or no defined way to pause it
You
Shopify fulfillment-services page
Use this checklist as your own working copy.
Tables 2 through 5 above are built to be used together as one document for your own switch from wholesale to DTC.
For an editable copy to fill in for your own warehouse and SKUs, tell ASG where you are in the switch and ask for a blank version of these tables.
Ask ASG for a Working Copy
Real workstation scene; the display is not presented as this article’s inventory ledger.
Where a China-Side Fulfillment Partner Fits in This Switch, and What Stays Yours
ASG’s role sits in specific, named places, not a general “we handle fulfillment” claim: a six-step QC check applied as part of every order’s handling (coverage and sampling depth confirmed per SKU/order with ASG); packaging design, labeling and kitting as a standalone service; its own Shopify App for order sync, logistics-status callback and tracking-number upload, with a Google Sheets alternative; multiple logistics routes with reference lead times, not fixed promises; and Shenzhen/Dongguan warehousing on terms to confirm with ASG.
Built on 2,300-plus verified factories, a 1.4-million-plus-SKU catalog across 40-plus sourcing platforms, operating since 2019 for 5,000-plus sellers in 200-plus countries — the same services apply whether a SKU is still wholesale, newly DTC, or both.
What ASG does not do, and whose job it is instead:
This article found no ASG-documented native TikTok Shop integration. That’s separate from Shopify’s own TikTok sales channel, which can sync catalog, inventory, fulfillment and orders when a store meets TikTok’s own eligibility (verifiable Locations address, an eligible country, a TikTok for Business account, a published return policy). Confirm with ASG whether your setup uses that native Shopify-TikTok sync, a connector, or a manual handoff.
ASG does not run a named returns-triage service. Configuring return rules, deciding the refund/inspection sequence per return type (including TikTok’s own flow for TikTok Shop orders), and deciding who inspects a returned unit and where, stays with you and whichever warehouse holds the stock.
ASG does not promise a fixed delivery time for every country. Its routes come with reference lead times, affected by product, destination, customs and peak season.
ASG’s real-time stockout alerts and sales-velocity pre-positioning are a separate 500-plus-orders-per-day program, not a starting-point feature. That program’s absence doesn’t mean you have no system inventory tracking below that volume — confirm with ASG which parts of recording and physical counting are automated at your stage, and which stockout-alerting is only added once you reach that threshold.
If the next question is whether a specific SKU is ready for a 3PL and which location it belongs in, start with ASG’s mature-SKU readiness worksheet .
If the spec, packaging or supplier changes after launch, ASG’s spec-change handoff guide covers that.
For keeping order and tracking data visible without building a custom system, see ASG’s Google Sheets vs. ERP comparison .
You didn’t add a channel.
You changed the unit your warehouse keeps its promises in — and every record that still counts in cartons will fail in a specific, documented way until you walk it through the switch.
Real inspection-table scene; no product quality outcome is claimed.
Piloting your first DTC SKU out of China?
Whichever record you tackle first, the physical side still has to hold up: QC handling on every order, packaging built for single-parcel shipping, and a logistics route you can actually rely on.
Tell ASG which SKU you’re piloting and ask how its QC coverage, packaging and routing options would apply to it.
Talk to ASG About Your Pilot SKU
Frequently Asked Questions
Do wholesale cartons and DTC units have to be in separate Shopify locations?
No.
Shopify’s routing rules and shipping profiles let you route products to one location or to several (including location groups) in the same backend; an order splits or oversells only when no single eligible location can fill it entirely.
Separating stock physically is your own decision; the test is whether each is counted and deducted correctly, not which shelf it sits on.
What’s the difference between fulfilling “in bulk” and “in batches”?
Both are Shopify fulfillment actions available regardless of business model, not a wholesale/DTC split.
“In bulk” means acting on several orders at once (bulk-marking fulfilled, bulk-requesting, bulk-relocating) — a DTC store can use it too.
“In batches” is a named feature that picks, packs and prints documents across many orders at once, with its own eligibility (a self-managed location in a country Shopify supports for buying shipping labels) — it isn’t unlocked by switching to per-unit counting.
Every order in a batch still gets its own pick, pack and label.
How do I check whether my channel sync is double-counting inventory?
Watch for what one merchant documented: a double-counting symptom in Shopify’s “Committed” status across two synced stores until an order was marked fulfilled — one reported case, with no confirmed root cause, not a universal defect.
Available, Committed and On hand are different inventory states by design and aren’t expected to be numerically equal.
Place a test order for the same SKU on each channel and confirm a single order consumes shared inventory exactly once, checking each system’s expected state — don’t assume a sync integration is correct just because it’s connected, and don’t judge it by whether Available equals Committed.
Should a DTC refund wait until the returned unit has been inspected?
It depends on which flow applies.
Shopify’s own default return sequencing is create the return, send shipping instructions, and refund only after inspecting the item — and a return can’t be created once a refund is issued.
But Shopify also allows refunding without creating a return at all, for cases like a price correction where nothing is coming back, so “inspect before every refund” isn’t a universal rule.
TikTok Shop orders follow TikTok’s own channel-specific return/refund flow rather than this Shopify sequence.
A separate fulfillment provider’s own system illustrates why inspection matters when a physical return is involved: a returned unit has only a few real outcomes (restock, quarantine, dispose), so somebody has to make that call before it’s sellable again.
Does TikTok Shop’s shipping SLA apply to parcels shipped from China?
Not automatically.
This article reopened TikTok Shop’s US Seller University page, which scopes itself to US domestic seller-shipping and includes a cross-border note in its tracking-correction guidance — so it isn’t accurate to say the page contains no cross-border mention at all, though this article only reviewed that page’s summary text, not its full body.
Either way, the domestic SLA numbers on that page don’t by themselves qualify a China-origin route for TikTok’s US seller-shipping program.
Confirm your site, seller program, fulfillment method and actual ship-from location in your own TikTok Seller Center account before assuming eligibility.
External Sources
Setting up order fulfillment for locations , Shopify Help Center
Fulfilling orders using a fulfillment service with an app , Shopify Help Center
Fulfilling orders , Shopify Help Center (overview)
Fulfilling your own orders in bulk , Shopify Help Center — cited per the ChatGPT 6 Pro audit’s review, not independently fetched this session
Fulfilling your orders in batches , Shopify Help Center — cited per the ChatGPT 6 Pro audit’s review, not independently fetched this session
Setting up quantity rules and volume pricing in B2B , Shopify Help Center — cited per the ChatGPT 6 Pro audit’s review, not independently fetched this session
Understanding inventory states , Shopify Help Center — cited per the ChatGPT 6 Pro audit’s review, not independently fetched this session
Setting up and managing shipping profiles , Shopify Help Center — cited per the ChatGPT 6 Pro audit’s review, not independently fetched this session
Managing TikTok Shop orders , Shopify Help Center — cited per the ChatGPT 6 Pro audit’s review, not independently fetched this session
Setting up TikTok Shop , Shopify Help Center — fetched and saved as HTML by this revision’s controller on 2026-10-03 (HTTP 200); this session read the saved file
Seller Shipping: Overview and Services , TikTok Shop Seller University (US)
Received the wrong quantity? , Shopify Community
Should I use a 3PL service or handle shipping and assembly in-house? , Shopify Community
Two stores with stock sync and issue with committed inventory , Shopify Community, 2025-05-18
List products across Wix, Shopify and BigCommerce , Shopify Community, 2022-06-23
Product data, inventory, order sync for multiple stores , Shopify Community, 2024-02-20
Returns , ShipBob developer documentation
Setting up return and cancellation rules , Shopify Help Center
Refunding orders , Shopify Help Center
Returns and exchanges , Shopify Help Center
Chargebacks and inquiries , Shopify Help Center
Order tracking at Shopify , Shopify Help Center
Understanding order status pages , Shopify Help Center
Setting up customer notifications , Shopify Help Center
Understanding shipping carriers , Shopify Help Center
Fulfilling your own orders individually , Shopify Help Center
Fulfillment services , Shopify Help Center
Orders with multiple items is split into two fulfillments , Shopify Community — background only, a WebSearch summary, not quoted
Inventory tracking issues with multiple warehouse , Reddit r/shopify — background only, illustrative, not a statistic
How this article was sourced. The Shopify locations, app-fulfillment, fulfillment-overview, return-rules and refunding-orders pages, and the TikTok Shop US Seller University page, were reopened directly by this article’s own research on October 3, 2026.
The seller-forum threads and the ShipBob documentation were independently verified in earlier research for sibling ASG articles and carried forward with original fetch dates.
The TikTok Seller Shipping page is a single-page application; this article’s own fetch only retrieved its page-level summary text, not the full body — a one-time external review of this article (ChatGPT 6 Pro, 2026-10-03) separately reported reopening the page’s full body and finding it also contains a cross-border note in its tracking-correction guidance, which this article has not independently re-verified.
The bulk-fulfillment, batch-fulfillment, B2B quantity-rules, inventory-states, shipping-profiles and TikTok-orders Shopify Help pages were not successfully fetched with real content by this article’s own research (connection timeouts or HTTP 403 block pages — see evidence-raw/pro-targeted/receipt.json); they are cited above because that same external review’s own re-verification described their content, and this revision narrowed or removed the corresponding claims to match only what that review actually reported, without claiming this article independently confirmed the page text.
The TikTok Shop setup page was fetched successfully (HTTP 200) by this revision’s own tooling on 2026-10-03 and its real text is quoted in 02-sources.jsonl (S29).
ASG data note. ASG figures — verified-factory count, catalog size, sourcing-platform count, seller count, countries served, years in operation, warehouse count, logistics reference lead times — come from ASG’s internal operating records.
The 500-plus-orders-per-day threshold for stockout alerts and sales-velocity pre-positioning is ASG’s own Key-Account program gate, not a starting capability.