Use Case

쇼핑몰 택배API 연동 가이드

고객에게 실시간 배송 추적 서비스를 제공하세요

쇼핑몰 연동 WMS/물류 시스템 배송 알림 서비스

쇼핑몰에 택배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% 감소 - 배송 관련 문의가 대폭 줄어듭니다
  • 고객 만족도 향상 - 실시간 배송 추적으로 신뢰도 상승
  • 운영 효율화 - 수동 상태 업데이트 작업 제거
  • 재구매율 증가 - 좋은 경험이 재구매로 이어집니다

다른 유스케이스

지금 바로 연동해보세요

무료 플랜으로 API를 바로 테스트해보세요. 사용량에 맞는 요금제를 선택할 수 있습니다.

무료로 시작하기 →