Returns Platform for a Lviv Fashion Retailer
Designed and built a clickable returns platform for a Lviv online fashion retailer selling in Ukraine and the EU: every return from request to refund, faulty claims decided from photos before the customer ships, EU refund deadlines on every screen, and refunds held only for a named reason, with fiscal receipt status for Ukrainian refunds.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, all returns in table and board views, return detail with 6 tabs, faulty-item reviews and refunds. Every one of the 31 demo returns opens its own detail page.
Counted from the customer's withdrawal notice and shown on the return, the returns list, the dashboard deadline watch and the refunds queue, with due-today and overdue flags.
Loss-of-value deduction, open signal review, above the auto-refund limit or contents mismatch at receiving. Release respects each user's release limit, and a failed card refund can switch to bank transfer with an IBAN check.
16 customers in Ukraine, Poland, Germany, Czechia, Lithuania and Italy, 10 styles, 19 refunds, 8 faulty claims, 5 exchanges and 9 return methods across 4 carriers and 2 stores.
Smerekova Moda handled returns by email and phone. Agents checked each order in the shop admin, sent Nova Poshta return instructions by hand and logged cases in a spreadsheet. EU customers posted parcels to Lviv at their own cost and often disputed the card payment instead, parcels reached the warehouse with no paperwork, refunds went out in weekly batches that sometimes missed the EU 14-day deadline, and resellable items sat in returns bins for a month.
Obmin follows a return from request to refund, store credit or exchange. Staff see every return by stage with its market rules, decide faulty claims from photos before anything ships, and work a refunds queue where each EU deadline, hold reason and Ukrainian fiscal receipt is visible, with refund to the original payment method as the default.
A Ukrainian retailer selling into the EU runs two sets of consumer rules side by side, in two currencies, and the right answer for a return depends on where the customer lives, why the item came back and what has already happened to the parcel.
Ukrainian consumers can generally return unused goods with labels within 14 days, not counting the day of purchase. EU customers have a 14-day right of withdrawal from delivery, and the refund, including standard outbound delivery, is due within 14 days of their notice, to the same means of payment unless they agree otherwise.
Faulty goods carry separate rights in Ukraine, and the EU legal guarantee generally runs for at least two years, apart from the withdrawal window. A faulty claim therefore has to be accepted outside the 14 days, and the customer should not pay to send back a faulty item.
Returned parcels arrived with nothing to match them to a customer, and items waited weeks to be graded. The EU Ecodesign Regulation generally bans destroying unsold apparel, including withdrawal returns, for large companies from 19 July 2026, so every write-off needs a recorded reason and destination.
Refunds to Ukrainian customers generally need a fiscal return receipt through a registered cash register or PRRO. Serial-return and wardrobing signals are profiling under the GDPR, so no refund may be refused or account restricted by an automatic decision alone.
Mapped 12 user roles, from customer care and refunds officers to graders and trust analysts, and 40 screens: 30 staff screens, a store returns desk and 9 mobile-first customer portal screens. Defined the data model for returns, items, labels, grading, refunds, store credit, exchanges, dispositions and signals, and wrote down the rules the design follows: Ukrainian consumer and personal data law, the EU Consumer Rights and Sale of Goods Directives, the GDPR, PRRO fiscal receipts and the Ecodesign Regulation.
Built 5 key staff screens on a production dashboard kit: the dashboard with KPIs, returns in flight by stage and the EU deadline watch, all returns with filters, board view and bulk actions, the return detail with refund breakdown and slide-over actions, faulty-item reviews with a photo panel, and the refunds queue with release, retry and bank transfer. A market switch filters every screen, and all actions run on local state.
Integration with the order management system or Shopify, Nova Poshta, Ukrposhta, Nova Post, InPost and DHL eCommerce labels and tracking, Sendcloud, LiqPay, WayForPay, Adyen or Stripe refunds, Checkbox PRRO receipts, Postmark email and TurboSMS for SMS and Viber. Plus the warehouse, trust, insights and settings screens, the customer portal and store desk, staff auth by role and an append-only audit log.
A specialist reviews the customer's photos next to the catalogue image and other faulty claims on the same style in the last 90 days, then accepts (optionally letting the customer keep the item), asks for more photos or declines with a reason. Repeat faults can flag the style for a quality check.
Store credit, with the retailer's optional 10% bonus, is only a choice. Converting a refund to credit needs the customer's recorded agreement, so a withdrawal refund is never switched without it.
Each EU refund shows its due date and days left on the return header, in the returns list and in the refunds queue, and the dashboard lists the ones due or overdue. Ukrainian refunds show their fiscal receipt status in the same column.
A held refund carries a chip saying why, and a person releases it within their limit, with or without a deduction. Bulk cancel only touches returns with no carrier scan, and a declined faulty claim tells the customer which rights still apply.

Designed a mobile-first headless storefront for an Andorran outdoor apparel brand selling to Andorra, the EU, the UK and Switzerland, and built a clickable demo of its staff admin: storefront health, merchandising rules, a collection grid editor, CMS content status and per-market prices, taxes and legal settings.

Designed and built a clickable subscription platform for a specialty coffee roaster shipping across the contiguous US: a care workspace to skip, swap, pause, refund and cancel for subscribers, a cancel log that replays every screen a subscriber saw, and fulfilment batches that hold boxes with an unverified address, a failed payment or short stock.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab