The rate card gets the attention. The contract gets the signature. A seller compares per-order fees, chooses the lower column and signs a document that decides what happens when an order is late, a carton is lost, a rate changes or after the relationship ends. The rate card is a price. The contract is the operating manual.
Our DTC fulfillment team works out of our China hub for stores shipping five orders daily or more, and we read fulfillment contracts from both sides. The seven questions below are the ones that change the cost and the risk after the first month. None of them is legal advice; they are the questions a seller should put to a provider and to a lawyer before signing.
A Contract Is an Operating Manual
The signature commits the seller to a document, not only to a rate. It describes how the warehouse receives stock, stores it, picks it, packs it, ships it, handles returns and reports what happened. If the document does not describe those steps, the warehouse will fill the gap with its own default.
The default is not always bad. A provider with a clear process may run it well without writing every step. The problem is that the seller cannot see the default until it is applied to an order. The contract is where the default becomes visible.
The contract should be readable by the person who runs the account, not only by a lawyer. A good contract is written for the Tuesday afternoon, not the signing day. When a parcel is lost or a pick is late, the account team can open the clause, find the trigger and follow the next step without calling legal. The clause should also say how the exception is logged, who reviews it and how the seller is told. If the clause cannot answer that question, it will be argued rather than used.
The contract also decides who owns a problem. A late order, a wrong item, a lost parcel, a stock discrepancy: each one has a cause, a cost and an owner. A contract that leaves the owner unstated turns every problem into a negotiation.
Scope and Exclusions
The first question is scope. Inbound, storage, picking and packing, labeling, dispatch, tracking and returns are separate operations. A quote that says "fulfillment" without listing them leaves the scope undefined.
Next, what is excluded. Dangerous goods, batteries, liquids, oversized items, high-value items, serialized stock, cold chain, customs clearance, duties and taxes. A provider that cannot handle a category should say so before the stock arrives.
Within scope, the boundary question is who does what. Who books the carrier, who clears customs, who owns the commercial invoice, who handles a failed delivery, who decides a return is resellable. The boundary is where most disputes start.
The contract should name who is accountable for each go-live step and what happens if a go-live date slips.
The scope should also name the systems. Which platform, which order flow, which inventory file, which tracking feed. A provider that supports Shopify in a demo may support it differently in production. The contract should name the integration, not the brand.
Term, Notice and Renewal
The second question is time. How long is the initial term, how does it renew, and how much notice is required to stop it. A twelve-month term with a ninety-day notice is a different commitment from a monthly term with thirty days.
The renewal clause deserves its own read. An automatic renewal can lock a seller into another year after a quiet anniversary. A renewal that requires a written notice is easier to manage, but it puts the calendar on the seller. The contract should say which one applies.
The notice clause should also say what happens during the notice period. Does the provider keep accepting orders? Does it keep the same cut-off? Does it charge a higher rate? A notice period without service terms is a gap.
The term should match the seller's season. A store that ships heavily in the fourth quarter should not discover that its contract renews in November with no exit until February. The calendar is part of the commercial deal.
Minimums and Rate Changes
The third question is money after the first invoice. Is there a monthly floor, a per-order floor, a storage floor or a combination? The contract should state whether a monthly, per-order or storage floor applies and how it is calculated.
The rate-change clause is the next question. How much notice is required, what index or trigger is used, and whether the change applies to existing stock or only to new inbound. A rate that can move without notice cannot be budgeted.
The accessorial list belongs here too. Oversize, overweight, address correction, reshipment, manual order, peak surcharge, long storage, return disposal. The contract should name the events that trigger an extra charge and the amount or the formula.
The billing cadence is the last money question. Weekly, monthly, in arrears or in advance. A seller who is paid by Shopify on a rolling basis needs a billing cycle that does not create a cash gap before the first peak month.
Inventory, Loss and Liability
The fourth question is the stock. Who holds title to the stock while it sits in the warehouse, who insures it, and what happens if it is lost, damaged or mis-shipped. The contract should answer those questions in writing, not in a support ticket.
The liability clause should name the cap, the claim window and the evidence required. A cap that is lower than the value of a peak shipment is a business risk, not a legal detail. A claim window that expires before the seller can reconcile the month is a trap.
The inventory record should also state the count rhythm. How often the provider counts, how it reports a discrepancy, and who covers a recount. A stock count that happens only when the contract ends is not a control.
The inventory clause should also say whether the stock is stored as the seller's property or as the provider's. Whether a consignment arrangement changes who bears the loss and who insures the stock is a question for counsel; the contract should state the answer in writing.
The insurance question is separate from the liability cap. The provider may carry cover, the seller may carry cover, or neither may. The contract should say who is insured, for what and up to which limit.
Data, API and Access
The fifth question is the data. Who owns the order, inventory and tracking data; who can export it; how often it syncs; and what happens if an integration breaks. A provider that holds the data can hold the relationship.
The API question should name the direction and the failure mode. Orders flow in, tracking flows back, inventory updates on a stated rhythm. A batch sync differs from a real-time sync, and a webhook differs from a nightly file.
The access question should name the portal and the reports. Can the seller see stock, orders, exceptions and invoices without opening a ticket? Can the seller export a file that matches the Shopify order ID? A portal that cannot show those numbers is only a dashboard.
The data clause should also cover the exit. What happens to the order history, the customer records and the stock file after the relationship ends. A provider that deletes the data on the last day leaves the seller with no reconciliation.
Exit and Transition
The sixth question is the exit. How much notice, what fees, how the stock is returned, how the open orders are finished and how the data is transferred. An exit clause shows both sides understand the relationship has a lifecycle.
The stock return should name the packing standard, the carrier, the cost and the timeline. A provider that returns stock in a loose carton can damage the goods on the way out. The contract should say who packs, who pays and who signs the handover.
The open-order clause should say what happens to orders already in the queue. Are they shipped at the old rate, the new rate or not at all? A transition that leaves the seller's customers waiting is worse than a higher fee.
The transition should name a cut-off date and a stock freeze. Without a freeze, orders can be picked from stock that is already booked for transfer.
The data export should be named in the same clause. The order file, the inventory file, the returns file and the invoice history. A seller who can leave with the data can leave without a fight. A seller who cannot is dependent, not partnered.
The seventh question is not a clause but a person. Who owns the account day to day, who answers at 11 pm on a peak night, and who can stop a shipment when something is wrong. A contract without a named owner is a document without an operator. The backup should be named in the contract, not discovered during a holiday.
The owner should have authority. A support agent who can open a ticket differs from a manager who can hold a pick, waive a fee or authorize a reship. The contract should name the escalation path and the reply window.
The owner should also have a backup. A single account manager on holiday is a single point of failure. A provider that cannot name a second person has not designed for continuity.
A fulfillment contract is the document that decides how the warehouse behaves when the order flow is normal and when it is not. That is the test of a working contract. The seven questions above are the ones we would ask before signing. The answers belong in writing, not in a call.
Send the draft contract and the rate card you are comparing (/contact-us). Our DTC program starts with stores at five orders daily or more. The contracting company is named Dore Technology Co., Ltd. Its floor operation behind those clauses is described on /b2c-fulfillment. For legal advice, consult counsel; this is a reading list for the signature.