Project

General

Profile

Actions

New Function #144

open

[ADMIN] Scheduler/Callback - delivery tracking (스마트 택배 배송추적)

Added by Deca Park 10 months ago. Updated about 17 hours ago.

Status:
Feedback
Priority:
Normal
Assignee:
Start date:
11/10/2023
Due date:
% Done:

0%

Estimated time:
Spent time:

Description

[Scheduler] delivery tracking

1.cron tab
  - 12:00 every day

2.process
  1) select target list
    DB: st_order
    condition:
      st_mall.mall_type='online' AND
      (
        (order_status='OS02' (배송중) AND delivery_invoice_no is NOT empty(NULL))
        OR
        (order_status='OS30' (교환재배송중) AND redelivery_invoice_no is NOT empty(NULL))
      )
  2) call tracking request API (each selected target)
    a) config properties
      a-1) dev
        delivery.api.tracking.domain=http://trace-api-dev.sweettracker.net:8102
        delivery.api.tracking.tier=testuser
        delivery.api.tracking.key=testuser

      a-2) prod
        delivery.api.tracking.domain=http://trace-api.sweettracker.net/
        delivery.api.tracking.tier=
        delivery.api.tracking.key=


    b) API (refer to attach pdf > 3.3 운송장 추적 요청 API)
      b-1) URL: POST {delivery.tracking.domain}/add_invoice
      b-2) parameter
        - num: 
          if order_status='OS02', {delivery_invoice_no} (after remove space or "-")
          if order_status='OS30', {redelivery_invoice_no} (after remove space or "-")
        - code: 
          if order_status='OS02', {delivery_company_code}
          if order_status='OS30', {redelivery_company_code}
        - fid :
          if order_status='OS02', "OS02:" + {order_no}
          if order_status='OS30', "OS30:" + {order_no}
        - callback_url: {site.domain}/delivery/tracking_receive
        - callback_type: "json"
        - tier: {delivery.api.tracking.tier}
        - key: {delivery.api.key}
        - type: "json"
  3) log
    a) if API call success
      - leave log: level(DEBUG), message: "[Scheduler] DeliveryTracking Request Success: num={num},fid={fid}"
    b) if API call fails
      - leave log: level(ERROR), message: "[Scheduler] DeliveryTracking Request Fail: num={num},fid={fid},e_code={e_code},e_message={e_message}"

[Callback] delivery tracking

1.API (refer to attach pdf > 3.5 운송장 추적정보 수신API(Callback_URL))
  1) URL: POST {site.domain}/delivery/tracking_receive
    - permit all

2.process
  1) get fid / invoice_no / level parameter
      - parse fid and get order_status and order_no (ex: OS02:231108180642UHFS)
      - leave log: level(DEBUG), message: "[Scheduler] DeliveryTracking Callback Receive: fid={fid},invoice_no={invoice_no},level={level}"
  2) select order
      DB: st_order
      conditions: order_no={order_no param} AND order_status={order_status param}
  3) if no select data, break
  4) update order status
     4-1) if {order_status param} = 'OS02'
       a) if st_oder.delivery_invoice_no = {invoice_no param} and {level param} = 6
          - UPDATE st_order
            SET order_status='OS03' (배송완료), mod_date={current datetime}
            condition: order_no={order_no param}
     4-2) if {order_status param} = 'OS30'
       a) if st_oder.redelivery_invoice_no = {invoice_no param} and {level param} = 6
          - UPDATE st_order
            SET order_status='OS31' (교환완료), mod_date={current datetime}
            condition: order_no={order_no param}
     4-3) leave log
       level(DEBUG), message: "[Scheduler] DeliveryTracking Callback Process: order_no={order_no},order_status={updated order_status}"


Files

smartAPI_Trace API_v1.5.pdf (194 KB) smartAPI_Trace API_v1.5.pdf Deca Park, 11/10/2023 08:50 PM
delivery_tracking_1.png (31.6 KB) delivery_tracking_1.png Deca Park, 11/14/2023 05:25 PM
Actions

Also available in: Atom PDF