Carrier Service

Related Articles

Carrier Service cho phép tính phí luân chuyển cho đơn hàng dựa vào thông tin giỏ hàng, địa chỉ giao hàng lúc người mua đặt hàng thay vì phí cố định và thắt chặt dựa vào khu vực luân chuyển được thông số kỹ thuật như hiện tại. Carrier Service hoàn toàn có thể được tạo trải qua apps của bên thứ 3 hoặc private apps. Sau khi một Carrier Service được cài, nó sẽ phân phối một list những phí ship ( shipping rates ) hoàn toàn có thể ở trang checkout. Các shipping rates này hoàn toàn có thể được kiểm soát và điều chỉnh dựa vào thông tin giỏ hàng, chủ shop dựa vào đó để tối ưu phí luân chuyển. Điều này hoàn toàn có thể mang lại quyền lợi về phí luân chuyển cho cả người mua và người bán .

Cấp phát quyền truy cập Carrier Service

Carrier Service thuộc nhóm order nên cần quyền ( permission ) read_orders, write_orders .

Xem thông tin về cấp phép quyền tại đây .

Xây dựng dịch vụ cung cấp các shipping rates cho Carrier Service

Để cài đặt được 1 Carrier Service bạn phải cung cấp 1 địa chỉ POST (public POST endpoint) thông qua callback_url để Sapo Web có thể lấy các phí ship (shipping rates) khi người dùng thanh toán. Địa chỉ này sẽ nhận các request từ Sapo Web.

Ví dụ một request lấy những shipping rates từ Sapo Web :

POST 
{
  "rate": {
    "origin": {
      "country": "Việt Nam",
      "country_code": "VN",
      "province": "Hà Nội",
      "province_code": "04",
      "district": "",
      "district_code": "",
      "ward": "",
      "ward_code": null,
      "name": "Cửa hàng tiện lợi",
      "address1": "434 Nguyễn Chí Thanh",
      "address2": "",
      "phone": null,
      "email": null
    },
    "destination": {
      "country": "Việt Nam",
      "country_code": "VN",
      "province": "Hà Nội",
      "province_code": "04",
      "district": "Ba Đình",
      "district_code": "494",
      "ward": null,
      "ward_code": null,
      "name": null,
      "address1": "43 Nguyễn Chí Thanh",
      "address2": null,
      "phone": null,
      "email": null
    },
    "items": [
      {
        "name": "Nước tăng lực",
        "sku": null,
        "quantity": 2,
        "grams": 300,
        "price": 1000000,
        "vendor": null,
        "requires_shipping": true,
        "product_id": 1122429712,
        "variant_id": 3424219217
      }
    ],
    "currency": "VND"
  }
}

Xem hiệu quả

HTTP/1.1 200 Ok
{
  "rates": [
    {
      "service_name": "Giao hàng trong 2h",
      "service_code": "GH2H",
      "total_price": 1000000,
      "description": "",
      "currency": "VND"
    },
    {
      "service_name": "Giao hàng tiêu chuẩn",
      "service_code": "GHTC",
      "total_price": 500000,
      "description": "",
      "currency": "VND"
    }
  ]
}

tin tức trả về :

Khi Sapo Web request shipping rates theo callback_url của bạn, trường rates trả về phải là một mảng những object với thông tin như sau. Các trường ghi lại required phải được trả về thì mới được tính là hợp lệ

service_name

( required )
Tên của shipping rate, người mua hoàn toàn có thể nhìn thấy ở trang checkout .

Ví dụ : Giao hàng trong 2 h
service_code

( required )
Mã code để phân biệt giữa các shipping rates. Ví dụ: GH2H
description Mô tả cho shipping rate hiện tại
total_price

( required )
Tổng phí luân chuyển của đơn hàng

( kiểu integer được nhân 100 cho việc giải quyết và xử lý phần thập phân. Tương tự cho trường price trong request )

currency

( required )

Đơn vị tiền tệ của phí trả về ( Phải cùng đơn vị chức năng tiền tệ với request )

    Caching phía server

    Sapo Web sử dụng 1 tầng cache. Các thông tin sau sẽ được sử dụng cho việc cache :

    • product_id, variant_id
    • khối lượng item (grams), số lượng item (quantity)
    • carrier service_id
    • địa chỉ đầu, địa chỉ đích

    Nếu một trong những thông tin trên biến hóa, request shipping rates mới sẽ được gọi sang đối tác chiến lược. tin tức cache sẽ được expire sau 15 phút so với request success hoặc 30 s so với failure request

    Bạn có thể làm gì với Carrier Service?

    API Carrier Service được cho phép bạn triển khai như sau :

    Các thuộc tính của Carrier Service

    id
    Số duy nhất định danh cho Carrier Service .
    name
    Tên Carrier Service ( Tên này sẽ Open trong thông số kỹ thuật trang admin của chủ shop )
    callback_url
    Đường dẫn Sapo Web cần để lấy những phí ship từ đối tác chiến lược
    active
    Trạng thái bật tắt Carrier Service
    type
    legacy hoặc api ( mặc định là api )
    service_discovery
    Trạng thái xác lập chủ shop hoàn toàn có thể nhìn thấy những shipping rates trong thông số kỹ thuật trang admin. Các shipping rates này có được bằng việc gửi 1 request xác lập ( dummy request ) tới callback_url trong trang thông số kỹ thuật admin của chủ shop

    Endpoints

    POST/admin/carrier_services.json

    Tạo một Carrier Service

    POST /admin/carrier_services.json
    { "carrier_service": { "name": "Demo Shipping App", "callback_url": "http://shippingrateprovider_url.com", "service_discovery": true }
    }

    Xem kết quả

    HTTP/1.1 201 Created
    { "carrier_service": { "id": 214144414, "name": "Demo Shipping App", "active": true, "type": "api", "service_discovery": true, "callback_url": "http://shippingrateprovider_url.com" }
    }

    GET/admin/carrier_services.json

    Lấy danh sách tất cả Carrier Service

    GET /admin/carrier_services.json

    Xem kết quả

    HTTP/1.1 200 Ok
    { "carrier_services": [ { "id": 214144414, "name": "Demo Shipping App", "active": true, "type": "api", "service_discovery": false, "callback_url": "http://shippingrateprovider_url.com" } ]
    }

    GET/admin/carrier_services/#{id}.json

    Lấy thông tin một Carrier Service

    GET /admin/carrier_services/214144414.json

    Xem kết quả

    HTTP/1.1 200 Ok
    { "carrier_service": { "id": 214144414, "name": "Demo Shipping App", "active": true, "type": "api", "service_discovery": false, "callback_url": "http://shippingrateprovider_url.com" }
    }

    DELETE/admin/carrier_services/#{id}.json

    Xoá một Carrier Service

    DELETE /admin/carrier_services/214144414.json

    Xem kết quả

    HTTP/1.1 204 No Content

    More on this topic

    Comments

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here

    Advertismentspot_img

    Popular stories