How to Calculate Packaging Weight per Material From Shopify Orders

Shopify keeps no record of the packaging each order used. A practical method to work out kg per material per country for LUCID and Citeo from shipped orders.

In this guide
  1. What each scheme actually needs
  2. German material types
  3. The method in six steps
  4. Pitfalls that skew the totals
  5. A checklist before you report
  6. FAQ
  7. Doing it without the spreadsheet

Every packaging scheme in Europe asks a version of the same question: how many kilograms of each material did you send to this country? Germany’s LUCID register and your dual system want it in kilograms per material type. France’s Citeo starts from units, and asks for grams per material if you declare unit by unit. The EU Packaging and Packaging Waste Regulation adds its own material categories.

Shopify can tell you what you sold and where it went. It cannot tell you which box, mailer or filler went into each parcel, because it keeps no record of that. So the figure has to be rebuilt from your shipped orders and a list of your packaging.

This guide shows a method you can run in a spreadsheet. It is general information, not legal advice. Check what your register and scheme ask for before you submit anything.

What each scheme actually needs

Before you calculate, know the shape of the answer.

Scheme What you report Unit Source
Germany: LUCID + dual system Mass per material type, per reporting period kg, three decimals ZSVR data reporting
France: Citeo, under 10,000 units a year A flat fee, no weights units (UVC) Citeo tariff guide 2026
France: Citeo, simplified declaration (10,000 to 500,000 units) Units per product family, no technical data units (UVC) same guide
France: Citeo, declaration per unit Unit weight per material for each unit grams same guide
EU PPWR, producers under 10 t Weight in glass, plastic, paper/cardboard, ferrous metal, aluminium, wood, other, total weight Regulation (EU) 2025/40, Annex IX

Two points matter for the method:

  • Germany is all about weight. The ZSVR says you report to your system and file “the exact same report” in LUCID, with volumes in kilograms to three decimal places.
  • France counts units first. Citeo’s guide counts the product packaging as one unit and the shipping carton as another. So even if you only need a unit count, you must count shipping boxes separately.

For background on why these duties land on online sellers, read our guide to the PPWR for Shopify sellers and our print-on-demand guide to LUCID and Citeo.

German material types

LUCID uses fixed material types. The ZSVR’s XML guide lists them with codes. For reports from 2019 to 2026 they are:

Code Material type
10000 Glass
20000 Paper, paperboard and cardboard (PPC)
30000 Ferrous metals
40000 Aluminium
50000 Plastics
60000 Beverage carton packaging
70000 Other composite packaging
80000 Other materials

The same guide says reports from 2027 onwards use the material types of the new German law (VerpackDG). In its table, beverage carton packaging is replaced by a “liquid packaging board” type with code 68000. For a typical Shopify parcel, almost everything falls into paper/cardboard and plastics.

The method in six steps

Step 1: Build a packaging library

List every packaging component you use. Think in components, not in “packaging types”:

  • shipping boxes in each size
  • mailers and poly bags
  • product boxes, pouches, jars, bottles
  • paper filler, air pillows, bubble wrap
  • tape, labels, tissue paper, inserts

Weigh each one empty on a kitchen or postal scale. If a component mixes materials, split it, for example a cardboard box with a plastic window. Write the weight per material in grams.

Component Material Grams
Box S Paper/cardboard 120
Box M Paper/cardboard 210
Poly mailer Plastics 18
Paper filler (per parcel) Paper/cardboard 25
Tape (per parcel) Plastics 4
Product box, candle Paper/cardboard 45

These numbers are an example only. Weigh your own packaging. Supplier invoices often say “500 boxes” with no weight, so a scale is usually faster than asking.

Step 2: Map products to their own packaging

For each product or variant, note the packaging it carries before it goes into a parcel: the product box, the jar, the pouch. Some products have none. Some ship in their own packaging with no outer box, which matters in step 3.

Keep it at variant level if variants differ, for example a 100 ml and a 500 ml bottle.

Step 3: Write shipping rules for the outer parcel

The shipping box depends on the whole order, not on one product. Write simple rules that match how you actually pack:

  1. 1 item: poly mailer + tape
  2. 2 to 3 items: Box S + filler + tape
  3. 4 or more items: Box M + filler + tape

You can base rules on item count or on total weight, whichever matches your packing station. Leave out items that ship in their own packaging.

