# Selling furniture, bedding and homeware online

> In furniture, the catalogue is almost never the hard part: what happens between the click and the buyer’s doorway is. Volume, lead time and collection decide the margin far more than the shelf price.

- Source canonique : [https://allaux.fr/en/secteurs/meuble-literie-decoration](https://allaux.fr/en/secteurs/meuble-literie-decoration)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Carriage is priced on volume, not on weight

Carriers charge the higher of two figures: the one derived from actual weight, and the one derived from volumetric weight, obtained by multiplying the parcel dimensions and dividing by a coefficient specific to the operator. A sofa weighs little and takes up a lot; it is expensive to move even though the scales say otherwise.

Yet PrestaShop and WooCommerce natively price delivery by weight band or price band only. Until the three dimensions are stored per variant and a chargeable weight is computed at basket time, every bulky order ships with under-recovered carriage. That is not a settings detail: it is the margin on the order.

## The sticking points specific to furniture

- Oversized goods and the services around them: past a certain bulk you leave parcel networks for dedicated haulage, with booked delivery slots, room-of-choice placement, unpacking and removal of the old item. These are chargeable checkout options driven by basket contents, not carriers in the CMS sense.
- Furniture disposal levy: the unit waste-management charge must be made known to the buyer, distance selling included. It cannot be discounted, cannot be folded into the price, and must appear unchanged on the invoice.
- The technical translation of that rule: an amount attached to the reference, shown separately from the price, excluded from promotion rules and carried through to the accounting document as is.
- Supplier lead times: furniture is often ordered from the supplier after the sale. The product page has to announce an availability date per finish, not a single global status.
- Mixed baskets: items in stock alongside items on order. You must choose between one shipment at the latest date and two separate shipments, and say so before payment.
- Dimensional variants: width, depth, finish and orientation — left-hand or right-hand corner — produce dozens of combinations, most of which will never be stocked. Fabric swatches are themselves products to be shipped.
- Returns: the right to withdraw applies, but returning a bulky item costs nothing like returning a parcel. That cost has to be stated before the order and the collection logistics planned from the start.

## What I put in place against those constraints

I start with the data model, because everything else rests on it: length, width and height stored at variant level rather than product level, plus a parcel count when an item travels in several packages. Chargeable weight then becomes a function of the basket, applied before delivery methods are displayed rather than afterwards.

Delivery services are modelled as chargeable options attached to the order, gated by basket contents and by the chosen method: offering room-of-choice placement on a collection-point shipment makes no sense, and a checkout that offers it anyway eventually produces a complaint. The disposal levy lives in its own field on the reference, added separately and shielded from discount rules.

Availability, finally, is expressed per variant as a date rather than a plain in-stock flag. That date feeds the product page message, the basket summary and the confirmation email, so the buyer reads the same thing in all three places.

## Useful pages on delivery and catalogue

- **Shipping costs are not applied** — Uncovered zone, missing shipping class, badly bounded band: why a WooCommerce basket drops to zero. ([/wordpress-woocommerce/problemes/frais-de-port-ne-s-appliquent-pas](/wordpress-woocommerce/problemes/frais-de-port-ne-s-appliquent-pas))
- **Setting up a carrier** — Step-by-step configuration of zones, bands and ranges, with the classic traps. ([/guides/configurer-transporteur-prestashop](/guides/configurer-transporteur-prestashop))
- **Carriers and delivery** — An overview of the delivery topics covered on the PrestaShop side, from pickup points to band calculation. ([/prestashop/transporteurs-livraison](/prestashop/transporteurs-livraison))
- **Variant** — What a variant is and how it behaves, which matters once a range crosses three axes at once. ([/glossaire/declinaison](/glossaire/declinaison))

## A sector I see little of

> Worth saying plainly: furniture rarely turns up among the projects sent to me, unlike trade selling or spare parts. Its constraints are nonetheless among the sharpest in e-commerce, and they are settled before launch rather than after the first order shipped at a loss.

## FAQ

### How do I price carriage realistically on a bulky item?

By storing dimensions per variant, computing a volumetric weight with the chosen carrier’s coefficient, then keeping the higher of the two weights. The calculation runs on the whole basket, parcel by parcel, never on an average of its contents.

### Should room-of-choice delivery be a carrier or an option?

A chargeable option attached to the order. Making it a carrier forces you to duplicate every rate grid for every combination of services, and the list of methods in checkout quickly becomes unreadable.

### Where should the disposal levy be shown?

On the product page, in the basket summary and on the invoice, with the same amount everywhere, separate from the selling price. It must never enter a percentage discount calculation or vanish during a promotion.

### How do I handle a basket mixing stocked and back-ordered items?

Pick a rule and announce it: either one shipment at the latest date, or two shipments with the matching carriage. What triggers complaints is not the wait itself, it is discovering it after payment.

### Should every possible combination become a variant?

Rarely. Past a few dozen combinations it is better to generate only the ones genuinely orderable and treat the rest as made-to-order, otherwise the product page becomes unmanageable and stock figures stop meaning anything.

### Can the return cost be left to the buyer?

The right to withdraw still applies, and the buyer may bear the return cost provided they were clearly told before ordering. On a bulky item that statement belongs in checkout, not buried in the terms and conditions.
