HandyCafe Docs
owner it-admin

배치도와 테이블

배치도 편집기는 테이블을 배치하기 위한 시각적 캔버스입니다. 테이블 페이지는 세부 정보와 작업을 위한 테이블별 운영 화면입니다. 두 화면은 같은 테이블 레코드를 사용합니다.

층은 "메인 홀", "중이층", "야외 테라스"처럼 물리적 위치별로 테이블을 묶습니다. 층은 설정 > 카페테리아에서 만들고 관리합니다.

모든 카페에는 최소 한 개의 층이 필요합니다. 테이블은 항상 정확히 한 층에만 할당됩니다. 위/아래 이동 컨트롤로 층 순서를 조정할 수 있으며, 맨 위 층은 배치도 탭이 열릴 때 기본값이 됩니다. 배치도 페이지에는 모든 테이블을 합쳐 보여주는 "모든 층" 칩도 있습니다.

배치도 편집기

배치도 편집기는 10픽셀 그리드를 사용하는 1200 x 720 캔버스에 렌더링됩니다. 테이블은 저장된 위치에 따라 도형으로 표시됩니다. 편집기는 두 가지 표시 모드를 지원합니다.

모드 용도
2D 편집 및 배치. 테이블을 끌어 옮기고, 추가하거나 제거하고, 이름을 바꿉니다.
3D 프레젠테이션과 안내용입니다. 캔버스가 CSS perspective를 사용해 기울어진 건축 스타일의 이등각 뷰를 만듭니다. 기울어진 캔버스에서는 포인터 매핑이 모호하므로 3D 모드에서는 드래그가 비활성화됩니다.

테이블 추가 및 위치 지정

  1. 카페테리아 > 배치도를 엽니다.
  2. 상단의 층 칩에서 대상 층을 선택합니다.
  3. 테이블 추가를 클릭합니다. 새 테이블이 기본 모양, 크기, 좌석 수로 캔버스 원점에 나타납니다.
  4. 테이블 본체를 원하는 위치로 드래그합니다. 마우스 버튼을 놓는 순간 위치가 자동 저장됩니다.
  5. 각 좌석 그룹마다 반복합니다.

위치는 10픽셀 그리드에 맞춰 정렬되므로, 정돈된 느낌을 유지하면서도 픽셀 단위의 정확한 배치가 필요하지 않습니다.

테이블 속성

모든 테이블에는 다음과 같은 편집 가능한 필드가 있습니다.

필드 의미
코드 QR에 인쇄되고 직원에게 보이는 짧은 식별자입니다. 카페 내에서 고유해야 합니다.
표시 이름 직원에게 보이는 더 긴 레이블입니다. 예: "창가 3번" 또는 "부스 A".
좌석 수 테이블의 좌석 수입니다. 기본값은 2입니다.
모양 square, rectangle horizontal, rectangle vertical, round 중 하나입니다.
크기 1에서 10까지의 정수입니다. 편집기와 3D 보기의 렌더 크기를 제어합니다.
이 테이블이 속한 층입니다. 이 필드를 수정해 다른 층으로 이동할 수 있습니다.
상태 idle, in_use, out_of_order 중 하나입니다.

테이블 상태

상태 의미
idle 활성 세션이 없습니다. 고객은 자리에 앉기 전까지 주문할 수 없습니다.
in_use 보안 코드가 활성화되어 있습니다. 고객은 QR을 스캔하고 주문할 수 있습니다.
out_of_order 해당 테이블은 사용할 수 없습니다. 배치도에서는 흐리게 표시되며, QR 페이지에는 사용 불가 안내가 나타납니다. 유지보수나 가구 수리에 유용합니다.

고객 앉히기

테이블에서 주문을 받으려면 직원이 고객을 앉혀야 합니다. 이 작업은 보안 코드를 발급하고 테이블을 in_use 상태로 바꿉니다.

  1. 테이블 페이지 또는 배치도 작업 메뉴에서 해당 테이블을 선택합니다.
  2. 고객 앉히기(또는 "테이블 열기")를 클릭합니다.
  3. 시스템이 6자리 보안 코드를 생성하여 표시합니다.
  4. 코드를 고객에게 전달합니다. 고객은 QR을 스캔한 뒤 이 코드를 입력합니다.

코드는 생성 시점과, 관리자가 이미 앉혀진 테이블의 코드 표시 대화상자를 열었을 때만 평문으로 보입니다. 서버 측에서는 해시되어 저장됩니다. 기본 지속 시간이 지나면 만료되며, 언제든지 회전하거나 재설정할 수 있습니다.

코드 표시 및 회전

  • 코드 표시. 열려 있는 테이블에 현재 캐시된 평문 코드를 보여줍니다. 고객이 처음에 숫자를 놓쳤을 때 유용합니다. 이 작업은 코드를 회전하지 않으며 기존 QR을 무효화하지도 않습니다.
  • QR 회전. 테이블용 새 QR 토큰을 생성합니다. 이전 QR 스티커는 무효가 됩니다. 스티커를 다시 인쇄할 때나 기존 QR이 외부에 공유되었다고 의심될 때 사용합니다.

테이블 닫기

고객이 떠났지만 미결제 금액이 없으면 테이블 닫기를 클릭합니다. 보안 코드는 즉시 만료되고, 테이블은 idle로 돌아가며, 이후 스캔 시에는 다시 앉힘이 필요합니다.

테이블에 미지급 주문이 있으면 대신 정산을 사용합니다. 정산은 선택한 결제 수단으로 열린 주문을 모두 마감한 뒤 테이블을 다시 대기 상태로 돌립니다. 정산 흐름은 주문 페이지를 참고하십시오.

QR 코드

각 테이블에는 URL handy.cafe/{cafe-slug}/{table-code}를 인코딩한 QR 코드가 있습니다. 쿼리 매개변수에는 스티커의 진위 여부를 증명하는 QR 토큰이 포함됩니다. 고객이 QR을 스캔하면 다음 순서로 처리됩니다.

  1. 메뉴 페이지가 클라우드 API를 통해 슬러그와 테이블 코드를 해석합니다.
  2. 테이블 상태가 in_use이면 고객에게 6자리 보안 코드를 입력하라고 요청합니다.
  3. 검증에 성공하면 세션 토큰이 발급되어 쿠키와 Bearer 토큰 대체 경로에 저장됩니다. iPhone Safari는 일부 설정에서 서드파티 쿠키를 차단할 수 있으므로 Bearer 대체 경로가 필요합니다.

인쇄용 QR은 테이블 페이지에서 생성할 수 있습니다. 각 테이블에는 SVG 또는 PNG로 저장할 수 있는 QR 미리보기가 있습니다. QR 토큰을 회전하거나 슬러그를 변경할 때마다 스티커를 다시 인쇄하세요.

배치도 설계 팁

  • 실제 배치를 먼저 캔버스에 대응시킵니다. 출입구를 한쪽 가장자리 근처에 두고 안쪽으로 배치하면 직원이 방향을 잡기 쉽습니다.
  • 매장이 한 층뿐이어도 테이블을 층별로 묶으세요. "홀"과 "테라스"를 별도 층으로 두면 주문 대시보드를 구역별로 필터링하기 쉽습니다.
  • 네 명 이상 앉는 부스에는 더 큰 Size 값을, 카운터 의자에는 더 작은 값을 사용하세요.
  • 가구 수리가 필요하면 테이블을 out_of_order로 표시해 고객이 주문하지 못하게 하세요. 자리가 영구적으로 사라진 경우가 아니라면 테이블 레코드를 삭제하지 않는 것이 좋습니다.