# 大智通 gem ## 設計哲學 使用 [Shopify/active_shipping](https://github.com/Shopify/active_shipping) 這個 gem 做為主要設計介面 (但沒有切得很乾淨,微失敗 寫日翊 gem 時就有改進很多) 會有一個 Carrier, Location, Package,這些都已實做好,可以看 seven_worker.rb ``` carrier = Seven::Carrier.new( account_id: SevenWorker.seven_account(order.shop.name), default_account: SevenWorker.get_default_customer_id ) destination = Seven::Location.new( seven_store_id: order.store_id, seven_store_name: Seven::Carrier.get_store_name(order.store_id), phone: order.phone, buyer: order.customer_name, receiver: order.customer_name, email: order.email) package = Seven::Package.new(shop_name: order.shop.name, shop_order_number: order.shipment_order_name, is_cod: order.is_cod?, total_price: order.total_price) # 建立訂單,carrier 有一個 create_shipment 的介面(function) 可以呼叫 carrier.create_shipment(nil, destination, package) ``` ## Schema - Seven::Account 欄位 - seven_parent_id 母客代,都是 829 - seven_shop_id 子客代,各個企業版客戶會申請自己的子客代(CSD 會申請) - Seven::TrackingNumber 託運單 大智通的託運單要事先申請,拿單號區間 ## 大智通 B2C 串接文件重點說明 ## 貨態追踨 ## 簡訊寄送 - 接到錯誤訊息 ```單號 59978862異常內容: RuntimeError: CODE: -25, DESCRIPTION: 寫入發送紀錄檔發生錯誤``` 先檢查有沒有成功寄出 `tracking_number = Seven::TrackingNumber.where(tracking_number: '82959978862').last` 可以看到顧客電話 到 Every8d 後台查看 https://tw.every8d.com/every8d30/report/SearchMemberSend.aspx 帳密到 server ~/wms/shared/config/secrets.yml 的 `every8d_user_id` `every8d_password` ![](https://i.imgur.com/ZCiB3Bq.png) 這樣就可以看看是否真的有寄送成功。 ## 對帳 對帳會有一個 .acc 檔,目前大智通在每月10號和25號會發出 acc 檔,會存在 data/seven_ftp_files/MAIN/ACC/829EEE_201811US03.acc SevenCheckAccountWorker.new.perform