Self-hosted C2C marketplace for South Africa [Yoco payments, TCG PUDO shipping, and escrow protection]
# Vula Market
> South Africa's simplest C2C marketplace — list in minutes, pay safely, ship with ease.
Vula Market is a self-hosted, PHP-based consumer-to-consumer marketplace built for the South African market. It integrates **Yoco** for secure card payments, **The Courier Guy PUDO (TCG Locker)** for Locker-to-Door shipping, and an **escrow system** that holds funds until the buyer confirms delivery - protecting both parties on every transaction.
---
## Table of Contents
- Features
- Tech Stack
- Project Structure
- Requirements
- Installation
- Configuration
- Order & Payment Flow
- Shipping Model
- Admin Panel
- Wallet & Payouts
- Security Checklist
- Default Credentials
- Contributing
---
## Features
- **Listings** — Any registered user can create, manage, and delete product listings with image uploads
- **Search & Browse** — Paginated homepage with full-text search across titles and descriptions
- **Yoco Checkout** — Hosted payment page with idempotency support; payment verified server-side before order confirmation
- **Escrow Protection** — Funds held as `paid_in_escrow` until the buyer marks the order as received
- **TCG Locker Shipping** — Locker-to-Door (L2D) model: seller drops at a PUDO locker, TCG delivers to the buyer's address
- **Live Shipping Quotes** — AJAX endpoint fetches real-time shipping rates from the Shiplogic/TCG API before checkout
- **In-Order Chat** — Buyer and seller can communicate directly on the order detail page
- **Waybill Generation** — Printable waybill page per order
- **Seller Wallet** — Completed order earnings (minus platform fee) accumulate in a wallet; sellers request EFT payouts
- **Admin Panel** — Manage users, listings, orders, and shipments; approve/mark payout requests
- **CSRF Protection** — All state-changing forms use token validation
- **Role-Based Access** — Buyer, Seller, and Admin roles with route-level guards
---
## Tech Stack
| Layer | Technology |
|---|---|
| Language | PHP 8.1+ |
| Database | SQLit …