Sourcing: from source catalog to selling on Shopify
Connect a source platform like CJ Dropshipping, pull products into a review pool, publish the good ones to your catalog, and push them to Shopify — with stock that never oversells.
Sourcing answers one question for sellers who do not hold their own stock: "The source platform has ten thousand products — which ones do I sell, at what cost, and how much stock dare I show?" The flow is always the same five steps: connect the source platform, pull products into a review pool, publish the ones you picked, let the system keep the sellable stock honest, and push to your sales channel.
Your home base — the Overview page#
Sourcing → Overview is where a working day starts. The top cards count what needs you today: costs waiting for confirmation, open exceptions, SKUs not mapped yet, and connections whose stock data has gone stale. Below, every source connection shows its health — when it last pulled, how many products it carries, and whether it is still syncing. Click a count and you land in the exact queue that needs the work; nothing to hunt for.
Step 1 — Connect the source platform#
Go to Integration → Connections and create a connection for your source platform (CJ Dropshipping is supported first). If you do not have the platform credentials yet, you can still walk the whole flow with sample data first — the pages clearly mark sample data as simulated, so you can learn every step before the real credentials arrive.
Step 2 — Pull products into the pool#
Open Sourcing → Product Pool, pick the source connection and click "Pull products". Pulled products land in the pool only — they are not in your catalog yet and customers cannot buy them. You can also schedule the pull (and the inventory sync below) with the ready-made Integration flow templates, so the pool refreshes itself every few hours.
Step 3 — Review and publish#
Tick the products you want and click "Publish selected". Before anything becomes a real catalog product, three automatic checks run: brand and prohibited words (maintain the word list in Sourcing → Settings), products without images, and products without a valid variant SKU are stopped and told to you in plain words. Publishing creates the product with an SKU built from the source platform prefix plus the source SKU (for CJ, like CJ-LED-LAMP-01), so the same item never gets two identities.
Expand any pool row to see it variant by variant: each variant shows its cost, source stock, the sale price worked out by your pricing rule, and the gross margin (marked "excluding shipping", so you compare like with like). The row also carries a change summary — what moved since the last pull: cost up or down, stock changed, status changed — and the "changes only" filter in the query area narrows the pool to just those rows when a big catalog refresh lands.
Do not want the new cost? Expand the row and click "Keep old cost": pricing keeps the old cost, the new one is noted as ignored, and the product sells on as before. If a later pull brings another cost change, it will ask again — nothing is accepted silently.
Publish with a pre-check — confirm item by item#
When you publish from the pool, the pre-check runs first and lists every selected product with its verdict: ready, or blocked with the reason in plain words (brand or prohibited word hit, no image, no valid variant SKU, and so on). Nothing is published at this point. Tick only the rows you accept — the ones you leave unticked stay in the pool — and publish the ticked set in one go. The same check also runs inside a real publish, so a blocked row can never slip through by another route.
Step 4 — How sellable stock is counted#
Each source connection gets its own virtual warehouse (for CJ it is called CJ-WH). It is an inventory account, not a place your warehouse team works in. Source stock is converted before it becomes sellable: by default only 80% is shown, and items with fewer than 5 units at the source platform show as zero — source stock numbers are optimistic, and this buffer is what keeps you from overselling. If syncing stops for too long, the sellable stock automatically drops to zero until the next successful sync, instead of selling against stale numbers.
Step 5 — Push to Shopify#
In Sourcing → Published Products, tick the products, choose your Shopify connection and push. The channel SKU is your product SKU by default, so orders coming back can always find the right product. If a source SKU ever fails to match a product automatically, it waits in Sourcing → Mapping Issues — bind it to the right product there (or ignore it) instead of orders failing later.
Product mappings — which source SKU sells as which product#
Open Sourcing → Product Mappings to see both sides in one place. The "Mapped" view lists every source SKU already tied to one of your products — the primary source is badged, and you can unbind a row that was matched wrong (after unbinding, stock and orders for that source SKU will not find a product until you bind it again). The "Unmapped" view lists source SKUs with no product yet: search by SKU or product name, pick the right product, and bind. SKUs from ignored or delisted pool items no longer show up here — there is nothing to sell for them.
The exception queue — compare candidates, adopt in one click#
When a source SKU cannot be matched to a product automatically, it lands in Sourcing → Exception Queue, grouped and counted by problem type, so you can work one kind of problem at a time. Open a row and the system shows the suggested candidate products side by side with the source item — compare title and SKU, and if one is right, adopt it in one click: the mapping is created on the spot and the exception closes. If none of the candidates fit, expand the row and bind any product by hand, or jump to Product Mappings with the search already filled in.
Settings — pricing you can preview, and a word list with types#
Sourcing → Settings holds the pricing rule (markup on cost), the per-connection stock strategy, and the compliance word list. The pricing rule comes with a live preview: type a sample cost and the sale price under the current rule appears immediately (marked "excluding shipping", matching how margins are shown in the pool), so you can tune the markup before saving instead of guessing. Word list entries have a type — brand word or prohibited word — shown as a badge you can filter by; a title hitting either type blocks publishing, and the types keep the list manageable as it grows.
Where Sourcing lives now: left sidebar, and a rebuilt query area#
The Sourcing pages (Overview, Product Pool, Published Products, Settings, and the exception queue) now live in the left sidebar menu — the old top tab bar is gone, so you always enter Sourcing from the same place as every other module. The query area on the list pages was rebuilt on the order-query pattern: all filter fields sit in one row group above the list, and whatever you type is applied directly — no hidden "advanced" panel to open first.
Docklify features used in this article#
- Sourcing → Overview — connection health plus the to-do counts (costs to confirm, open exceptions, unmapped SKUs, stale stock)
- Sourcing → Product Pool — pull, review, ignore, publish
- Sourcing → Published Products — cost confirmation and Shopify push
- Sourcing → Mapping Issues — bind or ignore unmatched source SKUs
- Sourcing → Product Mappings — mapped/unmapped views, bind and unbind source SKUs
- Sourcing → Settings — pricing rule, connection stock strategy, compliance word list
- Integration → Connections and flow templates — source connection, scheduled pull and inventory sync