productID. JSON updates may send any subset of editable product fields; CSV updates only apply non-blank cells.curl --location --request PUT 'https://api.returning.ai/v1/products/bulk' \
--header 'Authorization: Bearer XXXXXX' \
--header 'Content-Type: application/json' \
--data '[
{
"productID": "507f1f77bcf86cd799439011",
"name": "Premium Voucher",
"price": 120,
"vouchers": [
"VOUCHER-003"
],
"voucherExpireDate": "2026-12-31T00:00:00.000Z"
}
]'{
"meta": {
"status": "success",
"statusCode": 200,
"updated": 1
},
"message": "Update products success.",
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"communityID": "6502c9e514a3e564c5c09c0a",
"name": "Premium Voucher",
"description": "<p>Updated premium access reward.</p>",
"image": "https://example.com/product.png",
"price": 120,
"category": "Premium Rewards",
"stocks": 3,
"discountPrice": 100,
"isDiscountEnabled": false,
"discountStartDate": null,
"discountEndDate": null,
"userInformation": {
"isEnabled": false,
"shouldCollectName": false,
"shouldCollectPhone": false,
"shouldCollectAddress": false
},
"shouldPrioritiesExpiringVouchers": false,
"shouldDisplayRemainingQuantity": true,
"expiringVoucherHighlight": {
"isEnabled": false,
"duration": 7,
"timeframe": "days"
},
"isArchived": false,
"totalOrders": 0,
"redemptionInstructions": "<p>Show this voucher at checkout.</p>",
"productPermission": [
{
"isEnabled": true,
"type": "role",
"permission": {
"roleNames": [
"VIP Member"
],
"tagNames": [
"Early Access"
],
"usernames": [
"alex"
],
"combination": [
{
"type": "role",
"values": [
"VIP Member"
]
}
]
},
"purchaseAccess": {
"specialPrice": 80,
"isSpecialPriceEnabled": false
},
"purchaseLimit": {
"isPurchaseLimitEnabled": false,
"quantity": 1,
"intervalCount": 1,
"intervalUnit": "months"
},
"accessLevel": "full-access",
"isExclusiveTagEnabled": false
}
],
"isProductAccessEnabled": false,
"purchaseStatusOverride": {
"isEnabled": false,
"status": null
},
"createdAt": "2026-06-09T00:00:00.000Z",
"updatedAt": "2026-06-11T00:00:00.000Z"
}
]
}