쇼핑몰 택배API 연동 가이드
고객에게 실시간 배송 추적 서비스를 제공하세요
쇼핑몰에 택배API를 연동하면
- 고객이 직접 택배사 사이트 방문 없이 내 쇼핑몰에서 배송 조회
- 주문 상태를 자동으로 업데이트 (배송중, 배송완료)
- CS 문의 감소 - "제 택배 어디있어요?" 문의 대폭 감소
- 고객 만족도 상승으로 재구매율 향상
지원 플랫폼
카페24
앱 또는 스크립트 연동
고도몰
PHP 모듈 연동
메이크샵
외부 스크립트 연동
자체 쇼핑몰
REST API 직접 연동
구현 시나리오
시나리오 1: 마이페이지 배송조회
고객이 주문 내역에서 "배송조회" 버튼을 클릭하면 실시간 배송 상태를 표시합니다.
1 배송조회 버튼 추가
<!-- 주문 목록 페이지 -->
<button onclick="trackDelivery('lotte', '1234567890')">
배송조회
</button>
<div id="tracking-result"></div> 2 API 호출 (서버 사이드)
// Node.js Express 예시
app.get('/api/tracking', async (req, res) => {
const { courier, trackingNumber } = req.query;
const response = await axios.post(
'https://api.deliveryapi.co.kr/v1/tracking/trace',
{
items: [{ courierCode: courier, trackingNumber }]
},
{
headers: {
'Authorization': `Bearer ${API_KEY}:${SECRET_KEY}`,
'Content-Type': 'application/json'
}
}
);
res.json(response.data);
}); 3 결과 표시 (클라이언트)
async function trackDelivery(courier, trackingNumber) {
const res = await fetch(
`/api/tracking?courier=${courier}&trackingNumber=${trackingNumber}`
);
const result = await res.json();
// API 응답의 results 배열에서 첫 번째 항목 가져오기
const data = result.data.results[0].data;
const html = `
<div class="tracking-status">
<h4>${data.deliveryStatusText}</h4>
<ul>
${data.progresses.map(p => `
<li>${p.dateTime} - ${p.description}</li>
`).join('')}
</ul>
</div>
`;
document.getElementById('tracking-result').innerHTML = html;
} 시나리오 2: 주문 상태 자동 업데이트
웹훅을 사용하여 배송 상태가 변경되면 자동으로 주문 상태를 업데이트합니다.
1 웹훅 엔드포인트 구현
// 웹훅 수신 서버
app.post('/webhook/delivery', (req, res) => {
const { event, items } = req.body;
for (const item of items) {
if (event === 'tracking.polled') {
// 주문 상태 업데이트
updateOrderStatus(item.trackingNumber, item.currentStatus);
}
if (event === 'tracking.completed' || item.isDelivered) {
// 배송 완료 처리
completeOrder(item.trackingNumber);
// 리뷰 요청 이메일 발송
sendReviewRequestEmail(item.trackingNumber);
}
}
res.json({ received: true });
});
async function updateOrderStatus(trackingNumber, status) {
const statusMap = {
'IN_TRANSIT': '배송중',
'OUT_FOR_DELIVERY': '배송출발',
'DELIVERED': '배송완료'
};
await Order.update(
{ status: statusMap[status] || status },
{ where: { trackingNumber } }
);
} 시나리오 3: 배송 완료 자동 구매확정
// 배송 완료 후 7일 뒤 자동 구매확정
// items 루프 내에서 사용
if (event === 'tracking.completed' || item.isDelivered) {
const order = await Order.findOne({
where: { trackingNumber: item.trackingNumber }
});
// 7일 후 자동 구매확정 스케줄링
scheduleAutoConfirm(order.id, 7 * 24 * 60 * 60 * 1000);
} 카페24 연동 예시
<!-- 카페24 주문상세 페이지에 삽입 -->
<script>
// 카페24 주문 정보에서 송장번호 가져오기
const trackingNumber = '{$order_tracking_no}';
const carrier = '{$order_carrier_code}';
if (trackingNumber) {
// 서버 프록시를 통해 API 호출 (API 키 보호)
fetch(`https://your-server.com/api/tracking?courier=${carrier}&trackingNumber=${trackingNumber}`)
.then(res => res.json())
.then(result => {
const data = result.data.results[0].data;
document.getElementById('delivery-status').innerHTML = `
<strong>${data.deliveryStatusText}</strong>
`;
});
}
</script> 예상 효과
- CS 문의 30~50% 감소 - 배송 관련 문의가 대폭 줄어듭니다
- 고객 만족도 향상 - 실시간 배송 추적으로 신뢰도 상승
- 운영 효율화 - 수동 상태 업데이트 작업 제거
- 재구매율 증가 - 좋은 경험이 재구매로 이어집니다