«

POST /api/M26/add_skus

  • Thêm sản phẩm vào giỏ hàng, không thể thêm sku với số lượng =0 hoặc lớn hơn số lượng tồn hiện tại vào giỏ
  • Giỏ hàng chỉ chứa tối đa 200 sku, nếu thêm sku vào giỏ hàng vượt quá 200 sku thì trả về lỗi
  • Giá của sku trong giỏ tính theo khoảng giá của số lượng sku đang có trong giỏ
  • Có thể thêm sản phẩm ở nhiều nguồn khác

  • Request Body: { "itemId ()": "string", "skus ()": [ { "skuId" : "string", "quantity" (*): 1 } ], "marketplace": "string", "productSellingType": "string" }

  • Tags: @AUTOMATED, @TNK-3954

    Khi thêm sản phẩm nếu không truyền vào marketplace thì được hiểu sản phẩm của sàn 1688

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      shop01product01sku0110
    • And Giỏ hàng của tài khoản "pamiuoi" chưa có sản phẩm nào của người bán "shop01"
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      <marketplace>
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ]
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
      "itemId": "${product01}",
      "marketPlace": "1688",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ],
      "marketPlace": "1688"
      }

    Examples:

    marketplace
    "marketplace": null,
  • Tags: @AUTOMATED, @TNK-3954

    Có thể thêm cùng lúc nhiều sku của 1 sản phẩm vào giỏ

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      merchant_01product01sku0110
      merchant_01product01sku0210
    • And Giỏ hàng của tài khoản "pamiuoi" chưa có sản phẩm nào của người bán "merchant_01"
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      },
      {
      "skuId": "${sku02}",
      "quantity": 2
      }
      ]
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      },
      {
      "skuId": "${sku02}",
      "quantity": 2
      }
      ]
      }
  • Tags: @AUTOMATED, @TNK-3954

    Cộng dồn số lượng sku khi thêm vào giỏ hàng sku đã thêm trước đó

    • And Giỏ hàng của tài khoản "pamiuoi" đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdskusIdquantityorder_quantitybatchSize
      merchant_01product01sku01skusId01111
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ]
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 2
      }
      ]
      }
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm vào giỏ nếu request không có token

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      shop01product01sku0110
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ]
      }
    • Then Trả về status code 401
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm vào giỏ nếu request có token hết hạn

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      shop01product01sku0110
    • And Có token hết hạn
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ]
      }
    • Then Trả về status code 401
  • Tags: @manual, @TNK-3954

    Không thể thêm sản phẩm vào giỏ với sản phẩm sàn 1688 hết hàng

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      productIdskuIdstockmarketPlace
      product01sku0101688
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity":1
      }
      ]
      }
    • Then Trả về status code 400
  • Tags: @AUTOMATED, @TNK-3954

    Thêm sản phẩm vào giỏ với số lượng sku vượt quá số lượng tồn kho, hệ thống lấy số lượng sku trong giỏ là tồn kho hiện tại

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      shop01product01sku01999
    • And Chuẩn bị số lượng sku sku01 sẽ cho vào giỏ là "999+1"
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": "${999+1}"
      }
      ]
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
      "skus": [
          {
              "skuId": "${sku01}",
              "inventory": "${999}"
          }
      ]
      }
  • Tags: @manual, @TNK-3954

    Giá của sku trong giỏ tính theo khoảng giá của số lượng sku đang có trong giỏ nếu sản phẩm có chính sách giá

    theo số lượng sku

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      productIdskuIdstock
      product01sku0110
      product01sku0250
    • And Sản phẩm "product01" có chính sách giá
      số lượng từ - đếnđơn giá
      2- 10¥30
      11 - 50¥28
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": <quantity>
      }
      ]
      }
    • Then Tôi nhận được response có HTTP Status 200
    • And Response có body thỏa mãn giá trị như sau
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1,
      "price" : <price>
      }
      ]
      }

    Examples:

    quantity price
    2 30
    9 30
    11 28
    50 28
  • Tags: @manual, @TNK-3954

    Giá của sku trong giỏ tính theo giá của sku đó nếu sản phẩm có chính sách giá theo giá của sku

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      productIdskuIdstock
      product01sku0110
      product01sku0250
    • And Sản phẩm "product01" có chính sách giá
      skuđơn giá
      sku01¥30
      sku02¥28.7
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      },
      {
      "skuId": "${sku02}",
      "quantity": 2
      }
      ]
      }
    • Then Tôi nhận được response có HTTP Status 200
    • And Response có body thỏa mãn giá trị như sau
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1,
      "price" : 30
      },
      {
      "skuId": "${sku02}",
      "quantity": 2,
      "price" : 28.7
      }
      ]
      }
  • Tags: @AUTOMATED, @TNK-3954

    Giỏ hàng chứa tối đa 200 sku

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      01product01sku0110
    • And Giỏ hàng của "pamiuoi" đã có 199 sku
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ]
      }
    • Then Tôi nhận được response có HTTP Status 200
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm vào giỏ nếu số lượng sku trong giỏ đang ở mức tối đa (200 sku)

    • Given Có token của tài khoản "pamiuoi"
    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • Then Hệ thống báo lỗi khi tài khoản "pamiuoi" thêm 201 sku vào giỏ hàng
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm vào giỏ nếu sku không thuộc sản phẩm

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      01product01sku0110
      01product02sku0250
    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku02}",
      "quantity": 1
      }
      ]
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
          {
            "type": "about:blank",
            "title": "sku_id_not_found",
            "status": 400,
            "detail": "skuId '${sku02}' was not existed",
            "instance": "/api/M26/add_skus"
          }
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm vào giỏ với sku =0

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      01product01sku0110
    • And Có token của tài khoản "pamiuoi"
    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 0
      }
      ]
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
          {
              "type": "about:blank",
              "title": "Constraint Violation",
              "status": 400,
              "detail": "problemDetail.org.springframework.web.bind.support.WebExchangeBindException",
              "instance": "/api/M26/add_skus",
              "violations": [
                  {
                      "field": "skus[0].quantity",
                      "message": "must be greater than or equal to 1"
                  }
              ]
          }
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm nếu request body không gửi đủ các trường bắt buộc hoặc không hợp lệ

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      01product01sku0110
    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
        {
        "itemId": <itemId>,
        "skus": [
        {
        "skuId": <skuId>,
        "quantity": <quantity>
        }
        ]
        }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
          {
            "type": "about:blank",
            "title": "Constraint Violation",
            "status": 400,
            "detail": "problemDetail.org.springframework.web.bind.support.WebExchangeBindException",
            "instance": "/api/M26/add_skus",
            "violations": [
                {
                   <violations>
                }
            ]
        }

    Examples:

    itemId skuId quantity violations
    "${product01}" "${sku01}" null "field": "skus[0].quantity","message": "must not be null"
    "${product01}" "${sku01}" -1 "field": "skus[0].quantity","message": "must be greater than or equal to 1"
    null "${sku01}" 1 "field": "itemId","message": "must not be blank"
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm vào giỏ nếu request body gửi skuId null với sản phẩm có sku

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      01product01sku0110
    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
        {
        "itemId": "${product01}",
        "skus": [
        {
        "skuId": null,
        "quantity": 1
        }
        ]
        }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
      {
      "type": "about:blank",
      "title": "sku_id_must_not_null",
      "status": 400,
      "detail": "skuId of itemId '${product01}' is not null",
      "instance": "/api/M26/add_skus"
       }
  • Tags: @AUTOMATED, @TNK-3954

    Không thể thêm sản phẩm vào giỏ nếu request body gửi thiếu skus

    • Given Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      01product01sku0110
    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": []
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
      {
      "type": "about:blank",
      "title": "Constraint Violation",
      "status": 400,
      "instance": "/api/M26/add_skus",
      "violations": [
          {
              "field": "skus",
              "message": "must not be empty"
          }
      ]
      }
  • Tags: @AUTOMATED, @TNK-3954

    Có thể thêm sản phẩm từ các sàn 1688, taobao, tmall vào giỏ hàng.

    • Given Đã có sản phẩm thuộc marketplace "<marketplace>" có thông tin
      merchantIdproductIdskuId
      01product01sku01
    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": "${product01}",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ],
      "marketplace": "<marketplace>"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
      "itemId": "${product01}",
      "marketPlace": "<marketplace>",
      "skus": [
      {
      "skuId": "${sku01}",
      "quantity": 1
      }
      ],
      "marketPlace": "<marketplace>"
      }

    Examples:

    marketplace
    taobao
    1688
    tmall
  • Tags: @AUTOMATED, @TNK-11877, @TNK-3954

    Không thể add sản phẩm không tồn tại trên sàn vào giỏ hàng

    • And Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/add_skus" với body
      {
      "itemId": 10000000000000,
      "skus": [
      {
      "skuId": 10000000000000,
      "quantity": 1
      }
      ],
      "marketplace": "<marketplace>"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
      "title": "item_id_not_found"
      }

    Examples:

    marketplace
    1688
    taobao
    tmall