Store Managment Integration

Overview

The Store Management provides a unified way to control how stores appear and operate on the ordering platform. It allows brands to manage centrally:

  • Store Status – Toggle a store’s availability (online/offline), e.g., during technical outages or operational breaks.
  • Working Hours – Define the weekly opening and closing hours to ensure aggregators display accurate availability.
  • Working Mode – Dynamically set the store’s operating mode (e.g., normal vs busy), which can temporarily adjust expectations on order flow and customer experience.
sequenceDiagram
    autonumber
    actor Op as Operator / Backoffice
    participant API as Grubtech <br/>(Store Management API)
    participant Agg as Ordering Platform

    Note over Op,Agg: Store Status
    Op->>API: Sync latest store status
    API->>Agg: GET /stores/{storeId}/status
    Agg-->>API: 200 OK<br/> {"status": "online"}/{"status": "offline"}
    Op->>API: Mark store as online or offline
    Opt Offline
        API->>Agg: PUT /stores/{storeId}/status<br/>{ "status": "offline" }
        Agg-->>API: 200 OK
    end

    opt Online
        API->>Agg: PUT /stores/{storeId}/status<br/>{ "status": "online" }
        Agg-->>API: 200 OK
    end


    Note over Op,Agg: Working Mode
    Op->>API: Sync latest store working mode
    API->>Agg: GET /stores/{storeId}/working-mode
    Agg-->>API: 200 OK<br/> {"workingMode": "busy","busyUntil": "2025-04-01T18:00:00Z"}
    Op->>API: Mark store as Busy or Quite
    opt Marks store as Busy
        API->>Agg: PUT /stores/{storeId}/working-mode<br/>{ "workingMode": "busy", "busyUntil": "2025-08-22T18:00:00Z" }
        Agg-->>API: 200 OK
    end

    opt Marks store as Quite
        API-->>Agg: PUT /stores/{storeId}/working-mode<br/>{ "workingMode": "quite"}
        Agg-->>API: 200 OK
    end


    Note over Op,Agg: Configure store working hours
    Op->>API: Sync latest store working hours
    API->>Agg: GET /stores/{storeId}/working-hours
    Agg-->>API: 200 OK<br/>{ weekly schedule }
    Op->>API: Configure store working hours 
    API->>Agg: PUT /stores/{storeId}/working-hours<br/>{ weekly schedule }
    Agg-->>API: 200 OK

Flow Explanation

    • GET /stores/{storeId}/status → Retrieve the current status of a store (online or offline) from the ordering platform.
    • .PUT /stores/{storeId}/status → Update the store’s status (e.g., mark offline during maintenance).
      Typical Use Case: A restaurant runs out of inventory and needs to mark itself offline on the ordering platform quickly.
    • GET /stores/{storeId}/working-hours → Retrieve the weekly schedule currently applied from the ordering platform
    • PUT /stores/{storeId}/working-hours → Update the entire weekly schedule (e.g., changing closing hours for Ramadan or holidays).
      Typical Use Case: Adjust business hours seasonally or reflect temporary changes in opening times.
    • GET /stores/{storeId}/working-mode → Check the current mode (normal or busy).
    • PUT /stores/{storeId}/working-mode → Set the store into busy mode, optionally including a busyUntil timestamp to automatically revert.
      Typical Use Case: If a kitchen is overloaded, setting the mode to busy signals aggregators to extend preparation times or limit incoming orders.