Connect CJ Dropshipping — MerchantFlow
Connect your CJ Dropshipping account to MerchantFlow to pull real fulfillment and shipping costs into your P&L instead of estimating them, with tracking numbers on every fulfilled order.
Connect CJ Dropshipping to MerchantFlow
The CJ Dropshipping integration connects your CJ account to MerchantFlow so that real fulfillment and shipping costs reach your profit reports, instead of the estimate your fulfillment cost method would otherwise apply.
What Is the CJ Dropshipping Integration?
CJ Dropshipping sources and ships products on your behalf, which means the cost of getting an order to the customer is set by CJ rather than by you. MerchantFlow reads that data directly from CJ and uses the actual per-order figures in your P&L.
This matters more for dropshipping than for most models. Shipping cost varies by destination and by product, so a single blended percentage will be wrong on most orders -- overstating margin on expensive international shipments and understating it on cheap domestic ones.
How to Connect CJ Dropshipping
Open Settings → Integrations and find the CJ Dropshipping section. There is no OAuth redirect; you paste a credential.
You need one value:
- API Key -- in CJ Dropshipping, open My CJ → Authorization → API, go to the API Key tab and click Generate. The value looks like
CJUserNum@api@xxxx
MerchantFlow exchanges the key for a CJ access token as you connect, so a wrong or expired key is rejected on the spot rather than surfacing as a health error on the first sync. After that, MerchantFlow renews the token itself -- you do not re-enter the key.
Before the credential is accepted, MerchantFlow requires that your email is verified and that two-factor authentication is satisfied. These apply to credential-paste integrations exactly as they do to OAuth ones. You also need the integrations:manage permission, which owners and admins have by default.
What Data Does MerchantFlow Sync from CJ Dropshipping?
- Shipping cost -- CJ's actual postage charge per order, written to the order as its fulfillment cost
- Tracking numbers and tracking URLs -- shipment tracking for fulfilled orders
- Carrier name -- the logistics company CJ shipped with
- Fulfillment status -- normalized to shipped, processing, or cancelled so MerchantFlow can tell shipped orders from in-progress ones
CJ reports every amount in USD. MerchantFlow converts to your workspace currency on the way in, and treats a reported cost of zero as "not billed yet" rather than as free shipping.
How the CJ Sync Works
CJ enforces a strict API rate limit of roughly one request per second, so MerchantFlow paces its calls deliberately rather than fetching everything at once. Two consequences are worth knowing:
- The sync scopes itself. Each run looks at orders that are still missing a tracking number or a fulfillment cost, plus every order from the last 14 days regardless of state -- not your whole history. An order that already has both its tracking number and its cost, and is older than two weeks, is not re-checked.
- Newest first, capped per run. Orders are processed in descending order date, so the most recent activity settles first when there is a backlog, and a single run looks at at most 200 orders. Anything beyond that carries over to the next run.
In normal operation a store stays well inside these bounds, and fulfillment data appears within a sync cycle of CJ marking the order shipped.
CJ Dropshipping also appears as its own scope in the Manual Sync Runner, so you can trigger a CJ sync on its own without running a full sync.
What Happens If You Disconnect
Disconnecting falls back to your non-3PL fulfillment setup -- the percentage or per-product method configured in Fulfillment Costs. Costs already written to past orders stay as they are.
Frequently Asked Questions
Do I need CJ Dropshipping to use MerchantFlow?
No. It is optional. Without it, MerchantFlow uses your configured fulfillment cost method, so your P&L still includes fulfillment expenses -- just estimated rather than actual.
Does CJ also supply my product costs?
No. MerchantFlow uses CJ only for fulfillment and shipping cost -- your COGS keeps coming from your COGS setup, so keep that maintained even with CJ connected. (This is the difference from Gooten, which does write your COGS.)
Why do recent orders have no CJ cost yet?
Because CJ has not shipped them yet. Fulfillment cost is only known once CJ fulfills the order, so unshipped orders fall back to your estimated method until the data arrives.
How do I update my API key?
Return to Settings → Integrations, open the CJ Dropshipping section, and enter the new key. Other integrations are unaffected.
Related Guides
- Fulfillment Costs -- methods used when no 3PL is connected
- Speedfulfill -- another supported 3PL cost source
- Integrations Overview -- all supported integrations
- Manual Sync -- trigger a CJ sync on demand
- Troubleshooting Integrations -- fix connection issues
Last updated on
Connect Speedfulfill 3PL — MerchantFlow
How to connect Speedfulfill to MerchantFlow for warehouse fulfillment data, shipping costs, and tracking numbers in your profitability reports.
Connect Gooten — MerchantFlow
Connect Gooten print-on-demand to MerchantFlow to pull real production and shipping costs into your P&L. Gooten supplies both product cost and fulfillment cost per order.