New Function #144
Updated by Deca Park over 1 year ago
<p><strong>[Scheduler] delivery tracking</strong></p> <p>1.cron tab<br /> - 12:00 every day</p> <p>2.process<br /> 1) select target list<br /> DB: st_order<br /> condition:<br /> st_mall.mall_type='online' AND<br /> (<br /> (order_status='OS02' (배송중) AND delivery_invoice_no is NOT empty(NULL))<br /> OR<br /> (order_status='OS30' (교환재배송중) AND redelivery_invoice_no is NOT empty(NULL))<br /> )<br /> 2) call tracking request API (each selected target)<br /> a) config properties<br /> a-1) dev<br /> delivery.api.tracking.domain=http://trace-api-dev.sweettracker.net:8102<br delivery.api.key=vr54BfElvYIhplltfGUTUw<br /> delivery.api.tracking.tier=testuser<br delivery.api.tracking.domain=http://trace-api-dev.sweettracker.net:8102<br /> delivery.api.tracking.key=testuser<br delivery.api.tracking.tier=testuser<br /> a-2) prod<br /> delivery.api.tracking.domain=http://trace-api-dev.sweettracker.net:8102<br delivery.api.key=vr54BfElvYIhplltfGUTUw<br /> delivery.api.tracking.tier=<br delivery.tracking.domain=http://trace-api-dev.sweettracker.net:8102<br /> delivery.api.tracking.key=<br delivery.tracking.tier=<br /> <br /> b) API (refer to attach pdf > 3.3 운송장 추적 요청 API)<br /> b-1) URL: POST {delivery.tracking.domain}/add_invoice<br /> b-2) parameter<br /> - num: <br /> if order_status='OS02', {delivery_invoice_no} (after remove space or "-")<br /> if order_status='OS30', {redelivery_invoice_no} (after remove space or "-")<br /> - code: <br /> if order_status='OS02', {delivery_company_code}<br /> if order_status='OS30', {redelivery_company_code}<br /> - fid :<br /> if order_status='OS02', "OS02:" + {order_no}<br /> if order_status='OS30', "OS30:" + {order_no}<br /> - callback_url: {site.domain}/delivery/tracking_receive<br /> - callback_type: "json"<br /> - tier: {delivery.api.tracking.tier}<br /> - key: {delivery.api.key}<br /> - type: "json"<br /> 3) log<br /> a) if API call success<br /> - leave log: level(DEBUG), message: "[Scheduler] DeliveryTracking Request Success: num={num},fid={fid}"<br /> b) if API call fails<br /> - leave log: level(ERROR), message: "[Scheduler] DeliveryTracking Request Fail: num={num},fid={fid},e_code={e_code},e_message={e_message}"</p> <p><strong>[Callback] delivery tracking</strong></p> <p>1.API (refer to attach pdf > 3.5 운송장 추적정보 수신API(Callback_URL))<br /> 1) URL: POST {site.domain}/delivery/tracking_receive<br /> - permit all</p> <p>2.process<br /> 1) get fid / invoice_no / level parameter<br /> - parse fid and get order_status and order_no (ex: OS02:231108180642UHFS)<br /> - leave log: level(DEBUG), message: "[Scheduler] DeliveryTracking Callback Receive: fid={fid},invoice_no={invoice_no},level={level}"<br /> 2) select order<br /> DB: st_order<br /> conditions: order_no={order_no param} AND order_status={order_status param}<br /> 3) if no select data, break<br /> 4) update order status<br /> 4-1) if {order_status param} = 'OS02'<br /> a) if <strong>st_oder.delivery_invoice_no</strong> = {invoice_no param} and {level param} = 6<br /> - UPDATE st_order<br /> SET order_status='OS03' (배송완료), mod_date={current datetime}<br /> condition: order_no={order_no param}<br /> 4-2) 4) if {order_status param} = 'OS30'<br /> a) if <strong>st_oder.redelivery_invoice_no</strong> = {invoice_no param} and {level param} = 6<br /> - UPDATE st_order<br /> SET order_status='OS31' (교환완료), mod_date={current datetime}<br /> condition: order_no={order_no param}<br /> 4-3) leave log<br /> level(DEBUG), message: "[Scheduler] DeliveryTracking Callback Process: order_no={order_no},order_status={updated order_status}"</p> datetime}</p>