주 콘텐츠로 건너뛰기
버전: 1.x

오프라인 기능

WCPOS는 각 기기의 로컬 데이터베이스에 상품 및 고객 데이터를 저장합니다. 따라서 POS의 일부 기능은 인터넷 연결 없이도 작동하지만, 일부 기능은 연결이 필요합니다.

오프라인에서 작동하는 기능​

  • 상품 탐색 — 로컬 데이터에서 상품을 검색, 필터링하고 상품 세부 정보를 확인합니다
  • 고객 탐색 — 고객 이름, 이메일, 주소를 조회합니다
  • 장바구니 구성 — 항목 추가, 수량 변경, 가격 편집, POS 할인 적용을 할 수 있습니다
  • 쿠폰 적용(Pro) — 동기화된 쿠폰 데이터를 기준으로 코드가 로컬에서 검증되며, 대기 중이던 주문이 도달하면 서버가 다시 검증합니다
  • 주문 저장 — 주문을 기기에 보류하거나 저장하면 발신 대기열에 추가되고 연결이 복구되었을 때 WooCommerce에 전송됩니다.
  • 바코드 스캔 — 바코드를 스캔하여 로컬 데이터베이스에서 상품을 찾습니다
  • 보고서 보기 — 기본(오프라인) 보고서 유형은 로컬에 저장된 주문에서 보고서를 생성합니다

연결이 필요한 기능​

  • 결제 받기 — 결제를 완료하면 서버에서 호스팅하는 결제 페이지가 표시되므로 결제 단계 자체는 오프라인으로 완료할 수 없습니다. 오프라인에서도 주문을 작성해 저장한 다음 온라인 상태가 되면 결제를 받을 수 있습니다.
  • 서버에 의존하는 결제 작업 — 웹 체크아웃, 통합 온라인 게이트웨이 또는 단말기 게이트웨이, 서버에 저장은 각 서비스에 연결할 수 있어야 합니다
  • 데이터 동기화 — WooCommerce에서 새 상품, 업데이트된 가격 또는 새 고객을 가져옵니다
  • 로그인 — 최초 인증에는 WordPress 사이트 연결이 필요합니다
  • 라이선스 활성화 — Pro 라이선스 확인은 WCPOS 라이선스 서버에 연결되어야 합니다
  • 환불 처리 — 환불은 오프라인에서 대기열에 넣을 수 없습니다. 게이트웨이와 매장 모두 연결 가능해야 합니다(환불 참조)
판매 완료에는 연결이 필요합니다

오프라인에서 주문을 작성하고 저장할 수 있지만 결제 단계는 연결이 복구될 때까지 기다려야 합니다. 현금 결제를 시작으로 오프라인에서 판매를 완료하는 기능은 로드맵에 있습니다.

로컬 데이터베이스 작동 방식​

WCPOS를 처음 열면 백그라운드에서 상품 카탈로그를 시드하고, 사용하는 과정에서 나머지 데이터를 가져옵니다. 첫 상품이 기기에 저장되는 즉시 판매를 시작할 수 있습니다. 이후에는 백그라운드 변경 확인(기본값 60초마다, 스토어 상태에서 조정 가능)이 서버에서 실제로 변경된 항목만 가져옵니다.

로컬 데이터베이스:

  • 세션 간 유지 — 브라우저를 다시 시작하거나 기기를 재부팅해도 데이터가 유지됩니다
  • 기기별(및 계산원별)로 관리 — 각 기기는 자체 로컬 사본을 유지하며, 계산원끼리 로컬 데이터를 공유하지 않습니다
  • 동기화 상태 유지 — 백그라운드 변경 확인이 업데이트를 가져오고, 사용자의 변경 사항은 로컬에 대기했다가 서버로 전송됩니다

기기에 무엇이 저장되어 있는지, 그리고 아직 전송 대기 중인 항목이 무엇인지는 스토어 상태 → 데이터베이스에서 정확히 확인할 수 있습니다. 더 자세한 기술 정보는 동기화 엔진 작동 방식을 참조하세요.

오프라인에서 변경한 내용은 대기열에 저장됩니다​

POS에서 변경한 모든 내용(저장한 주문, 신규 또는 수정된 고객, 쿠폰, 재고 또는 가격 수정(Pro), 영수증 이메일)은 먼저 기기에 저장된 다음 전송 대기열에 추가됩니다. 오프라인에서는 대기열이 그대로 기다리므로 근무 중 연결이 끊겨도 내용이 사라지지 않습니다. 앱을 다시 시작하거나 충돌한 뒤에도 대기열이 유지됩니다. 앱에 오류 화면이 나타나면 다시 시도를 선택해도 아직 전송하지 않은 판매 내역은 삭제되지 않고 앱이 다시 로드됩니다.

연결이 복구되면 대기열이 자동으로 비워집니다. 서버가 변경 사항을 명시적으로 거부하는 경우(드물게, 예를 들어 서버가 유효하지 않다고 판단한 레코드) POS는 무한정 조용히 재시도하지 않습니다. 해당 변경 사항은 스토어 상태 → 데이터베이스의 "서버에 도달하지 못한 변경 사항" 항목에 서버가 알려준 사유와 함께 보관되며, 다시 전송 / 삭제 작업을 직접 선택할 수 있습니다. 스토어 상태를 참조하세요.

연결 상태 표시기​

POS 헤더에는 연결 상태를 나타내는 색상 점이 표시됩니다:

  • 녹색 — 서버에 연결되어 있으며 모든 기능을 사용할 수 있음
  • 노란색 — 연결이 불안정하며 일부 작업이 느릴 수 있음
  • 빨간색 — 오프라인이며 로컬 데이터로만 제한됨

연결이 끊어졌을 때 발생하는 일​

POS 사용 중 인터넷 연결이 끊어지면:

  1. 상품과 고객은 계속 탐색할 수 있습니다. 로컬 데이터에서 확인됩니다.
  2. 장바구니를 계속 구성하고 항목을 편집할 수 있습니다 — 모든 변경 사항이 로컬 대기열에 저장됩니다.
  3. 주문을 작성하고 저장할 수 있지만 결제는 받을 수 없습니다 — 장바구니와 수정 내용은 로컬 대기열에 추가되며 나중에 전송할 주문을 저장할 수 있습니다. 결제는 서버에서 표시하는 결제 화면에서 진행되므로 연결이 복구될 때까지 기다려야 합니다.
  4. 열려 있는 주문은 보존됩니다. 연결이 복구될 때까지 로컬 데이터베이스에 저장됩니다.

연결이 복구되면​

연결이 다시 복구되면:

  • 연결 상태 표시기가 녹색으로 바뀝니다.
  • 대기 중인 변경 사항이 자동으로 서버로 전송됩니다 — 오프라인 상태에서 처리한 판매와 편집이 별도의 수동 작업 없이 전송됩니다.
  • 서버에 의존하는 결제 게이트웨이와 서버에 저장 기능을 다시 사용할 수 있습니다.
  • 백그라운드 동기화가 재개되어 오프라인 상태였던 동안 발생한 상품 또는 고객 변경 사항을 가져옵니다.

불안정한 연결을 위한 팁​

  • 중요한 주문에는 "서버에 저장"을 사용하세요 — 이렇게 하면 주문이 WooCommerce로 즉시 전송되므로 기기의 로컬 데이터베이스가 삭제되더라도 주문이 손실되지 않습니다.
  • 장애 후에는 스토어 상태를 확인하세요 — 스토어 상태 → 데이터베이스의 전송 대기 중인 변경 사항 타일에서 모든 항목이 서버에 도달했는지 확인할 수 있습니다.
  • 신호가 좋을 때 동기화하세요 — 연결이 간헐적이라는 것을 알고 있다면, 연결 상태가 좋을 때 카탈로그 시드를 끝내 두세요.