false, 'ERROR' => '', 'HAS_UPDATE' => false, 'ORDER_STATUS' => new stdClass(), 'MESSAGE' => '']; try { $data = readJsonBody(); if (!isset($data['OrderID'])) { $payload['ERROR'] = 'OrderID is required'; jsonResponse($payload); } if (!isset($data['LastKnownStatusID'])) { $payload['ERROR'] = 'LastKnownStatusID is required'; jsonResponse($payload); } $OrderID = (int) $data['OrderID']; $LastKnownStatusID = (int) $data['LastKnownStatusID']; $qOrder = queryOne(" SELECT ID, StatusID, LastEditedOn, ServicePointID, BusinessID, UserID FROM Orders WHERE ID = ? AND StatusID != 7 ", [$OrderID]); if (!$qOrder) { $payload['ERROR'] = 'Order not found or deleted'; jsonResponse($payload); } $currentStatus = (int) $qOrder['StatusID']; $hasUpdate = ($currentStatus !== $LastKnownStatusID); $payload['OK'] = true; $payload['HAS_UPDATE'] = $hasUpdate; if ($hasUpdate) { $statusMap = [ 0 => ['Cart', 'Your order is in the cart'], 1 => ['Submitted', 'Your order has been received and is being prepared'], 2 => ['Preparing', 'Your order is now being prepared'], 3 => ['Ready', 'Your order is ready for pickup!'], 4 => ['Completed', 'Thank you! Your order is complete'], ]; $info = $statusMap[$currentStatus] ?? ['Unknown', 'Order status updated']; $payload['ORDER_STATUS'] = [ 'OrderID' => (int) $qOrder['ID'], 'StatusID' => $currentStatus, 'StatusName' => $info[0], 'Message' => $info[1], 'LastEditedOn' => toISO8601($qOrder['LastEditedOn']), ]; $payload['MESSAGE'] = $info[1]; } else { $payload['MESSAGE'] = 'No status update'; } } catch (Exception $e) { $payload['ERROR'] = 'Error checking status: ' . $e->getMessage(); $payload['OK'] = false; } jsonResponse($payload);