«

POST /api/M26/orders/{code}/re-buy - Mua lại đơn hàng cũ

  • Header: x-tenant,
  • Path: code, // orderCode của M1
  • body {"force" (*): true }
    • Given Tài khoản "pamiuoi" đã có danh sách địa chỉ nhận hàng
      addressIdcountryprovincedistrictwarddefault
      VN_01Việt NamThành phố Hà NộiQuận Hà ĐôngPhường Yên Nghĩatrue
  • Tags: @AUTOMATED, @TNK-4540

    Trả status 401 khi gửi request mua lại đơn mà không có token

    • Given Tài khoản "pamiuoi" đã có đơn hàng với thông tin
      Mã đơnTrạng tháiDịch vụ
      DH_01Chờ thanh toándomestic_shipping
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 401
  • Tags: @AUTOMATED, @TNK-4540

    Trả status 401 khi gửi request mua lại đơn với token không hợp lệ

    • Given Tài khoản "pamiuoi" đã có đơn hàng với thông tin
      Mã đơnTrạng tháiDịch vụ
      DH_01Chờ thanh toándomestic_shipping
    • And Có token hết hạn
    • When Request có header là
      X-Tenantm26
    • And Gửi request "POST" đến "/M26/orders/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 401
  • Tags: @AUTOMATED, @TNK-4540

    Trả status 404 nếu mua lại sản phẩm của đơn 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/orderNotExist/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 404
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "order_not_found"
      }
  • Tags: @AUTOMATED, @TNK-4540

    Trả status 400 nếu gửi request không có header X-Tenant

    • Given Tài khoản "pamiuoi" đã có đơn hàng với thông tin
      Mã đơnTrạng tháiDịch vụ
      DH_01Chờ xử lýdomestic_shipping
    • And Có token của tài khoản "pamiuoi"
    • And Gửi request "POST" đến "/M26/orders/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • 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-4540

    Trả status 400 nếu gửi request với header X-Tenant không tồn tại

    • Given Tài khoản "pamiuoi" đã có đơn hàng với thông tin
      Mã đơnTrạng tháiDịch vụ
      DH_01Chờ xử lýdomestic_shipping
    • And Có token của tài khoản "pamiuoi"
    • When Request có header là
      X-Tenantlala
    • And Gửi request "POST" đến "/M26/orders/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 404
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "order_not_found"
      }
  • Tags: @manual, @TNK-4540

    Trả status 200 và mua lại đơn không thành công khi sản phẩm mua lại đã hết hàng

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Sàn đã có sản phẩm hết hàng có thông tin
      merchantIdproductIdskuIdstock
      merchant_01product_01skuId_010
    • And Tài khoản "pamiuoi" đã có đơn hàng với thông tin
      Mã đơnTrạng tháiMã đơn SBM
      DH_01<status>SBM_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/orders/${DH_01}/re-buy" với body
      {
         "force": <force>
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [],
        "failList": [
            {
                "itemId": "${product_01}",
                "skus": [
                    {
                        "skuId": "${skuId_01}",
                        "quantity": 1
                    }
                ],
                "marketplace": "1688",
                "error": "out_of_stock"
            }
        ]
      }
    • When Gửi request "GET" đến "/M26/cart/items?isOnly1688Marketplace=false"
    • Then Response có body thỏa mãn giá trị như sau
      []

    Examples:

    status force
    Chờ xử lý true
    Chờ giao hàng false
    Đang giao hàng true
    Đã nhận hàng false
    Huỷ bỏ true
  • Tags: @manual, @TNK-4540

    Nếu số tồn nhỏ hơn số lượng sản phẩm trong đơn hàng cũ, vẫn có thể mua lại đơn nếu truyền force = true, lúc này số

    lượng add giỏ bằng số lượng tồn của sản phẩm

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      merchant_01product_01skuId_014
    • 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_quantity
      merchant_01product_01skuId_01skusId33
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01<status>
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [
              {
                "itemId": "${product_01}",
                "skus": [
                    {
                        "skuId": "${skuId_01}",
                        "quantity": 1
                    }
                ],
                "marketplace": "1688"
            }
        ],
        "failList": []
      }
    • When Gửi request "GET" đến "/M26/cart/items?isOnly1688Marketplace=false"
    • Then Response có body thỏa mãn giá trị như sau
      []
  • Tags: @manual, @TNK-4540

    Nếu đơn hàng cũ có chứa sản phẩm có số tồn nhỏ hơn số lượng sản phẩm trong đơn, khi truyền force = false thì

    không mua lại đơn hàng

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Đã có sản phẩm thuộc marketplace "1688" có thông tin
      merchantIdproductIdskuIdstock
      merchant_01product_01skuId_014
    • 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_quantity
      merchant_01product_01skuId_01skusId33
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01<status>
    • 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/${DH_01}/re-buy" với body
      {
         "force": false
      }
    • Then Trả về status code 200
    • And Sản phẩm trong đơn "DH_01" không được thêm vào giỏ
  • Tags: @AUTOMATED, @TNK-4540, @TNK-9079

    Trả status 200 và mua lại sản phẩm của đơn thành công khi trên đơn có nhiều sku của cùng 1 sản phẩm

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Giỏ hàng của tài khoản "pamiuoi" đã có sản phẩm thuộc marketplace "<marketPlace>" có thông tin
      merchantIdproductIdskuIdskusIdquantityorder_quantitybatchSize
      merchant_01product_01skuId_01skusId_0110110
      merchant_01product_01skuId_02skusId_0220110
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01<status>
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [
          {
            "itemId": "${product_01}",
            "skus": [
              {
                "skuId": "${skuId_02}",
                "quantity": 20
              }
            ],
            "marketplace": "<marketPlace>",
            "affiliate": null
          },
          {
            "itemId": "${product_01}",
            "skus": [
              {
                "skuId": "${skuId_01}",
                "quantity": 10
              }
            ],
            "marketplace": "<marketPlace>",
            "affiliate": null
          }
        ],
        "failList": []
      }
    • And Sau khi mua lại đơn, giỏ hàng của tài khoản "pamiuoi" có "2" sku

    Examples:

    status marketPlace
    Chờ xử lý 1688
    Chờ giao hàng taobao
    Đang giao hàng tmall
    Đã nhận hàng 1688
    Huỷ bỏ taobao
    Đã hoàn tiền tmall
  • Tags: @AUTOMATED, @TNK-4540

    Trả status 200 và mua lại sản phẩm của đơn thành công khi trên đơn có nhiều sản phẩm của cùng 1 merchant

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Giỏ hàng của tài khoản "pamiuoi" đã có sản phẩm thuộc marketplace "<marketPlace>" có thông tin
      merchantIdproductIdskuIdskusIdquantityorder_quantitybatchSize
      merchant_01product_01skuId_01skusId_01111
      merchant_01product_02skuId_02skusId_02211
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01<status>
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [
          {
            "itemId": "${product_02}",
            "skus": [
              {
                "skuId": "${skuId_02}",
                "quantity": 2
              }
            ],
            "marketplace": "<marketPlace>",
            "affiliate": null
          },
          {
            "itemId": "${product_01}",
            "skus": [
              {
                "skuId": "${skuId_01}",
                "quantity": 1
              }
            ],
            "marketplace": "<marketPlace>",
            "affiliate": null
          }
        ],
        "failList": []
      }
    • And Sau khi mua lại đơn, giỏ hàng của tài khoản "pamiuoi" có "2" sku

    Examples:

    status marketPlace
    Chờ xử lý 1688
    Chờ giao hàng taobao
    Đang giao hàng tmall
    Đã nhận hàng 1688
    Huỷ bỏ 1688
    Đã hoàn tiền 1688
  • Tags: @AUTOMATED, @TNK-4540

    Nếu sản phẩm đủ tồn kho để add vào giỏ thì ngay cả khi truyền force = false thì vẫn có thể mua lại đơn hàng

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • 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_quantity
      merchant_01product_01skuId_01skusId_0111
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01Chờ xử lý
    • 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/${DH_01}/re-buy" với body
      {
         "force": false
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [
          {
            "itemId": "${product_01}",
            "skus": [
              {
                "skuId": "${skuId_01}",
                "quantity": 1
              }
            ],
            "marketplace": "1688",
            "affiliate": null
          }
        ],
        "failList": []
      }
  • Tags: @AUTOMATED, @TNK-4540

    Trả về 400 khi không gửi lên trường thông tin bắt buộc

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • 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_01product_01skuId_01skusId_0110110
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01Chờ xử lý
    • 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/${DH_01}/re-buy" với body
      <jsonBody>
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau# k chạy ổn định do gặp shop còn ít hơn số lượng sku còn hàng mong muốn
      { "title": "Bad Request"}

    Examples:

    jsonBody
    {"force": }
  • Tags: @manual, @TNK-4540

    Trả status 200 và mua lại sản phẩm không thành công, nếu trong giỏ đã có tối đa 200 sản phẩm

    • Given Tài khoản "pamiuoi" đã có đơn hàng với thông tin
      Mã đơnTrạng tháiMã đơn SBM
      DH_01Chờ xử lýSBM_01
    • And Thêm sản phẩm vào giỏ hàng của "pamiuoi" với thông tin
      shopskus_quantity
      merchant_0140
      merchant_0240
      merchant_0340
      merchant_0440
      merchant_0540
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [],
        "failList": [
          {
            "marketplace": "1688",
            "error": "too_manny_sku_in_cart"
          }
        ]
      }
    • And Sau khi mua lại đơn, giỏ hàng của tài khoản "pamiuoi" có "200" sku# k chạy ổn định do gặp shop còn ít hơn số lượng sku còn hàng mong muốn
  • Tags: @manual, @TNK-4540

    Trả status 200 và mua lại sản phẩm không thành công, nếu tổng số sản phẩm trong giỏ sau khi mua lại sẽ vượt quá 200 sku

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • 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_01product_01skuId_01skusId_0110110
      merchant_01product_02skuId_02skusId_0220110
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01Chờ xử lý
    • And Thêm sản phẩm vào giỏ hàng của "pamiuoi" với thông tin
      shopskus_quantity
      merchant_0250
      merchant_0350
      merchant_0450
      merchant_0549
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [],
        "failList": [
          {
            "marketplace": "1688",
            "error": "too_manny_sku_in_cart"
          }
        ]
      }
    • And Sau khi mua lại đơn, giỏ hàng của tài khoản "pamiuoi" có "199" sku
  • Mua lại thành công đơn hàng có 5 sản phẩm

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • 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_01product_01skuId_01skusId_01111
      merchant_01product_02skuId_02skusId_02211
      merchant_01product_03skuId_03skusId_03211
      merchant_01product_04skuId_04skusId_04111
      merchant_01product_05skuId_05skusId_05111
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01Chờ xử lý
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [
          {
            "itemId": "${product_02}",
            "skus": [
              {
                "skuId": "${skuId_02}",
                "quantity": 2
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_01}",
            "skus": [
              {
                "skuId": "${skuId_01}",
                "quantity": 1
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_03}",
            "skus": [
              {
                "skuId": "${skuId_03}",
                "quantity": 2
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_04}",
            "skus": [
              {
                "skuId": "${skuId_04}",
                "quantity": 1
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_05}",
            "skus": [
              {
                "skuId": "${skuId_05}",
                "quantity": 1
              }
            ],
            "marketplace": "1688"
          }
        ],
        "failList": []
      }
    • And Sau khi mua lại đơn, giỏ hàng của tài khoản "pamiuoi" có "5" sku
  • Mua lại thành công đơn hàng có nhiều hơn 5 sản phẩm

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • 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_01product_01skuId_01skusId_01111
      merchant_01product_02skuId_02skusId_02211
      merchant_01product_03skuId_03skusId_03211
      merchant_01product_04skuId_04skusId_04111
      merchant_01product_05skuId_05skusId_05111
      merchant_01product_06skuId_06skusId_06111
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01Chờ xử lý
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "successList": [
          {
            "itemId": "${product_02}",
            "skus": [
              {
                "skuId": "${skuId_02}",
                "quantity": 2
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_01}",
            "skus": [
              {
                "skuId": "${skuId_01}",
                "quantity": 1
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_03}",
            "skus": [
              {
                "skuId": "${skuId_03}",
                "quantity": 2
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_04}",
            "skus": [
              {
                "skuId": "${skuId_04}",
                "quantity": 1
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_05}",
            "skus": [
              {
                "skuId": "${skuId_05}",
                "quantity": 1
              }
            ],
            "marketplace": "1688"
          },
          {
            "itemId": "${product_06}",
            "skus": [
              {
                "skuId": "${skuId_06}",
                "quantity": 1
              }
            ],
            "marketplace": "1688"
          }
        ],
        "failList": []
      }
    • And Sau khi mua lại đơn, giỏ hàng của tài khoản "pamiuoi" có "6" sku
  • Mua lại thành công đơn hàng có 50 sku

    • Given Giỏ hàng "thường" của tài khoản "pamiuoi" đang trống
    • And Giỏ hàng của "pamiuoi" đã có 50 sku
    • And Từ sản phẩm trong giỏ, tài khoản "pamiuoi" đã tạo đơn hàng với thông tin
      Mã đơnTrạng thái
      DH_01Chờ xử lý
    • 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/${DH_01}/re-buy" với body
      {
         "force": true
      }
    • Then Trả về status code 200
    • And Sau khi mua lại đơn, giỏ hàng của tài khoản "pamiuoi" có "50" sku