«

POST api/M26/orders/shipping-fee - Ước lượng phí vận chuyển Lastmile (VCLM) ở Việt Nam trong chi tiết sản phẩm

  • Body request: { "skus": // notNull, notEmpty [ { "price": 0, "quantity"*: 0, "weight": 0, "volumetric": 0 } ], "categoryId": "string", // notNull "totalValue": 0, // notNull "addressId": "string", "location": "string" }
  • Hệ thống so sánh weight và V/hệ số quy đổi (ở scope này lấy hệ số quy đổi là 5000), số to hơn sẽ được dùng làm cân nặng tính phí
  • Tổng cân nặng tính phí = số lượng sản phẩm * cân nặng tính phí ước lượng của 1 sản phẩm
  • API phục vụ cho cả việc ko đăng nhập (không gửi token) và đăng nhập (gửi token)
  • Nếu không đăng nhập, hệ thống ước lượng phí VCLM VN theo khu vực mặc định của dịch vụ
  • Nếu đăng nhập:
  • Trường hợp chưa có địa chỉ giao hàng, hoặc có địa chỉ giao hàng, nhưng không có địa chỉ VN, thi hệ thống ước lượng phí VCLM VN theo khu vực mặc định của dịch vụ
  • Trường hợp có địa chỉ VN, hệ thống ước lượng phí VCLM VN theo địa chỉ VN, addressId requried
    • Given Hệ thống tồn tại bộ cấu hình phí VCLM "Cấu hình phí VCLM" đang được áp dụng với thông tin
      Khu vựcCân nặng (kg)Đơn giá (CNY)Phí niêm yết (Ngoài khoảng niêm yết sẽ tính phí theo mốc)
      Quận Hoàn Kiếm, Thành phố Hà Nội, Việt NamTừ 0 - 33.75
      Quận Hoàn Kiếm, Thành phố Hà Nội, Việt NamTrên 3 - 54.65
      Quận Hoàn Kiếm, Thành phố Hà Nội, Việt NamTrên 5 - 106.35
      Quận Hoàn Kiếm, Thành phố Hà Nội, Việt NamTrên 10 - 1511.3
      Quận Hoàn Kiếm, Thành phố Hà Nội, Việt NamTrên 15 - 2013.9
      Quận Hoàn Kiếm, Thành phố Hà Nội, Việt NamTrên 20 - 2516.2
      Quận Hoàn Kiếm, Thành phố Hà Nội, Việt NamTrên 25 - 999999990.35
      Phường Yên Nghĩa, Quận Hà Đông, Thành phố Hà Nội, Việt NamTừ 0 - 33.75
      Phường Yên Nghĩa, Quận Hà Đông, Thành phố Hà Nội, Việt NamTrên 3 - 54.65
      Phường Yên Nghĩa, Quận Hà Đông, Thành phố Hà Nội, Việt NamTrên 5 - 106.35
      Phường Yên Nghĩa, Quận Hà Đông, Thành phố Hà Nội, Việt NamTrên 10 - 1511.3
      Phường Yên Nghĩa, Quận Hà Đông, Thành phố Hà Nội, Việt NamTrên 15 - 2013.9
      Phường Yên Nghĩa, Quận Hà Đông, Thành phố Hà Nội, Việt NamTrên 20 - 2516.2
      Phường Yên Nghĩa, Quận Hà Đông, Thành phố Hà Nội, Việt NamTrên 25 - 999999990.35
      Quận 1, Thành phố HCM, Việt NamTừ 0 - 33.75
      Quận 1, Thành phố HCM, Việt NamTrên 3 - 54.65
      Quận 1, Thành phố HCM, Việt NamTrên 5 - 106.35
      Quận 1, Thành phố HCM, Việt NamTrên 10 - 1511.3
      Quận 1, Thành phố HCM, Việt NamTrên 15 - 2013.9
      Quận 1, Thành phố HCM, Việt NamTrên 20 - 2516.2
      Quận 1, Thành phố HCM, Việt NamTrên 25 - 999999990.35
    • And Dịch vụ đang quy định hệ số quy đổi cân nặng từ thể tích là "5000"
    • And Tài khoản "pamiuoi" đã có danh sách địa chỉ nhận hàng
      addressIdcountryprovincecitydistrictwarddefault
      VN_01Việt NamThành phố Hà NộiQuận Hà ĐôngPhường Yên Nghĩatrue
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 401 khi token hết hạn

    • Given Token đã hết hạn
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 401
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 400 khi không gửi lên header X-Tenant

    • Given Có token của tài khoản "pamiuoi"
    • When Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "Bad Request",
        "detail": "Required header 'X-Tenant' is not present."
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 404 khi gửi lên header X-Tenant không hợp lệ

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenanttetete
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 404
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "not_found_connection_config"
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả 400 khi gửi skus rỗng

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [],
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "Constraint Violation"
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả 400 khi không gửi lên skus

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "Constraint Violation",
        "instance": "/api/M26/orders/shipping-fee",
        "violations": [
          {
            "field": "skus",
            "message": "must not be empty"
          }
        ]
      }
  • Tags: @AUTOMATED, @TNK-13029, @TNK-5427

    Trả status 400 khi gửi request với các thông tin: price, quantity null

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 1,
              "volumetric": null,
              "price": <price>,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "type": "about:blank",
        "title": "Constraint Violation"
      }

    Examples:

    price quantity
    null 1
    10 null
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 400 khi gửi request với các thông tin: skus, categoryId, totalValue null

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstockcategoryId
      merchant_01product01sku01101900
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": <skus>,
        "categoryId": <categoryId>,
        "totalValue": <totalValue>,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "Constraint Violation"
      }

    Examples:

    categoryId totalValue skus
    null 10 [{"weight": 1, "volumetric": null, "price": 10, "quantity": 1 }]
    "${1900}" null [{"weight": 1, "volumetric": null, "price": 10, "quantity": 1 }]
    "${1900}" 10 null
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 400 khi body không gửi lên price

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 1,
              "volumetric": null,
              "quantity": 1
            }
        ],
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "type": "about:blank",
        "title": "Constraint Violation"
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 400 khi body không gửi lên quantity

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
      "skus": [
          {
              "weight": 1,
              "volumetric": null,
              "price": 10
          }
      ],
      "totalValue": 10,
      "location": null,
      "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "type": "about:blank",
        "title": "Constraint Violation"
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả status code 400 khi gửi dữ liệu không hợp lệ

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": <weight>,
              "volumetric": <volumetric>,
              "price": <price>,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": <totalValue>,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "<message>"
      }

    Examples:

    weight volumetric price quantity totalValue message
    abc 100 5 1 5 Bad Request
    1 abc 5 1 5 Bad Request
    1 100 abc 1 5 Bad Request
    1 100 -0.5 1 5 Constraint Violation
    1 100 5 abc 5 Bad Request
    1 100 5 -1 5 Constraint Violation
    1 100 5 1 abc Bad Request
    -1 5 1 5 Bad Request
    1 -100 5 1 5 Volumetric_invalid
    1 100 5 1 -5 total_value_invalid

    Tags: @TNK-13695

    Examples:

    weight volumetric price quantity totalValue message
    1 100 -0.5 1 5 Constraint Violation
    1 100 5 -1 5 Constraint Violation
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 200 khi gửi lên categoryId không tồn tại. Khi đó hệ thống sẽ lấy categoryId mặc định là N2

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstockcategoryId
      merchant_01product01sku01101900
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "no_exist",
        "totalValue": 10,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": 3.75
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request không có token, trả 400 khi gửi lên location không tồn tại

    • Given Dịch vụ có thông tin địa chỉ mặc định là
      location codedetailwarddistrictprovincecountry
      D_0175 Đinh Tiên HoàngPhường Tràng TiềnQuận Hoàn KiếmThành phố Hà NộiViệt Nam
      D_02Số 1 Bùi ViệnPhường Phạm Ngũ LãoQuận 1Thành phố Hồ Chí MinhViệt Nam
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": "0009876758450000",
        "addressId": null
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "location_invalid"
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request không có token, trả 400 khi gửi lên location khác với location mặc định của dịch vụ

    • Given Có thông tin location
      location codewarddistrictprovincecountry
      L_02Phường 01Quận 10Thành phố Hồ Chí MinhViệt Nam
    • And Dịch vụ có thông tin địa chỉ mặc định là
      location codedetailwarddistrictprovincecountry
      D_0175 Đinh Tiên HoàngPhường Tràng TiềnQuận Hoàn KiếmThành phố Hà NộiViệt Nam
      D_02Số 1 Bùi ViệnPhường Phạm Ngũ LãoQuận 1Thành phố Hồ Chí MinhViệt Nam
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": "${L_02}",
        "addressId": null
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "location_invalid"
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request có token, trả status 400 khi không gửi lên addressId

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "address_id_not_empty"
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request có token, trả status 400 khi gửi lên addressId null

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": null
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "address_id_not_empty"
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request có token, trả status 404 khi gửi lên addressId không tồn tại

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "00003243243"
      }
    • Then Trả về status code 404
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "address_not_found"
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request có token, trả status 400 khi gửi lên location không tồn tại

    • Given Tài khoản "pamiuoi" đã có danh sách địa chỉ nhận hàng
      addressIdcountryprovincecitydistrictwarddefault
      VN_01Việt NamThành phố Hà NộiQuận Hà ĐôngPhường Yên Nghĩatrue
    • And Dịch vụ có thông tin địa chỉ mặc định là
      location codedetailwarddistrictprovincecountry
      D_0175 Đinh Tiên HoàngPhường Tràng TiềnQuận Hoàn KiếmThành phố Hà NộiViệt Nam
      D_02Số 1 Bùi ViệnPhường Phạm Ngũ LãoQuận 1Thành phố Hồ Chí MinhViệt Nam
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": "000900909",
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "location_invalid"
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request không có token, trả 200 khi gửi lên addressId không tồn tại và location đúng

    • Given Dịch vụ có thông tin địa chỉ mặc định là
      location codedetailwarddistrictprovincecountry
      D_0175 Đinh Tiên HoàngPhường Tràng TiềnQuận Hoàn KiếmThành phố Hà NộiViệt Nam
      D_02Số 1 Bùi ViệnPhường Phạm Ngũ LãoQuận 1Thành phố Hồ Chí MinhViệt Nam
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": "${D_01}",
        "addressId": "00007789789000"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": 3.75
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp request có token, trả status 400 khi gửi lên addressId là địa chỉ TQ

    • Given Tài khoản "pamiuoi" đã có danh sách địa chỉ nhận hàng
      addressIdcountryprovincecitydistrictwarddefault
      TQ_01中国大陆广东省广州市白云区嘉禾街道false
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${TQ_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "address_not_viet_nam"
      }
  • Tags: @AUTOMATED, @TNK-5427, @TNK-5880

    Trả status 200 khi gửi request ước lượng phí mà không có token.

    Trong trường hợp không có token, body có thể không gửi thông tin location và addressId. Hệ thống mặc định ước lượng phí theo khu vực mặc định của dịch vụ.

    • Given Dịch vụ có thông tin địa chỉ mặc định là
      location codedetailwarddistrictprovincecountry
      D_0175 Đinh Tiên HoàngPhường Tràng TiềnQuận Hoàn KiếmThành phố Hà NộiViệt Nam
      D_02Số 1 Bùi ViệnPhường Phạm Ngũ LãoQuận 1Thành phố Hồ Chí MinhViệt Nam
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": 3.75
      }
  • Tags: @AUTOMATED, @TNK-5427, @TNK-5880

    Trong trường hợp gửi request không có token, trả status 200 nếu gửi lên location và addressId null.

    Hệ thống mặc định ước lượng phí theo khu vực Quận Hoàn Kiếm, thành phố Hà Nội.

    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": 0.4,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": null
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": 3.75
      }
  • Tags: @AUTOMATED, @TNK-5880

    Trong trường hợp gửi request không có token, hệ thống ước tính phí VCLM VN theo khu vực mặc định của dịch vụ

    • Given Dịch vụ có thông tin địa chỉ mặc định là
      location codedetailwarddistrictprovincecountry
      D_0175 Đinh Tiên HoàngPhường Tràng TiềnQuận Hoàn KiếmThành phố Hà NộiViệt Nam
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": <weight>,
              "volumetric": <volumetric>,
              "price": 10,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": "${D_01}",
        "addressId": null
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": <vietnamDomesticShippingFee>
      }

    Examples:

    weight volumetric quantity vietnamDomesticShippingFee
    1 null 1 3.75
    3.01 1000 25 34.05
    null 10000 2 3.75
  • Tags: @AUTOMATED, @TNK-5880

    Khi request có token, ước lượng phí VCLM VN theo đúng addressId mặc dù có gửi location gửi lên khu vực tính phí mặc định của dịch vụ

    • Given Dịch vụ có thông tin địa chỉ mặc định là
      location codedetailwarddistrictprovincecountry
      D_0175 Đinh Tiên HoàngPhường Tràng TiềnQuận Hoàn KiếmThành phố Hà NộiViệt Nam
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": <weight>,
              "volumetric": <volumetric>,
              "price": 10,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": "${D_01}",
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": <vietnamDomesticShippingFee>
      }

    Examples:

    weight volumetric quantity vietnamDomesticShippingFee
    1 null 1 3.75
    3.01 1000 25 34.05
    null 10000 2 3.75
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 200 và ước lượng được phí VCLM khi body không gửi lên categoryId

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
      "skus": [
          {
              "weight": 1,
              "volumetric": null,
              "price": 10,
              "quantity": 1
          }
      ],
      "categoryId": "N2",
      "totalValue": 10,
      "location": null,
      "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": 3.75
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 400 khi body không gửi lên totalValue

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstockcategoryId
      merchant_01product01sku01101900
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
      "skus": [
          {
              "weight": 1,
              "volumetric": null,
              "price": 10,
              "quantity": 1
          }
      ],
      "categoryId": "${1900}",
      "location": null,
      "addressId": "${VN_01}"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "Constraint Violation"
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả status code 200 và không ước lượng được phí VCLM khi gửi lên thông tin volumetric và weight null

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": null,
              "volumetric": null,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": null
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả status code 200 và không ước lượng được phí VCLM khi body không gửi lên thông tin volumetric và weight

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": null
      }
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 200 và ước lượng phí VCLM theo weight khi gửi lên volumetric null.

    Tổng cân nặng dùng để tính phí = weight * quantity.

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": <weight>,
              "volumetric": null,
              "price": 10,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": <vietnamDomesticShippingFee>
      }

    Examples:

    weight quantity vietnamDomesticShippingFee
    0.01 1 3.75
    0.4 2 3.75
    3.5 1 4.65
    3.5 3 11.3
    6 1 6.35
    12 2 16.2
    17 1 13.9
    22 1 16.2
    25.02 1 16.55
    26 1 16.55
    26 2 25.65
    29 1 17.6
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 200 và ước lượng phí VCLM theo weight khi gửi lên cả weight và volumetric,

    trong đó cân nặng quy đổi theo volumetric nhỏ hơn weight, khi đó cân nặng dùng để tính phí = weight * quantity.

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": <weight>,
              "volumetric": <volumetric>,
              "price": 10,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": <vietnamDomesticShippingFee>
      }

    Examples:

    weight quantity volumetric vietnamDomesticShippingFee
    0.1 2 100 3.75
    3.2 1 6000 4.65
    3.2 2 6000 6.35
    6 1 25000 6.35
    6 3 25000 13.9
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 200 và ước lượng phí VCLM theo volumetric (V) khi gửi lên weight null.

    Tổng cân nặng dùng để tính phí = V/5000, không phụ thuộc quantity.

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": null,
              "volumetric": <volumetric>,
              "price": 10,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": <vietnamDomesticShippingFee>
      }

    Examples:

    volumetric quantity vietnamDomesticShippingFee
    50 1 3.75
    50 2 3.75
    2000 2 3.75
    17500 1 4.65
    17500 2 4.65
    17500 3 4.65
    30000 1 6.35
    6000 1 3.75
    85000 1 13.9
    110000 1 16.2
    125100 1 16.55
    130000 1 16.55
    130000 2 16.55
    145000 1 17.6
  • Tags: @AUTOMATED, @TNK-5427

    Trả status 200 và ước lượng phí VCLM theo volumetric khi gửi lên cả weight và volumetric,

    trong đó cân nặng quy đổi theo volumetric lớn hơn weight

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": <weight>,
              "volumetric": <volumetric>,
              "price": 10,
              "quantity": <quantity>
            }
        ],
        "categoryId": "N2",
        "totalValue": 10,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": <vietnamDomesticShippingFee>
      }

    Examples:

    weight volumetric quantity vietnamDomesticShippingFee
    0.1 1000 1 3.75
    0.1 50000 10 6.35
    3 100000 5 13.9
    6 31500 1 6.35
  • Tags: @AUTOMATED, @TNK-5427

    Trường hợp body gửi lên nhiều skus, thì phí VCLM ước tính được tính theo tổng cân nặng tính phí của tất cả các skus

    • Given Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/shipping-fee" với body
      {
        "skus": [
            {
              "weight": <weight_01>,
              "volumetric": <volumetric_01>,
              "price": 10,
              "quantity": 2
            },
            {
              "weight": <weight_02>,
              "price": 10,
              "quantity": 1
            }
        ],
        "categoryId": "N2",
        "totalValue": 30,
        "location": null,
        "addressId": "${VN_01}"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "vietnamDomesticShippingFee": <vietnamDomesticShippingFee>
      }

    Examples:

    weight_01 volumetric_01 weight_02 vietnamDomesticShippingFee
    0.1 null 1 3.75
    0.1 null 100 42.8
    3 null 10 13.9
    6 null 1 11.3
    0.1 1000 1 3.75
    0.1 1000 100 42.8
    3 16000 10 13.9
    6 31500 1 11.3