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

상품 동기화

WCPOS는 각 기기에 상품의 로컬 사본을 보관하므로 카탈로그를 즉시 탐색·검색할 수 있고 오프라인에서도 계속 작동합니다. 이 가이드에서는 상품이 기기에 저장되는 방식과 최신 상태로 유지되는 방식을 설명합니다.

v1.10.0에서 변경됨

v1.10.0에는 새로운 동기화 엔진이 도입되었습니다. 사용 중인 POS가 v1.10.0 이전 버전이라면 아래 v1.10.0에서 달라진 점을 참조하세요.

상품이 기기에 저장되는 방식

  • 카탈로그 시드가 백그라운드에서 실행됩니다. 처음 실행한 시점부터 POS는 별도의 조작 없이 정해진 일정에 따라 카탈로그를 소량의 배치로 다운로드합니다. 첫 상품이 내려오는 즉시 판매를 시작할 수 있으며, 결제는 다운로드 완료를 기다리지 않습니다.
  • 지금 보고 있는 항목은 필요할 때 다운로드됩니다. 검색하거나 카테고리로 필터링하거나 바코드를 스캔하면, 아직 로컬에 없는 상품을 직접 가져옵니다. 이제 검색이 관련 없는 상품까지 함께 끌어오지 않고, 요청한 항목만 가져옵니다.
  • 업데이트는 변경 확인을 통해 전달됩니다. 상품이 한 번 로컬에 저장되면 POS는 변경 여부를 확인하려고 다시 다운로드하지 않습니다. 가벼운 변경 로그를 주기적으로 조회하고(기본 프리셋에서는 60초마다) 실제로 변경된 항목만 가져옵니다. 변화가 없는 스토어에서는 "변경 없음"이라는 거의 비용이 들지 않는 단일 응답만 돌아옵니다.

배치 크기는 얼마인가요?

기본적으로 POS는 한 번에 상품 50개를 요청합니다. 이제 이 값은 고정 상수가 아니라 스토어 상태 → 성능의 동기화 프리셋이 설정하는 두 가지 다이얼 중 하나입니다:

프리셋확인 간격요청당 레코드 수
Eco5분25
Balanced (기본값)60초50
Realtime10초75

배치를 작게 유지하는 이유는 서버를 보호하기 위해서입니다. 큰 페이지는 서버에서 생성하는 데 실제로 시간이 걸리며, 공유 호스팅에서는 스토어프런트를 느리게 만들거나 요청 제한에 걸릴 수 있습니다. 사양이 낮은 호스팅에는 Eco를, 성능이 좋은 호스팅에서 여러 계산대를 운영한다면 Realtime을 선택하세요. 자세한 내용은 스토어 상태를 참조하세요.

다운로드 진행 상황 확인

스토어 상태 → 데이터베이스를 열면 컬렉션별로 이 기기에 있는 레코드 수와 서버에 있는 레코드 수를 커버리지 막대와 함께 확인할 수 있습니다. 서버 기준 수치는 서버가 실제로 보고한 총계이며, POS가 아직 확인 중일 때는 추정값 대신 *확인 중…*으로 표시됩니다.

상품 막대가 일부만 차 있다면 시드가 아직 끝나지 않았다는 뜻일 뿐이며, 백그라운드에서 계속 채워집니다. 특정 상품이 보이지 않는 것 같다면 검색해 보세요 — 검색하면 해당 상품을 직접 가져옵니다.

특정 컬렉션이 멈춘 것 같다면, 모든 로컬 데이터 초기화라는 전체 초기화를 시도하기 전에 스토어 상태 → 데이터베이스에서 해당 행의 지우고 다시 다운로드를 사용하세요.

v1.10.0에서 달라진 점

이전 버전은 사용하는 과정에서 점진적으로 카탈로그를 다운로드했습니다. 검색하거나 스크롤할 때마다 상품 배치를 하나씩 더 가져왔고, 5분마다 전체 폴링이 실행되었습니다. 이 방식은 폐지되었습니다. v1.10.0에서는:

  • 카탈로그가 예약된 백그라운드 시드를 통해 채워집니다 — 상품을 다운로드하려고 검색하거나 스크롤할 필요가 없습니다.
  • 검색은 임의의 다음 배치가 아니라 검색 조건에 일치하는 상품을 가져옵니다.
  • 변경 확인은 고정된 5분 전체 폴링 대신, 선택한 프리셋 간격(기본 60초)에 따라 조건부 요청으로 실행됩니다.
  • 다운로드 진행 상황은 스토어 상태 → 데이터베이스에서 컬렉션별로 확인할 수 있습니다.

개발자를 위한 전체 동작 방식은 동기화 엔진 작동 방식에서 확인할 수 있습니다.

자주 묻는 질문

상품을 다운로드하려면 무언가 해야 하나요?

아니요. 카탈로그 시드가 백그라운드에서 자동으로 상품을 다운로드합니다. 검색이나 필터링을 하면 아직 로컬에 없는 특정 상품을 즉시 가져오지만, 다운로드를 완성하는 것은 일반적인 탐색이 아니라 백그라운드 시드입니다.

상품 변경 사항은 얼마나 빨리 POS에 반영되나요?

기본 Balanced 프리셋에서 POS는 60초마다 변경 사항을 확인합니다(여러 계산대가 동시에 서버를 호출하지 않도록 확인 시점이 약간 무작위화됩니다). 변경된 상품만 가져옵니다. 여러 계산대가 서로의 변경 사항을 더 빨리 확인해야 한다면 Realtime 프리셋을 사용하세요.

POS에서 모든 상품이 보이지 않습니다

몇 가지 가능성이 있습니다:

  • 백그라운드 시드가 아직 끝나지 않았을 수 있습니다 — 스토어 상태 → 데이터베이스의 상품 행을 확인하세요.
  • POS는 기본적으로 재고 없음 항목을 숨깁니다. 상품 표시 설정에서 변경할 수 있습니다.
  • WooCommerce REST API는 표준 상품 유형(단순, 변동, 그룹, 외부)만 지원합니다. 사용자 정의 상품 유형은 POS에 표시되지 않을 수 있습니다.