Back to Portfolio
EcommerceLiveFigma

Union Made

Full-stack pooled-ordering e-commerce platform for a Canadian textile manufacturer, with automated production triggers, dual payment processing, and a complete admin dashboard.

Role

UI/UX Designer
Web Developer
Full-Stack Developer
Union Made preview

Overview

Union Made is a Canadian textile manufacturer that needed to move beyond local operations and accept orders globally. The business model was not standard e-commerce. Production only runs when a minimum order quantity is reached, so the platform had to pool individual customer orders until a threshold was met before triggering manufacturing.

If the threshold was not reached before a product expired, every order needed to be automatically refunded without manual intervention. The system also had to support both individual buyers and B2B organizations, with two payment methods, Stripe for card transactions and a credits system for organizational accounts.

The project was delivered with limited client availability throughout. Requirements were inferred from the business model and built to spec with minimal back-and-forth.

Cenciss handled UI/UX design and full-stack development across the customer portal, admin dashboard, automated systems, and payment layer.

The Challenge

The pooling system was the architectural centerpiece and the hardest problem to get right. Orders from multiple customers had to aggregate against a shared minimum quantity counter per product. The system had to handle concurrent orders without race conditions, track funded quantities accurately, and trigger the right downstream actions when a threshold was crossed.

Refund automation added another layer of complexity. When a product expired without reaching its minimum, every associated order had to be refunded through the correct payment method, Stripe refunds for card payments and credit reversals for organizational accounts. Any failure in the refund flow would directly damage customer trust.

Scheduled jobs were required for time-sensitive operations: checking product expiration dates, processing batch refunds, and advancing product lifecycle stages. These jobs had to run reliably on schedule without manual triggering or monitoring.

Multi-tenant organization support meant different customers needed different product visibility. B2B organizations should only see products relevant to their account. Individual buyers should see the public catalogue. Access control had to be enforced at the data layer, not just the UI.

Real-time monitoring was needed for threshold events. When a product hit its minimum quantity, the right notifications had to fire immediately, not on the next scheduled job cycle. MongoDB change streams provided the event-driven mechanism to make this work.

The admin dashboard had to centralize everything: product management across lifecycle stages, order tracking across both payment methods, customer and organization management, quote handling, and analytics.

The Solution

The platform was built on the MERN stack throughout. React.js powered both the customer-facing portal and the admin dashboard. Node.js and Express.js handled the API layer and business logic. MongoDB provided the flexible schema needed for products, orders, users, organizations, quotes, and notifications.

The pooling system was implemented at the order creation level. Each order incremented a funded quantity counter against the product record, with atomic updates to prevent concurrency issues. When the counter crossed the minimum threshold, the product stage advanced automatically and notifications were dispatched.

MongoDB change streams were used to watch product documents in real time, triggering stage transition logic and customer notifications without polling delays. Agenda.js was integrated for scheduled job processing, handling product expiration checks, batch refund processing, and lifecycle stage management on configurable schedules.

The refund system handled both Stripe payment refunds via the Stripe API and credit reversals through the internal credits ledger, with per-order tracking to ensure every affected customer received the correct refund through the correct channel.

Organization-based access was enforced server-side, with product queries filtered by the requesting user's organization membership. Individual buyers received the full public catalogue. B2B accounts received filtered views relevant to their organization.

The admin dashboard provided full management coverage: product creation and stage management, order tracking with payment method visibility, customer and organization administration, quote management, and Chart.js-powered analytics for sales, payment distribution, and product performance.

Cloudinary handled product image storage and delivery. Mailtrap managed email notifications for order updates, stage changes, and refund confirmations. JWT authentication secured all routes with role-based access separating customer and admin permissions.

Results & Impact

Union Made launched with the ability to accept orders from customers worldwide, taking the manufacturer's operations fully digital for the first time. The pooling system automated production planning in a way that matched the business model exactly: no manual threshold tracking, no missed triggers.

The automated refund system processed order reversals for both payment methods without manual intervention, reducing administrative overhead and maintaining customer trust when products did not reach minimum quantities.

The admin dashboard gave the client centralized control over the entire operation: product lifecycle management, order visibility, customer data, and performance analytics in a single interface. The dual payment system served both individual and B2B buyers without friction.

The project was delivered to specification despite limited direct client input throughout development, demonstrating the team's ability to build complex systems from inferred requirements and deliver a production-ready platform.

Tech Stack

React.jsNode.jsExpress.jsMongoDBStripeAgenda.jsCloudinaryChart.js
Visit Live SiteView Figma Design
Build something similar

Interested in a project like this?

Let's discuss your goals and map out the right solution.

Get in touch

Project Details

  • CategoryEcommerce
  • Stack size8 technologies
  • StatusLive
More Work

Explore more projects

Casual Country preview
Live

Casual Country

Ecommerce

Custom ecommerce platform built from scratch for a USA-based wholesale clothing brand. First online presence, global inventory booking, and a 15% increase in sales.

Hireddd preview
LiveFigma

Hireddd

Marketplace

Full-stack hiring marketplace built for a Canadian client, featuring mandatory video resumes that let employers assess candidate personality and communication skills before the first interview.

AVCPA Professional Corp preview
LiveFigma

AVCPA Professional Corp

Business Website

Full redesign and rebuild for a Canadian accounting firm specializing in trucking taxation. New online forms, custom admin panel, persuasive copy, and a 30% increase in website traffic.