Khoirul SyarifSenior Product Designer

Product case study

MengantarProduct case study

Sheet Editor

Bulk orders in a grid, without the Excel round trip

Three rounds of design turned Mengantar's bulk order creation into an editable grid: a beta, a fix that made it understandable, and an upload that lands straight in the grid.

Timeline
Beta → Feb–Mar fix → April release → Q2 upload, 2025
Role
Product Designer II, end to end
Platform
Web app · Create Order
Team
Mengantar A squad: PM, engineers, QA
Shipped at Mengantar, 2025 🚚
Sheet Editor cover

3design rounds, from beta to file upload

Case study

26 sections

TL;DR

  • Context. Create Order is Mengantar's busiest page (203K visits a week). Many sellers create dozens of orders a day.
  • Problem. Creating several orders meant filling in a form for each one, or the Excel round trip: download, fill in, upload, read the errors, fix, upload again. The order funnel converted well mainly because of single orders, and multi-order creation lagged behind.
  • What I designed, in three rounds:
    1. Beta: a spreadsheet-style grid as a third way to enter orders, with validation, courier and price on every row, and drafts
    2. Enhancement: making the beta understandable, with its own entry card, a clear explanation, honest limits and "upload coming soon"
    3. Upload and a shorter flow: files load straight into the grid, and the template step is gone
  • Outcome. 41% of multi-order sessions moved to the Sheet Editor within 6 weeks, and creating 20 orders went from ~14 to ~6 minutes.

Context

Creating an order on Mengantar starts with the pickup details. After Simpan & Lanjutkan (save and continue), sellers choose how to enter their orders. The Sheet Editor is the third option: "Buat Pesanan dengan Sheet Editor" (create orders with the Sheet Editor). It works from both single and multiple Create Order.

ModeGood forPain
Form, one order at a time1–5 ordersSlow for 30+ orders a day
Excel uploadMany ordersDownload template → fill in → upload → errors → fix → re-upload
Sheet Editor (new)Many orders, edited in place—

After the grid, every order still goes through the order confirmation page, where it can be changed before it's created.

The problem

What the data said: the funnel from Visit Create Order to Finish Order converted at 65.1% over three weeks (Apr–May 2025), and the team's analysis credited that mainly to single orders and COD. Bulk creation was the weaker path.

What sellers ran into (6 interviews with high-volume sellers and their admins, plus support tickets about uploads):

  1. Errors show up after the upload, not while typing. One wrong district name meant going back to Excel.
  2. Addresses don't match. Indonesian addresses run province → city → district → sub-district → postal code. Free text often didn't match the courier's area list, so the shipping rate couldn't be calculated.
  3. Fear of losing work. A long batch typed in a browser felt risky.
How might we let sellers work the way they already do (in a grid), while Mengantar checks every row as they go?

Users

UserContextNeed
High-volume seller30+ orders a daySpeed, and no rework
Admin / CS staffCopies orders from chat into a sheetFamiliar keyboard behaviour, clear errors
Occasional sellerA few orders, sometimes a batchThe single-order form stays available

Principles

  1. Catch errors in the cell, not after an upload
  2. Feel like a spreadsheet, but stay inside Create Order
  3. Never lose work
  4. Be honest about what a beta can't do yet

Round 1 · Beta: a grid inside Create Order

The Sheet Editor inside Create Order
The Sheet Editor inside Create Order

D1. A grid inside the flow, not a separate tool

The Sheet Editor sits next to the other ways of entering orders, between the pickup details and the confirmation page. Sellers keep the same pickup settings and the same review, and only how they type in orders changes.

D2. Required columns, marked

Nama Pelanggan* (customer name), Alamat* (address), Nomor Telepon* (phone), Provinsi / Kota / Kecamatan / Kelurahan / Kode Pos* (area), Ekspedisi* (courier). The asterisk shows what blocks submission before anyone types.

D3. One column for the whole area

Instead of five columns that can contradict each other, the area is one searchable field: province, city, district, sub-district and postal code, picked from the courier's own area list. A row can't hold an address the courier doesn't know, so the shipping rate always resolves.

D4. Courier and price on every row

Each row shows its courier and price ("JNE – Rp11,000"), because the rate depends on the destination. Until the address is set, the cell reads "Pilih Ekspedisi" (choose courier). A courier can be chosen as long as it can reach both the sender's and the buyer's address. Couriers that can't are explained rather than hidden, the same pattern as the Lion Parcel courier list.

D5. COD and non-COD in the same batch

Both payment types work in the grid. A green or orange dot (legend: COD / NON COD) marks each row, which is quicker to scan than one more column.

D6. Never lose work

  • Undo / redo at the top of the grid
  • Simpan ke Draft (save as draft) to come back later
  • Simpan dan Lanjutkan (save and continue) only when the batch is ready

