재고 자동 업데이트 시스템
WooCommerce 재고 관리 훅을 활용하여 외부 재고 동기화, 저재고 알림, 자동 재입고 알림, CSV 가져오기/내보내기를 구현합니다.
재고 관리 자동화가 필요한 이유
수동 재고 관리의 한계와 자동화의 필요성
온라인 쇼핑몰에서 재고 관리는 매출과 고객 만족도에 직접적인 영향을 미치는 핵심 운영 요소입니다. 재고가 실제로 있는데 시스템에서 "품절"로 표시되면 판매 기회를 놓치게 되고, 반대로 재고가 없는데 주문이 들어오면 취소 처리와 함께 고객 신뢰가 크게 하락합니다. 이러한 불일치 문제는 수동 관리 환경에서 빈번하게 발생하며, 쇼핑몰 규모가 커질수록 그 빈도와 피해 규모도 기하급수적으로 증가합니다.
미국 IHL 그룹의 조사에 따르면, 전 세계 소매업체들이 과잉재고와 품절로 인해 매년 약 1.8조 달러(약 2,400조 원)의 손실을 입고 있습니다. 과잉재고는 보관 비용, 감가상각, 폐기 비용을 발생시키고, 품절은 직접적인 매출 손실과 고객 이탈로 이어집니다. 특히 온라인 쇼핑에서 품절을 경험한 고객의 약 70%는 경쟁사 사이트로 바로 이동한다는 통계가 있으며, 이 중 상당수는 다시 돌아오지 않습니다.
WooCommerce 기반 쇼핑몰에서 재고 관리를 자동화하면 이런 문제를 근본적으로 해결할 수 있습니다. WordPress의 훅 시스템과 WP-Cron, REST API를 활용하면 외부 ERP/창고 시스템과 실시간으로 재고를 동기화하고, 저재고 시 자동으로 담당자에게 알림을 보내며, 판매 데이터를 기반으로 미래 수요까지 예측할 수 있습니다. 이 모든 것을 플러그인 없이 코드 레벨에서 구현하는 방법을 이 레슨에서 상세히 다룹니다.
재고 관리 자동화의 핵심 원칙
재고 관리 자동화로 해결할 수 있는 문제들
과잉재고 문제: 수요 예측 없이 "감"으로 발주하면 재고가 쌓입니다. 보관 비용은 월 매입가의 2~3%에 달하며, 시즌 상품의 경우 시즌이 지나면 원가의 30~50%까지 가치가 하락합니다. 자동화 시스템은 과거 판매 데이터를 분석하여 적정 발주량을 계산해줍니다.
품절 문제: 인기 상품이 예상보다 빨리 소진되면 재입고까지 매출 공백이 발생합니다. 저재고 알림을 자동화하면 재입고 리드타임을 고려한 적정 시점에 발주할 수 있어 품절 기간을 최소화할 수 있습니다.
멀티 채널 불일치: 자사몰, 쿠팡, 스마트스토어 등 여러 채널에서 동시에 판매할 때 한 채널에서 마지막 1개가 팔렸는데 다른 채널에서도 주문이 들어오는 "오버셀링" 문제가 빈번합니다. 실시간 동기화로 모든 채널의 재고를 일관되게 유지해야 합니다.
인적 오류: 수동 입력 시 숫자 오타, 상품 혼동 등의 실수가 발생합니다. 바코드/SKU 기반 자동 처리는 이러한 인적 오류를 거의 완전히 제거합니다.
WooCommerce 재고 관리 훅 완전 가이드
재고 관련 핵심 액션 훅과 필터 훅
WooCommerce는 재고 수량이 변경되는 모든 시점에 훅을 제공합니다. 주문 생성, 결제 완료, 환불 처리, 관리자 수동 변경 등 모든 재고 변동 이벤트를 코드에서 감지하고 처리할 수 있습니다. 아래에서 가장 중요한 재고 관련 훅들을 체계적으로 정리합니다.
woocommerce_product_set_stock는 상품의 재고 수량이 변경될 때마다 실행되는 가장 범용적인 훅입니다. 주문에 의한 차감, 환불에 의한 복구, 관리자 수동 변경 등 모든 경우에 트리거됩니다. woocommerce_reduce_order_stock는 주문으로 인해 재고가 차감되는 시점에만 실행되며, 주문 객체와 상품 정보를 함께 전달받을 수 있어서 "어떤 주문 때문에 재고가 줄었는지"를 추적할 수 있습니다.
woocommerce_low_stock와 woocommerce_no_stock는 각각 저재고 임계값 이하로 떨어질 때와 재고가 0이 될 때 실행됩니다. 이 두 훅은 알림 시스템 구축에 핵심적입니다. woocommerce_restore_order_stock는 주문 취소나 환불 시 재고가 복구될 때 실행됩니다.
| 훅 이름 | 실행 시점 | 전달 파라미터 | 주요 용도 |
|---|---|---|---|
woocommerce_product_set_stock |
재고 수량이 변경될 때마다 | $product (WC_Product) | 범용 재고 변동 감지, 로그 기록 |
woocommerce_reduce_order_stock |
주문으로 재고가 차감될 때 | $order (WC_Order) | 주문-재고 연결 추적, 외부 알림 |
woocommerce_restore_order_stock |
주문 취소/환불로 재고 복구 시 | $order (WC_Order) | 재고 복구 로그, 상태 자동 변경 |
woocommerce_low_stock |
저재고 임계값 이하로 떨어질 때 | $product (WC_Product) | 저재고 알림 발송 |
woocommerce_no_stock |
재고가 0이 될 때 | $product (WC_Product) | 품절 긴급 알림, 상품 숨김 처리 |
woocommerce_variation_set_stock |
변형 상품 재고가 변경될 때 | $variation (WC_Product_Variation) | 변형별 재고 추적 |
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.