How LabelCropper sorts a label stack into picking order
Cropping saves paper. Sorting saves the afternoon. This is the exact order a LabelCropper stack comes out in, and the reasoning behind each level of it.
Why the order matters more than the crop
A marketplace export arrives in whatever order the orders were generated in: a large kurta, a small t-shirt, another large kurta, a different courier, back to the first. Printed as-is, a picker walks the same shelf five times and sorts the finished parcels into courier piles by hand at the end.
Reordering the PDF before it prints costs nothing and removes both problems at once. The pile comes off the printer already in the order you walk the shelves, and already grouped into the bags you hand over.
The exact ordering
This is the default, and what the rest of this article describes. Which dimension leads it is a choice — see choosing what leads the sort below — but the keys are the same ones either way. Every label is compared on five of them in sequence, with a sixth as a tiebreak:
- Courier — the outer grouping.
- Seller account — the registered business the parcel ships as.
- Design — the garment, from the SKU.
- Colour.
- Size, ascending.
- SKU, so the order is deterministic when everything above ties.
Meesho: courier first
Meesho dispatches through four carriers — Valmo, Delhivery, Shadowfax and Xpress Bees — and each wants its own handover bag. Courier is therefore the outermost level, so the bags fill themselves as the stack is worked through.
Flipkart: seller account first
Flipkart ships through a single carrier, so courier is not a useful grouping there. What varies instead is the registered business the label ships as, which matters when one operation runs several seller accounts. Rather than a second code path, Flipkart labels simply carry no courier — that level is constant across them, the comparison falls straight through to the seller, and the behaviour you want comes out of the same logic.
Snapdeal and AJIO
Both group by courier, like Meesho. AJIO adds one level the others have no equivalent of: within a courier it orders by that courier’s own routing code, which is the sequence the pickup is manifested in. An AJIO stack is label-then-invoice pairs rather than single pages, and a pair moves through the sort as one unit — a label and its invoice are never separated by a reorder.
Then the garment itself
Within a courier and seller, labels are ordered by design, then colour, then ascending size. That is the order a rack is arranged in, so a picker moves along it once rather than doubling back — and consecutive labels for the same garment in adjacent sizes are picked in one reach.
Sizes that sort wrongly everywhere else
Size ordering is where naive sorting falls apart, because marketplace SKUs
write the same size several ways. Sorted as plain text, XL comes
before XS, and 10 comes before 9.
LabelCropper maps sizes onto one numeric scale before comparing:
- Letter sizes run in their real order, not alphabetically.
3XL,4XLand5XLmap ontoXXXLand beyond, so they sort alongside the spelled-out forms rather than landing after them in an unknown bucket.- Numeric sizes sort numerically.
30-32and30 INsort on their leading number.Freeis a real size and sorts at the end of the scale, not among the unrecognised ones.
Colour is handled the same way — taken from the Product Details table where there is one, and fallen back to the SKU where there is not, which is the Flipkart case since Flipkart labels carry no colour cell at all.
The dispatch summary
Turned on in Settings, a summary is appended after the labels. It carries three things, in the order they are useful:
- The item list — every distinct garment, size and colour, with how many parcels carry it and how many units that is. This is the list a picker actually walks the shelves with.
- A tally by courier — for the handover.
- A tally by seller — for reconciling across accounts.
It counts packages, not units
One label is one parcel handed to one courier, and a pickup is counted in parcels. A label covering two of the same garment is still one package, so quantity deliberately plays no part in the totals — while the item list shows both numbers, because a picker needs the unit count and the handover needs the parcel count.
Valmo and ValmoPlus are counted apart
They sort into one pile, because that is one physical handover. But they are billed and manifested separately, and this table is what gets checked against the courier’s own — so the tally uses the courier name exactly as printed on the label.
The summary is off by default: most batches are printed to be packed, not reconciled, and two extra A4 pages every run is paper spent on a report nobody asked for. Turned on once, it is remembered for that marketplace.
What happens to pages it cannot read
A page whose markings cannot be identified has no courier, seller or SKU to sort on, so it is flagged rather than filed somewhere arbitrary — and it is still counted in the summary total, because it is still a parcel. It is left uncropped too. A page the tool does not understand is never cut, and never quietly buried in the middle of the stack.
More on the rest of the pipeline in every LabelCropper feature explained, and on the reasoning behind it in why sellers choose LabelCropper.
Choosing what leads the sort
Courier-first is the default because a hand-over is counted in courier bags, but it is not the only way a warehouse is arranged. A picker in Settings chooses which dimension leads, and the rest of the comparison follows behind it unchanged:
- Courier, then SKU — one pile per courier, each in picking order. The default, and what a manifest hand-over wants.
- SKU — design, then colour, then size, ignoring the courier entirely. Right when one carrier takes everything.
- Colour — every black garment together, then every blue. Suits a rack organised by colour.
- Size — all the S together, then M, then L. Suits shelves stacked by size.
Every mode ends with the same tail — design, colour, size, SKU — so two parcels that tie on the leading key still land beside each other in a stable order. A sort that left ties unordered would shuffle identical garments apart between runs, which is the one thing a picker notices. Sorting by SKU is free; courier, colour and size come with a plan, as do the summaries below.
Overriding the order by hand
The sort is a starting point, not a cage. Every page is a thumbnail tile you can drag, so if a particular courier is collecting first today, that block moves to the front without re-exporting anything.
Pages from different files interleave freely, individual pages or a
multi-selection can be rotated or deleted, and all of it is undoable with
⌘Z. Edits are held as data on the page item rather than as
changes to the underlying bytes, which is why an edit survives being reordered
and why undo reaches every kind of change rather than just the last drag.
Per-file page ranges are the other way in: a spec like
1-3, 7, 10-end narrows a file before it joins the stack, and the
order you write is the order you get — 9-7 counts backwards on
purpose.
Drop in as many label PDFs as you have; cropping, captioning, sorting and combining them into one file all run on their own.
Open LabelCropper