work details

Sportoonline / QuickEcommerce — Omnichannel E-Commerce Platform

A multi-store sports and lifestyle commerce platform combining a Laravel API, Next.js storefront and admin panel with a Flutter mobile application.

Client

Sportoonline

Start

03 Feb 2026

Completed

Sportoonline / QuickEcommerce — Omnichannel E-Commerce Platform interface and project preview
Description

A multi-store sports and lifestyle commerce platform combining a Laravel API, Next.js storefront and admin panel with a Flutter mobile application.

Case study

Challenge

Most products were also sold on suppliers' own websites, so prices and stock changed during the day, and some sources only reported in stock or out of stock. A manually maintained catalogue risked wrong prices and selling items that no longer existed, and payments for multiple sellers had to be split.

Approach

On the Laravel API we built a daily synchronisation with platform-specific parsers, a 30 percent change guard and a post-order stock check. Payments are split per seller with iyzico marketplace mode, and the Next.js storefront, admin panel and Flutter app all connect to the same API.

Outcome

Sportoonline is live and selling; as of September 2026 it lists 32 stores and 6,686 published products. Prices and stock update automatically every day, and refunds for sold-out items start without manual intervention.

Tools

Laravel, PHP, Next.js, React, TypeScript, Flutter, MySQL, Tailwind CSS, Redux Toolkit, React Query

Key Features
  • 32 seller stores, 6,686 published products, 9 main categories

  • Per-seller payment split with iyzico marketplace mode

  • Daily price and stock sync from 20+ supplier sources

  • Data guard that rejects price changes above 30 percent

  • Stock check 30 minutes after payment, automatic refund

  • Next.js 16 storefront, separate admin panel, Flutter app

  • Coupons, bundles, loyalty points, wallet, price-drop alerts

  • Geliver shipping, PayTR and cash on delivery

  • Google and Cimri product feeds, product sitemaps

Technologies Used
  • Laravel

  • PHP

  • Next.js

  • React

  • TypeScript

  • Flutter

  • MySQL

  • Tailwind CSS

  • Redux Toolkit

  • React Query

Design Highlights
  • With an unclear stock signal the system does not decide; it alerts an admin

  • Sync only updates price and stock and never adds products on its own

  • Web and mobile share the same API and commerce rules

  • Server-rendered storefront for SEO and a fast first load

  • Live viewer count on product pages and co-purchase suggestions in the cart

Details

Sportoonline is a multi-vendor e-commerce marketplace selling sports nutrition, fitness equipment, outdoor gear and sportswear in the Turkish market. It runs on QuickEcommerce, our own commerce platform: a Laravel API, a Next.js storefront, a separate Next.js admin panel and a Flutter customer app. Each seller is listed with their own store, payments are split per seller, and product prices and stock levels are updated automatically every day from supplier sources.

Context and requirements

The hardest part of a marketplace is not the storefront but the data behind it. Much of Sportoonline's range is also sold on suppliers' own websites; prices change often and stock can sell out during the day. Some suppliers do not publish stock quantities at all, only whether an item is in stock. A manually maintained catalogue cannot stay accurate at that pace: a wrong price costs money, and selling an item that no longer exists means cancellations and lost customers. On top of that, payments for multiple sellers had to be split into separate accounts, and shipping, returns and promotions had to run in the same system.

Solution and scope

Customer storefront

The storefront is rendered on the server with Next.js 16. Customers browse category, brand and store pages, find products through normalised search, and see variants, stock, reviews and how many people are viewing a product right now. Alongside cart and checkout there are campaigns, coupons, product bundles, a loyalty points programme, a wallet, favourites, order tracking, return and exchange requests, messages and support. Prospective sellers apply directly on the site. Legal pages such as the distance selling contract, privacy notices and shipping and return policies are published separately.

Mobile app

The Flutter customer app uses the same API: home, categories, product details, cart and checkout, delivery addresses, favourites, orders, wallet, coupons, store information, live chat and push notifications via Firebase. The same codebase can also be built for the web.

Automated pre- and post-purchase flows

The platform handles reminders around the purchase on its own: abandoned cart reminders, alerts when a favourite product drops in price, replenishment reminders for consumables and review requests after delivery. The cart shows product recommendations generated from co-purchase data.

Admin panel

The panel, a separate Next.js application, manages products, categories, brands, attribute and dynamic field definitions, units and tags. Orders, customers, sellers and stores, store notices, courier records, coupons, promotions, bundles, the loyalty programme, wallets and financial records are all tracked in the same place. Payment provider settings, payment logs, the SMS provider, notifications, blog and pages, sliders, abandoned carts, support tickets and feedback live here too. Roles and permissions, staff accounts, reports and analytics, and a dedicated monitoring page for the health of supplier sources complete the panel.

Technical architecture

The core is an API running on PHP 8.2 and Laravel 12, with separate route groups for customers, sellers, administrators and couriers. Sanctum handles authentication and Socialite social login; data is stored in MySQL. Long-running work is queued, and recurring tasks run as scheduled commands. The storefront is built with Next.js 16, React 19, TypeScript and Tailwind CSS, with Redux Toolkit, Zustand and React Query for state.

Supplier price and stock synchronisation

This is what sets the platform apart. More than twenty active supplier sources are checked automatically every morning, with dedicated parsers for platforms such as WooCommerce, Shopify, OpenCart, Ticimax, IdeaSoft and Odoo. Synchronisation only updates price and stock and never creates new products; price changes above 30 percent are treated as bad data and skipped. The last successful run of every source is tracked, and a source that goes stale raises an alert.

Post-order stock check and automatic refund

For sources that only report in stock or out of stock, the supplier's product page is checked again for every order line 30 minutes after payment. If the item is definitely sold out, the order is cancelled and the payment is refunded automatically via iyzico; the refund appears in the panel's refunds list. If the signal is unclear, the system does not decide on its own and sends a summary to the administrator instead.

Operations and SEO

Reconciliation of pending payments, payment integrity audits, cleanup of unpaid orders, quarantining products without images, shipping time reports and a server error alarm all run as scheduled commands. Product and category pages are server-rendered, with product sitemaps, llms.txt, IndexNow and a product SEO quality audit.

Integrations

  • iyzico marketplace mode: the customer's payment goes to the seller's sub-merchant balance, with the commission set aside for the platform.
  • PayTR and cash on delivery: additional options at checkout.
  • Geliver: shipping labels and tracking numbers.
  • Firebase: mobile push notifications.
  • Google and Cimri product feeds: XML for price comparison and shopping ads.
  • Telegram: alerts for supplier sync and stock checks.

Outcome

Sportoonline is live and selling at sportoonline.com. As of September 2026, 32 seller stores and 6,686 published products are listed across 9 main categories. Prices and stock update automatically every day, and if an out-of-stock item is sold, the refund starts without waiting for anyone. The same QuickEcommerce platform is designed to be deployed for single-seller shops and for marketplaces in other sectors as well.