All case studies
Kim & Co ยท Apparel / Retail (TV & Home Shopping)

Kimco Dashboard: One Analytics Hub for a Multi-Retailer Apparel Brand

A women's apparel brand selling on QVC UK, QVC Germany, and TSC needed to stop portal-hopping. We built Kimco Dashboard โ€” a Laravel + Inertia/Vue platform that unifies product master data with automated KPI imports (sell-through, VPM, return rates) into one filterable workspace.

Industry
Apparel / Retail (TV & Home Shopping)
Duration
Multi-phase engagement
Team
Senior Laravel + Vue pod
Year
Recent engagement

Client Overview

Kim & Co is a women's apparel brand selling through major TV and home shopping retailers across the UK, Germany, and other channels โ€” including QVC UK, QVC Germany, and TSC. Their merchandising and sales teams work at the intersection of on-air performance, e-commerce sell-through, and seasonal catalog planning.

Business Challenge

Performance data lived in separate vendor portals, so teams had to log into each retailer's system, pull reports by hand, and stitch together sell-through, return rates, and VPM (value per minute) just to understand how styles were performing. Product information โ€” styles, fabrics, colors, sizes, seasons, and retailer-specific item numbers โ€” was equally fragmented, making it hard to compare seasons or investigate underperforming SKUs in time.

Goals

  • Consolidate product master data (styles, variants, fabrics, colors, sizes, seasons) into one system
  • Automate KPI collection from QVC UK, QVC Germany, and TSC โ€” no more manual portal downloads
  • Give merchandising and sales one filterable view of sell-through, VPM, and return rates
  • Support style- and SKU-level investigations with buyer, season, and date slicing
  • Ship secure, role-based access with OTP for a brand handling commercially sensitive retailer data

Solution

We built Kimco Dashboard โ€” a custom Laravel + Inertia/Vue analytics and catalog platform tailored to Kim & Co's retail model. It centralizes product master data and automates the hard part: pulling KPI reports from QVC UK, QVC Germany, and TSC via scheduled imports and browser automation, then loading sell-through, VPM, return rates, and related metrics into one filterable workspace. Teams analyze at style and SKU level, slice by buyer/season/date, capture retailer reviews, and export table, grid, and PDF reports โ€” all behind secure login with role-based access and OTP.

System Architecture

A Laravel monolith serves an Inertia-driven Vue (with select React islands) SPA on top of Vite. Product master data and KPI facts sit in a relational store designed around styles, variants, buyers, and seasons. Scheduled Laravel jobs and queue workers orchestrate ingestion: Laravel Dusk browser automation logs into QVC UK, QVC Germany, and TSC portals to fetch reports where APIs aren't offered, while file-based imports handle the rest. Normalized KPIs (sell-through, VPM, returns) are joined against the catalog so a single filter set drives both product context and performance metrics.

Kimco Dashboard (Web App)
Laravel + Inertia + Vue
Ingestion Workers
Laravel Queues + Dusk automation
Reporting & Exports
Table / Grid / PDF pipelines

Integrations

  • QVC UK vendor portal (automated report ingestion via Laravel Dusk)
  • QVC Germany vendor portal (automated report ingestion via Laravel Dusk)
  • TSC vendor portal (automated report ingestion)
  • Scheduled Laravel queues for nightly and on-demand imports
  • PDF export pipeline for stakeholder reporting

Security Considerations

  • Role-based access control across merchandising, sales, and admin users
  • OTP-protected login for sensitive retailer performance data
  • Server-side authorization on every KPI and catalog query (no UI-only gating)
  • Credentials for retailer portals stored server-side and scoped to automation workers

Delivery Timeline

  1. Phase 1 โ€” Discovery & data modeling

    Initial weeks

    Mapped Kim & Co's merchandising workflow, retailer item-number conventions, and KPI definitions, then designed the catalog and KPI schema.

  2. Phase 2 โ€” Catalog + auth

    Following sprints

    Shipped the product master (styles, variants, fabrics, colors, seasons), role-based access, and OTP login as the foundation.

  3. Phase 3 โ€” Retailer ingestion

    Parallel track

    Built Laravel Dusk automations and queued import jobs for QVC UK, QVC Germany, and TSC, with scheduled and on-demand runs.

  4. Phase 4 โ€” Analytics, exports, hardening

    Final phase

    Delivered the filterable KPI views, style deep-dive, retailer reviews capture, and table/grid/PDF exports, then hardened for production.

Key Challenges

Three retailer portals, no unified API

QVC UK, QVC Germany, and TSC each expose data differently โ€” and often not via API. We used Laravel Dusk to reliably automate authenticated report pulls, wrapped in queued jobs with retries so a flaky portal session doesn't break the pipeline.

