WorkCase study 01

Aselna

A multi-marketplace ERP that runs every store from one dashboard

DevelopmentWeb app
Illustrated mockup
Confidential · NDA

Quick facts

Industry
E-commerce / multi-channel retail (mobile and electronics accessories, US marketplaces)
Our role
Full-stack build from scratch, plus migration off the client's legacy platform
Team
Two developers
Stack
Laravel 11, MySQL, marketplace APIs

Summary

Aselna lets one team run every marketplace store from a single dashboard. It covers product listings, orders, shipping labels, printing and customer messages across Amazon, eBay, Walmart, Shopify, Magento, Temu, NewEgg and Google Shopping.

The problem

The client sold on many marketplaces, with several store accounts on each. Every channel had its own seller portal, listing format, and order and shipping flow, so staff jumped between dashboards to publish products, process orders, buy labels and answer buyers. The result was duplicated work, listing and inventory mismatches, and slow fulfilment, all resting on an ageing legacy system that could not keep up with new channels.

Aselna is a private, login-protected system. We can't share access to the dashboards because of client confidentiality.

What we built

Key features

01

Unified marketplace layer

One common interface (generate feed, submit, fetch results, sync attributes) covers every channel, with per-store authentication. A new channel is one service class, not a rewrite.

02

Central catalogue and listing engine

One catalogue of listings, variants, images and specifications is pushed to every channel. Listings are generated from templates, with SEO title generation, a brand → series → device compatibility taxonomy, and automatic SKU and UPC generation.

03

Order management across all channels

Orders from every marketplace land in one queue. Shipments, returns (with RMA numbers) and cancellations are handled in one place, and tracking numbers sync back to each marketplace.

04

Shipping and label printing

Endicia integration for label purchase, cancellation and postage credit. Rules choose the carrier service and package, and labels and packing slips print automatically at the warehouse through a print-spooler queue.

05

Integrated helpdesk

Buyer messages from marketplaces and email arrive in one ticketing inbox, with labels, reply templates and per-store messaging accounts.

06

Job orchestration and monitoring

About 140 queued jobs handle syncing, feeds and order fetching. Schedules live in the database and change without a deploy, job chains are tracked as trees, and an error dashboard deduplicates errors and sends alerts.

How we solved it

Challenges

  1. 01
    Challenge

    Every marketplace works differently: OAuth, SP-API tokens and API keys; XML, JSON and CSV; each with its own asynchronous feed-and-result cycle.

    Solution

    A single marketplace service interface and a factory that picks the right service per store, with authentication handled separately per channel. The rest of the app never needs to know which marketplace it is talking to. Large feeds are split into parts and their results collected asynchronously.

  2. 02
    Challenge

    Moving off a live legacy system without downtime, while the business kept trading on it.

    Solution

    Sync jobs read from the legacy and supplier databases and backfill Aselna's schema in dependency-ordered chains. Both systems ran side by side, so the client could switch over gradually instead of all at once.

  3. 03
    Challenge

    Keeping more than a hundred scheduled and chained jobs visible: what ran, what failed, and why.

    Solution

    A trackable-job layer records every job with its parent and chain, so a whole sync shows up as a tree. Admins switch tasks on and off and change timings from the UI, and a central error service deduplicates, logs and notifies.

Results

  • One dashboard for 8 marketplaces and many store accounts; staff no longer switch between seller portals.
  • End-to-end fulfilment in one place: order import → label purchase → automatic printing → tracking synced back to the marketplace.
  • About 140 automated background jobs replaced manual syncing, listing and order-download work.
  • Built for scale: about 140 data models, 300 database migrations and more than 4,400 commits.

Stack

Backend
PHP 8.2, Laravel 11, Laravel Queues and Scheduler
Database
MySQL: primary database plus connected legacy, supplier and print-spooler databases
Frontend
Blade, AdminLTE 3, Tailwind CSS, Vite, server-side DataTables
Marketplaces
Amazon SP-API, eBay, Walmart, Shopify, Magento, Temu, NewEgg, Google Shopping
Shipping
Endicia (SOAP/XML) for labels, cancellations and postage credit
Other
IMAP email ingestion, XML feed generation and validation, custom job tracking, Log Viewer
Start a project

Want results like these?

Send a short brief. You'll hear back from a senior team member within one working day.

Services needed
Budget range

We only use your details to reply. See our privacy policy.

Brief received.

Thanks. Someone from the team will reply within one working day.