Project-website

Kopi Q POS System - Kasir Admin PHP + MySQL

Website kasir admin coffee shop berbasis PHP, MySQL, HTML, CSS, dan JavaScript.

Fitur

  1. Login kasir/admin.
  2. Dashboard kasir dengan daftar menu kopi, keranjang, diskon, PPN 11%, dan total pembayaran.
  3. Popup pembayaran Tunai, QRIS, dan Debit.
    • Tunai menampilkan input jumlah bayar dan kembalian.
    • QRIS/Debit tidak menampilkan input jumlah bayar karena diasumsikan memakai mesin EDC/QRIS.
  4. Simpan transaksi dan cetak struk.
  5. Pesanan masuk untuk simulasi pesanan dari website pelanggan.
  6. Barang & stok, tambah/edit/hapus produk, dan peringatan stok minimum.
  7. Riwayat transaksi dan cetak ulang struk.
  8. Laporan pendapatan dan cetak laporan.
  9. Pengeluaran toko, tambah/edit/hapus pengeluaran, dan cetak laporan.
  10. Pengaturan profil toko, pajak, footer struk, dan printer.

Struktur Folder

kopiq-cashier-php/
├── api/
│   └── index.php
├── assets/
│   ├── cup.svg
│   └── logo.svg
├── config/
│   └── database.php
├── css/
│   └── style.css
├── database/
│   └── kopiq_pos.sql
├── includes/
│   └── auth.php
├── js/
│   ├── app.js
│   └── print.js
├── index.php
├── login.php
├── logout.php
└── README.md

Cara Install di XAMPP

  1. Copy folder kopiq-cashier-php ke:
C:\xampp\htdocs\
  1. Jalankan Apache dan MySQL dari XAMPP Control Panel.

  2. Buka phpMyAdmin:

http://localhost/phpmyadmin
  1. Import file database:
database/kopiq_pos.sql
  1. Cek koneksi database di file:
config/database.php

Default XAMPP:

$DB_HOST = 'localhost';
$DB_NAME = 'kopiq_pos';
$DB_USER = 'root';
$DB_PASS = '';
  1. Buka website:
http://localhost/kopiq-cashier-php/login.php
  1. Login demo:
Username: admin
Password: admin123

Catatan Integrasi Website Pelanggan

Website kasir ini sudah punya endpoint untuk menerima pesanan online:

POST api/index.php?action=create_online_order

Contoh JSON:

{
  "customer_name": "Ridwan",
  "items": [
    { "product_id": 1, "qty": 2 }
  ],
  "payment_method": "QRIS",
  "paid_amount": 30000
}

Nanti website pelanggan bisa diarahkan ke endpoint tersebut, lalu pesanan akan masuk ke menu Pesanan Masuk dengan status Proses. Untuk real-time yang lebih serius, gunakan polling JavaScript, WebSocket, Firebase, Supabase, atau backend API khusus.