File manager - Edit - /home/webapp69.cm.in.th/u69319090040/Shop/api/seller_orders.php
Back
<?php // NEXUS Commerce - Seller Orders API Endpoint require_once __DIR__ . '/db.php'; header('Content-Type: application/json; charset=utf-8'); $action = $_GET['action'] ?? ($_POST['action'] ?? 'list'); try { // Ensure orders table has sample data if empty $count = $pdo->query("SELECT COUNT(*) FROM orders")->fetchColumn(); if ($count == 0) { $pdo->exec("INSERT INTO orders (order_sn, user_id, total_amount, discount_amount, final_amount, status, tracking_number, shipping_address) VALUES ('NEX-2026-001', 1, 2490.00, 200.00, 2290.00, 'preparing', 'TH902847291', 'Alex Vance, 123 Sukhumvit Rd, Wattana, Bangkok 10110'), ('NEX-2026-002', 1, 1890.00, 0.00, 1890.00, 'packed', 'TH902847292', 'Somsak P., 45 Silom Rd, Bangrak, Bangkok 10500'), ('NEX-2026-003', 1, 1290.00, 100.00, 1190.00, 'shipped', 'TH902847293', 'Narin K., 88 Nimman Rd, Mueang, Chiang Mai 50200'), ('NEX-2026-004', 1, 890.00, 0.00, 890.00, 'delivered', 'TH902847294', 'Ploy T., 12 Beach Rd, Pattaya, Chonburi 20150') "); $orderIds = $pdo->query("SELECT id FROM orders")->fetchAll(PDO::FETCH_COLUMN); $stmtItem = $pdo->prepare("INSERT INTO order_items (order_id, product_id, quantity, unit_price) VALUES (?, ?, ?, ?)"); if (isset($orderIds[0])) $stmtItem->execute([$orderIds[0], 1, 1, 2490.00]); if (isset($orderIds[1])) $stmtItem->execute([$orderIds[1], 2, 1, 1890.00]); if (isset($orderIds[2])) $stmtItem->execute([$orderIds[2], 3, 1, 1290.00]); if (isset($orderIds[3])) $stmtItem->execute([$orderIds[3], 5, 1, 890.00]); } if ($action === 'list') { $status = $_GET['status'] ?? 'all'; $sql = "SELECT o.*, u.name as customer_name, u.email as customer_email FROM orders o JOIN users u ON o.user_id = u.id"; $params = []; if ($status !== 'all') { $sql .= " WHERE o.status = ?"; $params[] = $status; } $sql .= " ORDER BY o.id DESC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $orders = $stmt->fetchAll(); foreach ($orders as &$ord) { $stmtItems = $pdo->prepare("SELECT oi.*, p.title, p.image_url, p.sku FROM order_items oi JOIN products p ON oi.product_id = p.id WHERE oi.order_id = ?"); $stmtItems->execute([$ord['id']]); $ord['items'] = $stmtItems->fetchAll(); } echo json_encode(['status' => 'success', 'data' => $orders]); exit; } if ($action === 'update_status') { $order_id = $_POST['order_id'] ?? null; $new_status = $_POST['new_status'] ?? 'shipped'; $tracking_number = $_POST['tracking_number'] ?? ('TH' . rand(100000000, 999999999)); if ($order_id) { $stmt = $pdo->prepare("UPDATE orders SET status = ?, tracking_number = ? WHERE id = ?"); $stmt->execute([$new_status, $tracking_number, $order_id]); echo json_encode(['status' => 'success', 'message' => "Order #$order_id updated to $new_status", 'tracking_number' => $tracking_number]); } else { echo json_encode(['status' => 'error', 'message' => 'Missing order ID']); } exit; } } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings