TI-API: 订单API下单失败,tiPartNumber 包含特殊字符 "/" 的物料,API响应422

Hi ti team,

我已经参考下单API的格式进行发送,但是API还是响应422。

url: /v2/store/orders/test

举例:tiPartNumber  为  LM6132AIM/NOPB

请求:

{
"order": {
"checkoutProfileId": "xxxx",
"customerPurchaseOrderNumber": "xxxx",
"endCustomerCompanyName": "xxxx",
"expediteShipping": false,
"customerOrderComments": [
{
"message": "LM6132AIM/NOPB"
}
],
"lineItems": [
{
"customerLineItemNumber": 0,
"tiPartNumber": "LM6132AIM/NOPB",
"customerPartNumber": "1000140",
"customReelIndicator": false,
"quantity": 50,
"customerItemComments": [
{
"message": "LM6132AIM/NOPB"
}
]
}
]
}
}

响应:

{
        "message": "Request failed with status code 422",
        "name": "Error",
        "stack": "Error: Request failed with status code 422\n    at createError (webpack:///./node_modules/axios/lib/core/createError.js?:16:15)\n    at settle (webpack:///./node_modules/axios/lib/core/settle.js?:17:12)\n    at IncomingMessage.handleStreamEnd (webpack:///./node_modules/axios/lib/adapters/http.js?:293:11)\n    at IncomingMessage.emit (events.js:327:22)\n    at endReadableNT (internal/streams/readable.js:1327:12)\n    at processTicksAndRejections (internal/process/task_queues.js:80:21)",
        "config": {
            "transitional": {
                "silentJSONParsing": true,
                "forcedJSONParsing": true,
                "clarifyTimeoutError": false
            },
            "transformRequest": [
                null
            ],
            "transformResponse": [
                null
            ],
            "timeout": 30000,
            "xsrfCookieName": "XSRF-TOKEN",
            "xsrfHeaderName": "X-XSRF-TOKEN",
            "maxContentLength": -1,
            "maxBodyLength": -1,
            "headers": {
                "Accept": "application/json, text/plain, */*",
                "Content-Type": "application/json",
                "Authorization": "Bearer rZo89IsZSOVInznadltwg7ObQHuC",
                "User-Agent": "axios/0.24.0",
                "Content-Length": 458
            },
            "baseURL": "">https://transact.ti.com",
            "method": "post",
            "url": "/v2/store/orders/test",
            "data": "{\"order\":{\"checkoutProfileId\":\"xxxx\",\"customerPurchaseOrderNumber\":\"xxxx\",\"endCustomerCompanyName\":\"xxxx\",\"expediteShipping\":false,\"customerOrderComments\":[{\"message\":\"LM6132AIM/NOPB\"}],\"lineItems\":[{\"customerLineItemNumber\":0,\"tiPartNumber\":\"LM6132AIM/NOPB\",\"customerPartNumber\":\"1000140\",\"customReelIndicator\":false,\"quantity\":50,\"customerItemComments\":[{\"message\":\"LM6132AIM/NOPB\"}]}]}}"
        },
        "status": 422
    }
