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.
Key features
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.
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.
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.
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.
Integrated helpdesk
Buyer messages from marketplaces and email arrive in one ticketing inbox, with labels, reply templates and per-store messaging accounts.
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.
Challenges
- 01Challenge
Every marketplace works differently: OAuth, SP-API tokens and API keys; XML, JSON and CSV; each with its own asynchronous feed-and-result cycle.
SolutionA 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.
- 02Challenge
Moving off a live legacy system without downtime, while the business kept trading on it.
SolutionSync 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.
- 03Challenge
Keeping more than a hundred scheduled and chained jobs visible: what ran, what failed, and why.
SolutionA 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