# Partial Refundable Item Query This API is designed to retrieve detailed information about items that are eligible for partial refunds. It allows developers to access and display specific product details related to refund eligibility. Endpoint: POST /order/refund/part/products/preview Version: v.1.0.0 ## Request fields (application/json): - `orderViewId` (integer, required) Unique identifier for orders on Keeta platform Example: 756823555555859 - `shopId` (integer, required) Unique identifier of the Keeta store Example: 466663 - `products` (array) A List of products designated for refund: This field should be populated with specific product information for partial refunds. If left empty, the API will return all products eligible for refund, with the refund amount set to zero. - `products.orderProductId` (integer, required) Unique identifier for the SPU, generated by Keeta platform Example: 1234534224 - `products.refundCount` (integer, required) The quantity of this specific product to be refunded Example: 1 ## Response 200 fields (application/json): - `code` (integer, required) A numeric status identifier indicating the result of the interface call, used to determine whether the operation executed successfully. - `message` (string, required) Text description corresponding to the status code, explaining the operation result or error cause to users. Example: "Success" - `data` (object) - `data.products` (array) This field returns the detailed information of all products specified in the refund request parameters that require processing. - `data.products.id` (integer) Unique identifier for the SPU, generated by Keeta system Example: 9312039 - `data.products.spuId` (integer) Unique identifier for the SPU, generated by Keeta system Example: 9312039 - `data.products.skuId` (integer) Unique identifier for the SKU, generated by Keeta system Example: 8414079 - `data.products.count` (integer) Total quantity of this product purchased by the customer Example: 2 - `data.products.price` (string) Unit price of the product Example: "$10.00" - `data.products.name` (string) Display name of the product Example: "Lemon Tea Double Cup Set Meal" - `data.products.refundType` (integer) Indicates the refund status of the product: - `data.products.refundCount` (integer) Quantity of this product to be refunded - `data.products.refundPrice` (string) Total refund amount for this product Example: "$0.00" - `data.products.choiceGroupList` (array) Detailed ChoiceGroup and ChoiceGroupSku information for refunded items - `data.products.choiceGroupList.id` (integer) Unique identifier for the ChoiceGroup, generated by Keeta system Example: 3271540 - `data.products.choiceGroupList.name` (string) Display name of the ChoiceGroup (e.g., "Toppings", "Size Options") Example: "sweetness" - `data.products.choiceGroupList.choiceGroupSkuList` (array) Contains all ChoiceGroupSkus (selectable items) belonging to this ChoiceGroup Example: [{"id":16320510,"spuId":0,"name":"Slightly sweet","price":"$0.00","refundCount":0,"refundPrice":0,"groupSkuCount":0}] - `data.products.choiceGroupList.choiceGroupSkuList.id` (integer) Unique identifier for the ChoiceGroupSku (option item), generated by Keeta system Example: 3443 - `data.products.choiceGroupList.choiceGroupSkuList.spuId` (integer) Unique identifier of the parent SPU (Standard Product Unit), generated by Keeta system Example: 45325445 - `data.products.choiceGroupList.choiceGroupSkuList.name` (string) Display name of the ChoiceGroupSku Example: "ChoiceGroupSkuName" - `data.products.choiceGroupList.choiceGroupSkuList.price` (string) Unit price of the ChoiceGroupSku with currency formatting Example: "$24.00" - `data.products.choiceGroupList.choiceGroupSkuList.refundCount` (integer) Quantity of this ChoiceGroupSku to be refunded Example: 3 - `data.products.choiceGroupList.choiceGroupSkuList.refundPrice` (integer) Total refund amount for this ChoiceGroupSku Example: 156 - `data.products.choiceGroupList.choiceGroupSkuList.groupSkuCount` (integer) Preview of option group quantity for partial refunds Example: 3 - `data.products.associatedChoiceGroupList` (array) ChoiceGroups associated with the refunded product - `data.products.associatedChoiceGroupList.name` (string) Display name of the ChoiceGroup Example: "noodles" - `data.products.associatedChoiceGroupList.auditStatus` (integer) The value of this field represents the approval status of the 'ChoiceGroup' - `data.products.associatedChoiceGroupList.status` (integer) The value of this field indicates whether the status of the choiceGroup is valid - `data.products.spec` (string) Product specifications (e.g., size) - `data.promotionInfoList` (array) This field contains comprehensive amount details related to the product refunds. - `data.promotionInfoList.type` (integer) Type of promotion/discount applied Example: 3 - `data.promotionInfoList.title` (string) This field indicates the discount category code currently being applied, with the following values: Example: "promotionName" - `data.promotionInfoList.originFee` (object) Original product price before any discounts (calculated as: originFee = realPayFee + reduceFee) - `data.promotionInfoList.originFee.amount` (integer) This field value represents the numerical value corresponding to the amount Example: 24 - `data.promotionInfoList.originFee.currency` (string) This field value represents currency information Example: "SAR" - `data.promotionInfoList.originFee.amountStr` (string) This field value represents the numerical value corresponding to the amount, and will carry currency information, example: "SAR 24.00" Example: "SAR 24.00" - `data.promotionInfoList.realPayFee` (object) Actual amount paid by customer after discounts - `data.promotionInfoList.reduceFee` (object) Discount amount deducted from original price due to promotions - `data.refundPrice` (object) This field represents the total calculated refund amount for all products included in the refund request parameters. - `data.valuationRule` (string) This field provides the detailed calculation methodology used to determine the refundPrice value. Example: "Refund formula: [Item price / (Subtotal + Top-up to minimum)] × [Actual payment amount - Tips - Platform fee - Delivery fee]"