同时,此前 API 下单测试物料  LM6132AIMX/NOPB 也是失败,但今天可以了。
  • Hi Yun,

    看到您代码中 

    "customerLineItemNumber":0

    此处最小值应为1.

    请尝试修改后再次发送。

  • Hi,

    customerLineItemNumber 已修改,部分带 / 符号的物料还是会出现下单失败的问题,结果如下:

    物料:LM6132AIMX/NOPB

    请求:

    {
    "order": {
    "checkoutProfileId": "xxxx",
    "customerPurchaseOrderNumber": "xxxx",
    "endCustomerCompanyName": "xxxx",
    "expediteShipping": false,
    "customerOrderComments": [
    {
    "message": "LM6132AIMX/NOPB"
    }
    ],
    "lineItems": [
    {
    "customerLineItemNumber": 0,
    "tiPartNumber": "LM6132AIMX/NOPB",
    "customerPartNumber": "1000140",
    "customReelIndicator": false,
    "quantity": 50,
    "customerItemComments": [
    {
    "message": "LM6132AIMX/NOPB"
    }
    ]
    }
    ]
    }
    }

    结果:状态码 200

    {
        "orderNumber": "T03302777",
        "cartID": "C329481442",
        "orderDate": "2022-09-20T01:51:40Z",
        "isProductionOrder": false,
        "orderInfo": {
            "orderNumber": "T03302777",
            "cartID": "C329481442",
            "checkoutProfileId": "xxxxx",
            "currencyCode": "CNY",
            "orderDate": "2022-09-20T01:51:40Z",
            "orderEntry": "API",
            "customerPurchaseOrderNumber": "xxxx",
            "orderStatus": "PROCESSING",
            "orderedBy": "Yun Lin",
            "endCustomerCompanyName": "xxxx",
            "application": "Factory automation & control",
            "endEquipment": "Single board computer",
            "intendedForMilitary": "No",
            "isProductionOrder": false,
            "totalOrderSummary": {
                "subTotal": 1206,
                "estimatedDiscountAmount": 0,
                "estimatedShippingCost": 80,
                "estimatedTaxes": 167.18,
                "orderTotal": 1453.18
            },
            "discounts": null,
            "lineItems": [
                {
                    "tiLineItemNumber": "0",
                    "customerLineItemNumber": "1",
                    "tiPartNumber": "LM6132AIMX/NOPB",
                    "customerPartNumber": "1000140",
                    "tiPartDescription": "Dual, 24-V, 10-MHz, low-power operational amplifier",
                    "partType": "IC",
                    "htsCode": "",
                    "coCode": "",
                    "quantity": 50,
                    "shippedQuantity": 0,
                    "unitPrice": 24.12,
                    "netPrice": 1206,
                    "dateCode": null,
                    "batchCode": null,
                    "status": "PROCESSING",
                    "fees": null,
                    "discounts": null,
                    "packageInformation": {
                        "carrier": "LARGE T&R",
                        "delivery": [
                            {
                                "type": "Cut tape",
                                "quantity": 50
                            }
                        ]
                    },
                    "waiverAvailable": "false",
                    "trackingAndShipping": [
                        {
                            "shippingFreightAccount": "TI",
                            "trackingNumbers": [
                                {
                                    "shippingFromCountryCode": "Singapore",
                                    "serviceLevel": "International economy",
                                    "shipDate": null,
                                    "masterTracking": null,
                                    "leg1Carrier": null,
                                    "leg1Tracking": null,
                                    "leg1TrackingURL": null,
                                    "leg2Carrier": null,
                                    "leg2Tracking": null,
                                    "leg2TrackingURL": null
                                }
                            ],
                            "invoices": [],
                            "creditMemo": null
                        }
                    ],
                    "customerItemComments": null,
                    "notifications": []
                }
            ],
            "shippingAddress": {
             ...},
            "billingAddress": {
             ...},
            "payment": {
                "type": "apruve",
                "method": "apruve",
                "bankTranferApproverEmail": null
            },
            "taxInfo": {
                "taxExemption": false
            },
            "vatDetails": [
                {
                    "type": "SPECIALPAPERINVOICE",
                    "details": [
                        ...
                    ]
                }
            ],
            "orderComments": [
                {
                    "message": "LM6132AIMX/NOPB"
                }
            ],
            "notifications": []
        },
        "message": "订单: T03302777 创建成功"
    }
    物料:LM6132AIM/NOPB

    请求:

    {
    "order": {
    "checkoutProfileId": "xxxx",
    "customerPurchaseOrderNumber": "xxxx",
    "endCustomerCompanyName": "xxxx",
    "expediteShipping": false,
    "customerOrderComments": [
    {
    "message": "LM6132AIM/NOPB"
    }
    ],
    "lineItems": [
    {
    "customerLineItemNumber": 0,
    "tiPartNumber": "LM6132AIM/NOPB",
    "customerPartNumber": "1000140",
    "customReelIndicator": false,
    "quantity": 50,
    "customerItemComments": [
    {
    "message": "LM6132AIM/NOPB"
    }
    ]
    }
    ]
    }
    }

    结果:状态码 422

    {
            "message": "Request failed with status code 422",
            "name": "Error",
            "stack": "Error: Request failed with status code 422\n    at createError (webpack:///./node_modules/axios/lib/core/createError.js?:16:15)\n    at settle (webpack:///./node_modules/axios/lib/core/settle.js?:17:12)\n    at IncomingMessage.handleStreamEnd (webpack:///./node_modules/axios/lib/adapters/http.js?:293:11)\n    at IncomingMessage.emit (events.js:327:22)\n    at endReadableNT (internal/streams/readable.js:1327:12)\n    at processTicksAndRejections (internal/process/task_queues.js:80:21)",
            "config": {
                "transitional": {
                    "silentJSONParsing": true,
                    "forcedJSONParsing": true,
                    "clarifyTimeoutError": false
                },
                "transformRequest": [
                    null
                ],
                "transformResponse": [
                    null
                ],
                "timeout": 30000,
                "xsrfCookieName": "XSRF-TOKEN",
                "xsrfHeaderName": "X-XSRF-TOKEN",
                "maxContentLength": -1,
                "maxBodyLength": -1,
                "headers": {
                    "Accept": "application/json, text/plain, */*",
                    "Content-Type": "application/json",
                    "Authorization": "Bearer i2y8th4kk8D272mSNG0V8QTVUzs0",
                    "User-Agent": "axios/0.24.0",
                    "Content-Length": 458
                },
                "baseURL": "">https://transact.ti.com",
                "method": "post",
                "url": "/v2/store/orders/test",
                "data": "{\"order\":{\"checkoutProfileId\":\"xxx\",\"customerPurchaseOrderNumber\":\"xxx\",\"endCustomerCompanyName\":\"xxx\",\"expediteShipping\":false,\"customerOrderComments\":[{\"message\":\"LM6132AIM/NOPB\"}],\"lineItems\":[{\"customerLineItemNumber\":1,\"tiPartNumber\":\"LM6132AIM/NOPB\",\"customerPartNumber\":\"1000140\",\"customReelIndicator\":false,\"quantity\":50,\"customerItemComments\":[{\"message\":\"LM6132AIM/NOPB\"}]}]}}"
            },
            "status": 422
        }

    部分物料似乎无法完成下单操作,提问主要是寻求出现这个问题的原因以及解决办法,同时,若涉及到多个物料一起下载,怎么规避这个问题?

  • Hi Yun,

    我有看到返回的response里有error message: Part number requested quantity is out of stock

    建议在正式环境下单之前先调用Inventory API查看库存量再进行合理数量的下单,谢谢。

  • Hi Yun,

    请尝试用 % 代替 / .