This article follows one custom rug through CommerceServer, from the quote to the purchase order and delivery to the warehouse. It builds on One B2B job from quote to purchase order, which covers the pricing, charges and invoice for a whole job, and on What software for a flooring or rug wholesaler has to handle. The rug, the mill and the prices here are illustrative.

Illustration titled One rug, defined once. A rug leads to three cards labelled Quote, Sales order and Purchase order to the mill, joined by arrows. A navy bar reads Size, specs and cost carry through.
Figure 1. The rug is defined once on the quote. The sales order and the purchase order to the mill carry the same details.

The example: one rug for a design firm

A designer wants a 12 ft by 15 ft wool rug in a custom color for a client's living room. An overseas mill makes it. The mill charges $52 per square yard, and the design firm buys at a trade price of $85 per square yard.

The rug is 180 square feet, or 20 square yards. At $85 per square yard it sells for $1,700. At $52 per square yard it costs $1,040, a difference of $660 before freight and other costs.

Step 1: Define the rug on the quote

The rep opens a quote for the design firm and creates the custom rug from the quote itself. The form asks for:

  • a name and a description
  • the style or design code
  • the width and length, in feet or inches
  • the color and the material
  • the mill, the mill's product code for the rug, and the cost with its unit, such as $52 per square yard
  • the sell price with its unit, such as $85 per square yard

A few rules keep the record clean. The cost and its unit are entered together, and so are the price and its unit. A custom rug has exactly one mill, and it must be an active vendor. If the rep leaves the product code blank, CommerceServer creates one, and it rejects a code that already exists. The rug is saved in one step: the whole record is saved, or none of it is.

If the rug is close to something already in the catalog, the rep can start from a copy of that product. The original product does not change.

The rug is saved as a product in a Custom Rugs category, tracked in inventory and shipped like any other product. It stays after the quote closes, so the next designer who wants the same rug, or a variation, starts from a complete record.

Step 2: Price it before the mill confirms

Mills can take days to confirm a price for a custom size or color. The rep does not have to guess: the sell price can be left blank while the mill confirms.

A blank price does not mean a free rug. A quote line without a price is marked "price not set", and CommerceServer will not turn the quote into an order until every line has a price. When the rep types in a price that differs from the price list, the line is marked as an override, so a reviewer can see which prices were typed in.

The rep enters the size, and CommerceServer converts it to square yards and prices the line by area.

Step 3: Turn the quote into an order

When the designer approves, the rep converts the quote to a sales order and records the design firm's own purchase order number and payment terms. The quote and the order are the same record, so the rug, its size, its notes and its price are already on the order. CommerceServer will not convert an empty quote or one with a missing price.

After conversion the rug's details are protected. On a sales order only an administrator can change them, and nobody can once the order is finalized. A rep cannot change the size after the designer has approved it.

Step 4: Order it from the mill

From the sales order, the buyer chooses the rug line and the mill. CommerceServer already knows the mill and its cost for this rug. It shows how much of the line still has to be ordered and any purchase order that already covers it. The rug goes onto a new purchase order to the mill, or onto a draft already open for that mill.

The purchase order carries the details from the sales order line: the size, the specifications and the notes. The buyer adds the delivery warehouse, a sidemark for the designer's job, the expected ship date and any special instructions, then prints the purchase order to send to the mill. The purchase order and the sales order link to each other.

A purchase order is a draft until the buyer places it. Placed means you have ordered from the mill. It does not mean the mill has confirmed.

When the buyer places it, CommerceServer creates a record for the rug, marked on order and held for the designer's order line. It stays held for that order unless staff change the hold.

Step 5: Track it until it arrives

Staff record each stage from the mill's notices. When the mill ships, the buyer records the shipment with the expected arrival date and the shipment reference, and the rug moves to in transit. When it arrives, the warehouse receives it into a location with the date received. It is now in stock and still held for the designer's order. It is the same rug record the whole way.

Illustration titled Held for the order. A banner reads Held for the designer's order above three cards joined by arrows: On order, In transit and In stock. A bar at the bottom reads: One rug record from mill to warehouse.
Figure 2. From the moment the purchase order is placed, the rug is held for the designer's order until it is in stock.

The sales order has its own status: open, converted to an order, paid, fulfilled or voided.

The designer's questions are when the rug ships and when it arrives.

Our client now runs its own custom workflow, custom business rules and custom reporting, all supported in CommerceServer. It never had that in 15 years on Zoho. Every feature and report it asked for was built, plus the B2B portal. How our client left Zoho in one month tells that story.

What staff still do

CommerceServer does not email the purchase order to the mill. The buyer prints it and sends it. It does not record the mill's confirmation, and it does not take shipment updates from the mill or a carrier. Staff enter those from the notices they receive. A quote does not reserve stock; goods are held once there is a sales order.

Check your last custom rug order

Find the last custom rug you sold and follow it through your current system:

  • Was the size typed more than once? Does the purchase order match the quote exactly?
  • Was the mill's cost known before the designer approved the price?
  • Could anyone change the size after the designer approved it?
  • Does the purchase order point back to the customer's order?
  • When the rug arrived, was it held for that customer, or could it have gone to someone else?
  • Could you tell the designer today where the rug is without calling the mill?

If any answer depends on someone's memory or a note on a desk, that is where custom rug orders go wrong.

Show us your last custom rug order

CommerceServer is built, run and continually improved by one accountable team, with the improvement capacity agreed for each engagement. Tell us about your current system, or read how full service works.