All projects
Commerce · Client work

Avilexx Portal

A Shopify portal built around how the team actually works.

Client
Avilexx
Role
Design and build
Year
2025
Stack
  • Shopify Admin API
  • REST/GraphQL
  • TypeScript
  • Authentication
Status
Internal, behind login

A portal on top of the Shopify Admin API for Avilexx, a supplier of cold spark machines for events. The team reviews sales and changes prices in one screen instead of three.

The problem

Prices lived in a spreadsheet and were copied into Shopify by hand, variant by variant. Every week, and one typo away from a wrong price in a live shop.

Writing to a live store, safely

Nothing writes straight from an input field. You select products, get a preview of every change with current prices re-read from Shopify, and only then confirm. Every change is logged with the old price, which is also how you undo it.

The hard part

My first bulk update looped over variants one by one. On a big selection it hit Shopify’s rate limit halfway and left products with mixed old and new prices, while the screen said it was done. I caught it on the dev store. Now updates go per product in one call, every result is logged, and failures get a retry button.

Decisions

  • A custom portal over the Shopify admin. Worth maintaining because it is used weekly and only does three things.
  • GraphQL over REST. REST returned 429 errors; GraphQL does it in one paginated query and reports the remaining budget.

What I’d do differently

Start on GraphQL, build the change log before the write feature, and ask to see their spreadsheet in the first meeting.