All our thoughts

Inter-company dropship: one order, two companies.

Codeture

5 min read

We work with a business that owns several brands. Each brand is its own company, with its own stock and its own warehouse. One of them runs a Shopify store that sells the others’ products. We’ll call that one the selling company. The company that owns the stock is the supplying company.

The selling company doesn’t want the supplying company’s stock on its books. It wants to sell a duvet, have the supplying company ship it, and let the two settle up afterwards.

There are two ways to do this:

  1. Shopify Collective. A Shopify-owned app that connects two Shopify stores. The supplying company’s products are copied into the selling company’s store, and every order is copied back to the supplying company’s store to be shipped.
  2. Inter-company dropship in Fulfil. The selling company lists the products in its own store. The order comes into Fulfil once, and Fulfil hands the shipment to the supplying company.

Shopify Collective works the same for every brand you sell, including brands outside your own business. For companies inside the same business, we prefer Fulfil’s native way. This post explains why, and how it works.

To make it easier to follow, enter your own selling company and supplying company below. The rest of the post will use them.

One order, two companies

Use your own company names. The order below and the rest of this post follow along.

  1. The customer

    Buys a duvet from Brand B on Brand A's Shopify store. Brand A owns the order and the revenue.

  2. Fulfil

    Routes the order to Brand B's warehouse, where the duvets are.

  3. The shipment

    Switches to Brand B, which picks, packs and ships it.

  4. The books

    When the duvet ships, Fulfil creates three invoices. Nobody touches them.

Invoices Fulfil creates

  • Brand A invoices the customerCustomer
  • Brand B invoices Brand A for the duvet, at the transfer priceInter-company
  • Brand A gets the matching supplier invoice from Brand BSupplier

What we tried first: Shopify Collective

We started on Shopify Collective. The supplying company’s products were copied into the selling company’s Shopify store, and the orders were copied back. It worked, but the problems added up.

  1. No stock held back. The selling company could sell every unit a supplying company had. The supplying companies wanted to keep some for their own customers, and Shopify Collective has no setting for that.
  2. The supplying company’s shipping rules came along. Its shipping policy applied to its products in the selling company’s store, and the selling company couldn’t override it.
  3. Every order lived in two Shopify stores. One sale, two orders, and two places to look when a customer called.
  4. Too many workarounds in Fulfil. Shopify Collective orders don’t arrive in Fulfil the way normal orders do. We wrote a custom order import to make them behave.

The fourth one decided it. When the setup needs that many workarounds, it’s the wrong setup. So we moved the supplying companies over to Fulfil’s native way, one at a time.

What inter-company dropship needs in Fulfil

Both companies run in the same Fulfil instance. That’s the one hard requirement. Inter-company dropship only works between companies Fulfil knows are related.

A transfer price list, if you want one. Brand B invoices Brand A for every item it ships. By default the price is the product’s cost price, so Brand B passes the item on at cost. If Brand B should make a margin on it, give Brand A a price list and Fulfil uses that instead.

Fulfil’s docs cover the accounting in detail. The short version: nobody posts journal entries by hand, and consolidated reports leave out the sale between the two companies.

Decide which stock the selling company gets

Brand A’s store has to show what Brand B really has. Fulfil sends that stock to a Shopify location in Brand A’s store, one location per supplying company.

How you set that up depends on one question: should Brand A sell from the same stock as Brand B, or from stock set aside for it?

Selling from the same stock. Brand A’s store reads from the warehouses Brand B already uses. You add a safety stock on Brand A’s sales channel, so Brand A can never sell everything.

Selling from a dedicated location. Use this when Brand A should only sell a set amount, for example what it forecast. That’s different from a safety stock. A safety stock keeps a minimum back for Brand B. A dedicated location puts a maximum on what Brand A can sell.

The stock in that location still belongs to Brand B. Giving Brand A more or less of it is a stock move inside Brand B’s own company, not a sale between the two, so nothing happens in the books until a customer orders.

One thing to arrange early: by default, Fulfil only sends a Shopify store the stock of the company that owns that store. The Fulfil team has to switch on a beta flag to send another company’s stock, and the flag applies to the whole instance.

Fix the product data first

When a new product comes in from Shopify, Fulfil matches it to an existing product on SKU, then on barcode, then on title. In our case, the selling company’s products had its own SKUs and no barcodes. Fulfil found no match and created new products, with nothing on the shelf. About 125 variants showed the wrong stock or none at all.

The fix is simple: fill in the barcodes, match the copies to the real products and archive the copies.

The selling company can still use its own SKUs. Add them to the supplying company’s product as supplier SKUs, so both SKUs point at the same product in Fulfil. Its own images and descriptions are no problem either, because it lists the products in its own Shopify store.

It also helps to set the brand on every product. It isn’t required, but it lets you send orders to the right warehouse with one rule per brand.

Long story short: get your product data right first. Fulfil is not a product information system, and it won’t fix your data for you. If you run several brands, a PIM or PLM that feeds both Shopify and Fulfil saves you this whole detour.

The trade-offs

  • A mixed order ships as two parcels. If a customer buys Brand B’s duvet and Brand A’s pillow, each company ships its own part. That costs an extra parcel. It’s also what many selling companies want, because their own products go out in their own packaging. And when both companies share a warehouse, you can still combine the parcels there.
  • The warehouse team works per company. In Fulfil you switch companies to see each company’s shipments, and there’s no combined picking, even when the stock sits in the same building. Fulfil’s warehouse tools work best for one company. Running several companies from one warehouse is close to what a 3PL does, and that’s where they run short.
  • Returns stay with the selling company. They go back to Brand A. Fulfil has no automatic return between the two companies, so a credit is a manual invoice.

The team we did this for accepted all three. Not having the stock on the selling company’s books was worth more to them.

Before you go live

  • Go one supplying company at a time. Set one up, watch its orders and stock for a few days, then do the next.
  • Check your bundles. A product built from a bill of materials needs its availability set to bill of materials, so Fulfil works out its stock from the parts.
  • Tell the selling company what will go out of stock. Showing real stock means showing the gaps. Send the list before you switch, not after.
  • Check the old dropship rules. If the selling company already dropships for outside suppliers, make sure those rules skip Brand B’s warehouse. Otherwise Fulfil creates a purchase order next to the shipment.
  • Keep the old process running until the orders placed before the switch have shipped.
  • Coming from Shopify Collective? Don’t uninstall it yet. Uninstalling archives the products in Shopify and their listings in Fulfil. Plan to reactivate them.

For this business, it was a first step into selling each other’s products. Now that it runs, more can follow: stores that mix brands, and other ways for the brands to sell for each other.

We’ve written before that most Shopify brands under $100M don’t need an ERP. A business with several companies is one of the exceptions.

Profit with Purpose

Embrace growth opportunities and build a resilient, online retail business together. Let us guide you in striking the perfect balance between profitability and sustainability.