D7. Rows on demand

The grid starts with 10 empty rows. Sellers can type a number and click + Tambah Baris (add rows) to add more at once, instead of clicking once per row.

D8. A WhatsApp indicator beside the phone number

Each phone number shows a WhatsApp icon (green when the number is on WhatsApp). COD sellers confirm orders with buyers on WhatsApp, so a number without it is worth a second look.

Round 2 · Making the beta understandable (24 Feb – 10 Mar 2025)

The beta worked, but people didn't understand it. They couldn't tell what the Sheet Editor was for, why it asked for a template, or what was still missing. In the guide's FAQ, the first question was whether orders could be entered all at once, and in the beta the answer was no.

D9. Its own card among the input options

The Sheet Editor got a standalone card, separate from the existing tools, so it reads as a deliberate choice rather than a hidden extra.

D10. A header and one sentence of purpose

Inside, a "Sheet Editor" header and a short description ("Kelola pesanan dalam satu tampilan dengan Sheet Editor, solusi pintar untuk input data yang lebih cepat dan efisien": "manage your orders in one view, a smarter way to enter data faster") with "Baca Selengkapnya" (read more).

D11. Explain the template step

The template choice got a title and a reason: "Pilih template yang sesuai kebutuhan agar proses input lebih cepat dan akurat" (pick the template that fits, so entering data is faster and more accurate).

Choosing a template format in the beta (test data)
Choosing a template format in the beta (test data)

D12. Say what's coming

Import File is visible but tagged "Segera" (coming soon). Sellers know upload is planned, without being promised it today.

Round 3 · Upload into the grid, and one step fewer (Q2 2025)

Two things still slowed sellers down: typing every row by hand, and choosing a template before seeing anything.

D13. Upload lands in the grid, not in an error list

An Upload File button sits in plain sight on the Sheet Editor page:

  1. Download the upload template, with exactly the columns the system accepts
  2. Fill it in and upload it
  3. The orders appear in the grid, where anything wrong can be fixed in place

Invalid or mismatched data gets a warning. A note explains that columns that don't match won't be shown, so a missing column is expected rather than a surprise.

This closes the loop on the old flow: the seller's Excel habit becomes the way into the grid, instead of a loop of failed uploads.

D14. Remove the step I'd added

The template choice from round 1 was removed. Choosing the Sheet Editor now opens the grid directly, and the template lives on as the downloadable upload file instead. It was a decision sellers had to make before they'd seen anything, and most of them picked the default anyway.

D15. Be honest about the limits

What the beta couldn't do yet:

  • Products from the product list (product IDs and variants)
  • Dropshipper orders
  • Assigning orders to sub-users
  • Cargo orders

Paxel is also hidden from the courier options in the grid. These limits are spelled out in the "Beta" label and its explanation, so sellers learn them before they start a batch, not halfway through. The same goes for switching a manual order to "Edit dengan Sheet Editor": products picked from the product list can't come along, and the screen says so.

States

StateBehaviour
Empty grid10 rows, required columns marked
TypingInvalid cells are highlighted with the reason on hover
No courier for the destinationThe row explains why, with alternatives
File uploadedRows appear in the grid, invalid data flagged, unsupported columns skipped with a note
Draft savedConfirmation, plus the draft listed for later
SubmittingEvery order goes through the confirmation page before it's created

Rollout

RoundWhenWhat
Betaearly 2025The grid as a third way to enter orders
Enhancement24 Feb – 10 Mar 2025 · doneOwn card, header and description, template explanation, "upload coming soon"
ReleaseApril 2025Rolled out to sellers
File upload + shorter flowQ2 2025 · shippedUpload into the grid, no template step, clearer beta limits

Impact

MetricBeforeAfter
Multi-order sessions using the Sheet Editor—41% after 6 weeks
Time to create 20 orders~14 min~6 min
Batches needing a second upload1 in 3Not needed: errors are fixed in the grid
Multi-order conversion (visit → finish)52%58%

Reflection

  • A beta needs honest labels. Round 2 didn't change what the Sheet Editor could do. It changed what people understood about it, and that's what made the beta usable.
  • Removing a step I designed was the right call. The template step made sense on paper, but it was one more decision before any value. Moving it into the upload template kept the benefit and dropped the friction.
  • Spreadsheet expectations are high. Keyboard navigation, paste and fill-down aren't features to users, they're assumptions, and any one missing feels like a bug.
  • What I'd change: show a row-level summary before submitting ("48 ready, 2 need a district"), so sellers can submit the clean rows and fix the rest.

KhoirulAuthor

Thanks for reading — happy to walk you through the decisions on a call.

Next

3 of 14

Next product case studyGeolocation pickupA pin so couriers find the sellerRead it →