Step 4: Export shipped orders with destination country

Export your orders for the reporting period with at least:

  • order number and date
  • shipping country
  • each line item’s variant and quantity
  • fulfilment status

Count shipments, not orders. If an order was split into two parcels, it used two shipping boxes. If something was never shipped, or was cancelled before shipping, it put no packaging on the market.

Shopify’s standard export gives you one row per line item. If you need a cleaner export, our guide on exporting Shopify orders with line-item details covers the options.

Filter by destination: only parcels shipped to Germany count for LUCID, and only parcels shipped to France count for Citeo.

Step 5: Multiply and add up

For each shipment:

  1. Add the product packaging for each line: units × grams per material.
  2. Pick the shipping rule that fits the parcel and add its components.
  3. Record the result per material against the destination country.

Then sum all shipments per country and material, and divide grams by 1,000 for kilograms.

Worked example. A parcel to Germany holds two candles. Each candle has a 45 g product box. The parcel follows rule 2: Box S (120 g), filler (25 g), tape (4 g).

Material Calculation Grams
Paper/cardboard 2 × 45 + 120 + 25 235
Plastics 4 4

For Citeo, the same parcel to France would be 3 units: two product boxes and one shipping carton.

Step 6: Keep the working

Save the library, the rules, the order export and the totals. If your dual system, the ZSVR or Citeo asks how you got a figure, you can show it. It also makes next year faster, since only the changes need checking.

Pitfalls that skew the totals

  • Forgetting the outer box. The ZSVR says packaging intended for shipment is always subject to system participation in Germany. In France the shipping carton is its own unit.
  • Using orders instead of shipments. Split fulfilments mean extra boxes. Unshipped orders mean none.
  • Mixing up countries. Use the shipping address country, not the billing country or the store currency.
  • Counting digital products or gift cards. Items that never ship have no packaging.
  • Using a short sample. A busy November does not look like a quiet March. Use a full calendar year where you can, because the year-end report covers the whole year.
  • Different numbers in different places. In Germany the volumes, material types and period you give LUCID must match what you give your dual system.
  • Rounding too early. Keep grams until the end, then convert to kilograms with three decimals.
  • Forgetting packaging changes. If you switched boxes mid-year, split the period and use the right weights for each part.

A checklist before you report

  • Every packaging component weighed and split by material
  • Every shipped variant mapped to its own packaging, or marked as none
  • Shipping rules cover every parcel size you actually send
  • Order export covers the full reporting period
  • Counted by shipment, filtered by destination country
  • Totals per material in kilograms, three decimals, for Germany
  • Unit counts, including shipping cartons, for France
  • The same German figures ready for LUCID and your dual system
  • Working saved with the date and the export file

FAQ

Does Shopify store packaging weight per order?

No. Shopify stores product weights for shipping rates and lets you set up packages for rate calculation, but it keeps no record of which packaging materials went into each parcel. You rebuild that from your packaging list and shipped orders.

Do I report the product weight or the packaging weight?

Only the packaging. The product itself is not part of the packaging figure.

Which countries count for LUCID?

Only packaging you ship to end users in Germany. Parcels to France, Austria or anywhere else do not belong in your LUCID report, though they may need reporting in their own country.

Do small French sellers need weights at all?

Under Citeo’s 2026 guide, sellers placing fewer than 10,000 units a year on the market pay a flat fee of €110 excluding VAT, and the simplified declaration needs no technical data. Weights per material matter if you declare unit by unit. Count shipping cartons as units either way.

How do I handle returns?

Packaging is reported when it is made available for the first time. Ask your register or scheme how to treat returns and resends in your situation rather than guessing.

Doing it without the spreadsheet

The method is simple. Keeping it correct as products, boxes and order volume change is the hard part. StoreFleet: Packaging EPR is a free Shopify app (in review for the Shopify App Store) that runs these steps on your shipped orders: a packaging library by material, packaging per variant, shipping rules by item count or weight, and kilograms per country and material counted per shipment, with LUCID XML and Citeo-ready exports. You stay the declarant.

If a marketplace has trouble with your German number once you are registered, see why a LUCID registration number gets rejected.

Sign in to your workspace

Each workspace has its own address: <workspace>.getstorefleet.com. Enter your workspace name, or paste its address, and we take you to its sign-in page.

You will go to

New to StoreFleet? Create a workspace