Fragmented product master data

Styles, fabrics, colors, sizes, seasons, and retailer-specific item numbers lived across spreadsheets and vendor systems. We designed a normalized catalog so every KPI row can be traced back to a canonical style and variant.

One filter model across many views

Analytics, catalog browsing, style detail, and exports all needed to agree on 'buyer + season + date range'. We consolidated filtering server-side so table, grid, and PDF outputs always reflect the same slice of truth.

Sensitive retailer data

Sell-through and VPM are commercially sensitive. We enforced role-based access, OTP on login, and scoped queries so users only see the buyers and seasons they're permitted to.

Business Outcomes

3 โ†’ 1
Retailer portals unified into one workspace
QVC UK, QVC Germany, and TSC data now lives in a single filterable view instead of three separate vendor tools.
Automated
Nightly + on-demand KPI ingestion
Manual downloads and spreadsheet stitching replaced by scheduled Laravel + Dusk pipelines.
1 source of truth
Catalog and KPIs side by side
Sell-through, VPM, and return rates sit next to the style/variant they belong to โ€” filterable by buyer, season, and date.

Background

Kim & Co is a women's apparel brand selling through major TV and home shopping retailers โ€” QVC UK, QVC Germany, and TSC among them. Their business runs on how styles perform on-air and online: sell-through, return rates, and VPM (value per minute) drive merchandising, buying, and seasonal planning decisions.

The Challenge

Every retailer had its own portal, its own login, and its own report format. Product data โ€” styles, fabrics, colors, sizes, seasons, and retailer-specific item numbers โ€” was scattered across systems and spreadsheets. Just answering 'how did this style do last season across the UK and Germany?' took hours of manual work.

Our Approach

We built Kimco Dashboard as a single operational hub. The catalog and the KPIs live in the same system, behind the same filters, exported through the same pipelines.

  1. Modeled the product master around Kim & Co's real workflow: style โ†’ variant โ†’ retailer item number, seasoned and buyer-tagged
  2. Automated retailer report ingestion with Laravel Dusk and queued jobs for QVC UK, QVC Germany, and TSC
  3. Unified sell-through, VPM, and return rates into one filterable view sliced by buyer, season, and date
  4. Added style-level deep dives, retailer reviews capture, and table/grid/PDF exports for stakeholders
  5. Locked it all behind role-based access and OTP login

The Result

Reporting that once meant manual downloads and spreadsheet work is now automated into nightly and on-demand imports. Merchandising decisions, style investigations, and stakeholder reporting happen faster because the catalog and KPIs sit side by side โ€” filterable in the way Kim & Co actually sells.

Why this case matters

Kimco Dashboard shows how a well-scoped Laravel + Inertia/Vue platform, backed by disciplined browser automation, can replace a stack of vendor portals with a single source of truth.

Tech Stack

PHPLaravelLaravel DuskLaravel QueuesInertia.jsVue.jsReactViteMySQLBrowser Automation

Lessons Learned

  • When retailers don't offer APIs, reliable browser automation (Dusk + queues) beats asking humans to export files.
  • Model the catalog around the real merchandising unit โ€” style and variant โ€” not around retailer-specific SKUs.
  • Share one filter model across analytics, catalog, and exports so stakeholders never argue about which number is right.
  • For commercially sensitive data, RBAC + OTP is table stakes, not a nice-to-have.
  • Exports are a feature, not an afterthought โ€” stakeholders outside the app still need the same source of truth.

Frequently Asked Questions

Why use Laravel Dusk for retailer report ingestion instead of APIs?

The retailer portals in question either don't offer APIs or don't expose the specific KPI reports the team needs. Laravel Dusk lets us drive real authenticated browser sessions reliably, and wrapping those runs in queued jobs with retries makes the pipeline robust to session or network hiccups.

How is the catalog modeled?

Around Kim & Co's real merchandising unit: a style has variants (color / size / fabric combinations), each variant maps to retailer-specific item numbers per buyer, and everything is tagged by season. That lets every KPI row roll up to a canonical style regardless of which retailer produced the number.

Is retailer performance data secure in the dashboard?

Yes. The app enforces role-based access, OTP on login, and server-side authorization on every KPI and catalog query. Retailer portal credentials are stored server-side and only used by the automation workers.

What stack powers Kimco Dashboard?

Laravel (PHP) on the backend with queues and Dusk for automation, Inertia.js bridging to a Vue.js frontend (with some React islands), Vite for the build pipeline, and MySQL for data.

Have a project that needs rescuing or shipping?

Tell us what's going on and we'll come back with a clear plan.