Case studyApplication development

OPC Commerce:a seller intake layeron top of Square.

Other People’s Clothes buys, sells, and trades secondhand clothing all day long. Square runs the register, but it could not show which seller brought in a particular item or whether the team’s buying decisions were paying off. We built the missing record between intake and sale.

See what we built
A staff member at the Other People’s Clothes counter inspecting a garment a customer has brought in to sell, with the busy shop floor behind them.

Client

Other People’s Clothes

Business

Buy / sell / trade retail

Scope

Custom web app, Square integration

Timeline

Three weeks to launch


The problem

No clear way to tie items to sellers or see how buyers were performing.

Every intake started as a conversation and ended as a stack of paper: a seller’s name on a notepad, a pile of items on the counter, and a buyer making a call. Square recorded the transaction, but the story behind it — who brought it in, who bought it, and how it performed — lived in memory and handwriting.

  • No way to connect an item back to the seller who brought it in.
  • No way to see which buyers’ picks sold, sat, or turned out to be worth taking in.
The decision that shaped the build

We talked them out of switching platforms.

Mid-project, Other People’s Clothes was weighing a move to a different ecommerce platform. On paper it promised a cleaner setup — but a switch meant re-migrating the catalog, retraining every staff member, rebuilding integrations, and months of disruption for a store that was already running.

We made the case to stay put. Instead of a rip-and-replace, OPC Commerce was built to sit on top of their existing Square stack — adding the intake, pricing, and inventory workflow they were missing while leaving what already worked untouched. Capability without the cost, risk, and downtime of a full re-platform.

What we built

Who brought it in, who bought it, what it sold for.

Every item now has its own record, from the moment it lands on the counter to the day it sells on Square. Nothing gets lost in between.

Scan the price tag and the item drops into the buy — buyer, seller, and the cash-or-credit split, all in hand.

01Seller profiles

Every seller has a record, along with every item they have brought in. When an item sells, the store can trace it back without digging through paper or relying on memory.

02Structured item intake

Staff capture the item, seller, buyer, condition, and photos once at the counter. From there, the store can follow that item through to the sale.

03A layer on Square, not a replacement

Accepted items push straight into the Square catalog with the right price, category, and tags. When one sells, that sale comes back to the intake record — linked to both the seller and the staff member who bought it.

04Reporting the owner actually uses

Which buyers make good calls? Which sellers bring in items that move? What is sitting too long? The owner answers those without pulling receipts or reconstructing the story from memory.

Built with
Rails 8PostgreSQLHotwire · TurboDeviseSquare APIKamal
“We used to guess at what was worth taking in. Now we know — and the seller knows too, before they leave the counter.”
— Owner, Other People’s Clothes
Other People’s Clothes storefront

Got a system that only works because you remember it?