Skip to main content

E-Commerce App

Flutter + WooCommerce + Admin Dashboard

Client

E-Commerce Client

Platform

iOS + Android (Flutter)

Version

1.2.10+37

Backend

WooCommerce + Laravel Portal

Type

E-Commerce Mobile App

Overview

Full E-Commerce App with Admin Dashboard

This is a full-featured WooCommerce e-commerce mobile application built in Flutter, serving as both a customer-facing shopping app and a comprehensive admin management dashboard. The app connects to a WooCommerce/WordPress backend via dual API surfaces — WooCommerce REST API and a custom Portal API — delivering a native mobile experience with real-time chat, push notifications, Stripe/Revolut payments, deep linking, and Klaviyo email marketing integration.

The dual-role architecture means store owners manage inventory, orders, and customers from their phone, while customers enjoy a native shopping experience with push notifications, in-app chat support, and seamless checkout via Apple Pay, Google Pay, or credit card.

Built on Clean Architecture principles with BLoC/Cubit state management, the app spans ~595 Dart files, 100+ screens across 26 page directories, 41 use cases, and a 542-line dependency injection container.

Tech Stack

Flutter (Dart >=3.7.2)BLoC / Cubit (flutter_bloc)GetIt Dependency InjectionDio Networkingsqflite (SQLite) + SharedPreferencesflutter_stripe (Apple Pay / Google Pay)Revolut PaymentsFirebase (FCM, Analytics, Crashlytics)Klaviyo Email MarketingWooCommerce REST APICustom Portal API (Laravel)flutter_quill (Rich Text Editor)mobile_scanner + qr_flutterflutter_screenutil (430x932 Design)

The Challenge

What the Client Needed

A native mobile experience for customers — the mobile web store had lower conversion rates and no push notification support

Full admin dashboard on mobile — store owners needed to manage orders, products, and customers without desktop access

Real-time customer support via in-app chat with voice messages and file attachments

Multiple payment gateways (Stripe + Revolut) with Apple Pay and Google Pay for frictionless checkout

WooCommerce compatibility — must work with the existing product catalog, orders, and customer data without disruption

Email marketing integration with Klaviyo for targeted campaigns driven by in-app user activity data

What We Built

Key Features Delivered

Full E-Commerce Shopping Experience

Product browsing with category filters, image galleries with variations, shopping cart with quantity management, favourites/wishlist, coupon application, and multi-gateway checkout. Guest login support for browsing without registration.

Admin Dashboard

Comprehensive store management: sales reports with fl_chart visualisations, order management with refunds, product CRUD with rich text editing, category management, customer management, coupon creation, and slider/banner customisation.

Real-Time Chat System

In-app messaging between customers and admin with text, file attachments (images, documents), voice messages via record + audioplayers, conversation threading, and offline chat caching via ChatCacheService.

Dual Payment Gateways

Stripe integration with Apple Pay and Google Pay via flutter_stripe, plus Revolut as an alternative gateway. Admin-configurable payment settings and transaction/payout dashboards.

Push Notifications + Deep Links

Firebase Cloud Messaging with local notification display, notification history with read/unread tracking, badge widget for unread counts, and deep link routing from notifications to relevant screens.

Product Deep Linking

Product URLs open directly in the app via DeepLinkService. Android Intent Filters + iOS URL Schemes with graceful fallback to web browser.

Shopify Import + Barcode Scanning

One-click product migration from Shopify to WooCommerce via ShopifyToWooCommerceTransformer. Barcode scanning via mobile_scanner with BarcodeLookupService for rapid product lookup.

Analytics & Klaviyo Marketing

Three-tier analytics: Firebase Analytics, Facebook App Events, and custom Portal activity tracking with periodic bulk upload. Klaviyo integration for subscription management, event tracking, and mobile campaigns.

Screens Delivered

100+ Screens Across Customer & Admin Journeys

1

Product Browsing, Category Filters, Search

2

Product Detail with Gallery, Variations, Reviews

3

Shopping Cart, Wishlist, Coupon Application

4

Checkout with Stripe / Revolut / Apple Pay

5

Chat: Conversations, Messages, Voice, Attachments

6

Admin: Sales Reports, Dashboard Metrics

7

Admin: Order Management, Status Updates, Refunds

8

Admin: Product CRUD, Rich Text Editor, Image Upload

9

Admin: Customers, Coupons, Sliders, Categories

10

Notifications, Profile, Settings, Deep Link Targets

Architecture

How It's Built

Dual API Architecture

Two distinct API surfaces with independent authentication. WooCommerce REST API for core e-commerce data (consumer key/secret auth), and a Custom Portal API (Laravel, bearer token) for chat, notifications, Stripe orchestration, and Klaviyo.

ApiEndpoints.initializeBaseUrl()
  ├── WooCommerce API (RestApi client)
  └── Portal API (PortalApiClient)

State Management

Deliberate split: 34+ Cubits for straightforward CRUD (Auth, Cart, Products, Favourites, Chat, Notifications), and 6 BLoCs for complex event-driven workflows (Order processing, Product Variations, Attributes, Grouped Products). All wired via 542-line GetIt DI container.

Caching Architecture

Multi-layer caching: ProductCacheService for listings and categories, DashboardCacheService for admin metrics, ChatCacheService for offline message access, and persistent CartService that survives app restart. All initialised before DI setup.

Scale Metrics

~595

Dart Files

100+

App Screens

41

Use Cases

34+

Cubits

6

BLoCs

50+

Global Widgets

Results

What We Shipped

~595 Dart files delivering a complete dual-role e-commerce app (customer + admin)

41 use cases covering the full business domain from auth to refund processing

Dual API integration seamlessly bridging WooCommerce REST and custom Portal APIs

Real-time chat with voice messages, file attachments, and offline persistence

Multi-gateway payments via Stripe and Revolut with native Apple Pay / Google Pay

Cross-platform deep linking enabling product URL sharing that opens in-app

50+ reusable global widgets accelerating new screen development

Shopify-to-WooCommerce product import for seamless store migration

Klaviyo email marketing integration with event tracking and mobile campaigns

Three-tier analytics: Firebase, Facebook App Events, and custom server-side tracking

Need a WooCommerce mobile app or full e-commerce solution?