[POST] Create submission
* Authentication
Required Authorization
Limit throttle:30,1
Request
Endpoint POST - /shop-api/back-in-stock/create
POST /shop-api/back-in-stock/create HTTP/1.1Host: preorder.globo.ioContent-Type: application/jsonAuthorization: ************Content-Length: 84{"product_id":123456789,"variant_id":123456789,}const myHeaders = new Headers();myHeaders.append("Content-Type", "application/json");myHeaders.append("Authorization", "••••••");
const raw = JSON.stringify({ "product_id": 1, "variant_id": 1,});const requestOptions = { method: "POST", headers: myHeaders, body: raw, redirect: "follow"};fetch("https://preorder.globo.io/shop-api/back-in-stock/create", requestOptions) .then((response) => response.text()) .then((result) => console.log(result)) .catch((error) => console.error(error));$curl = curl_init();curl_setopt_array($curl, array( CURLOPT_URL => 'https://preorder.globo.io/shop-api/back-in-stock/create', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{ "product_id": 123456789, "variant_id": 987654321, "customer_email": "[email protected]" }', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Authorization: ************' ),));
$response = curl_exec($curl);
curl_close($curl);echo $response;Payload body
| Params | Type | Required |
|---|---|---|
| customer_email | yes | |
| product_id | number | yes |
| variant_id | number | yes |
| customer_phone | phone +9123456789 | no |
| locale | string en | no |
| note | string | no |
content | object | no |
content.keyLabel | object | no |
content: Custom field values. See mapping table below. Any key that doesn’t match a fieldidreturned byGET /form(and isn’tsourceorkeyLabel) is silently dropped before saving.content.keyLabelMap of{ fieldId: label }for the custom fields you’re sending. Strongly recommended — without it, the merchant’s admin UI and CSV exports will show the raw fieldidinstead of a readable label.
Learn more about the content needed to generate subscribers using full-field forms.
Success response 200
{ "success": true, "message": "Submission created successfully", // "Submission updated successfully" if submission exist "data": { "id": 12345, // ID submission "product_id": 1234567890, // Shopify product ID "variant_id": 9876543210, // Shopify variant ID "customer_phone": null, "product_title": "Product Name", "variant_title": "Size M / Blue", "sku": "SKU-001", "inventory_id": "45678901234", // Shopify inventory_item_id "status": 0, // 0 => pending "last_sent": null, // => pending "unsubscribe": 0, // 0 => subscribe "content": "{\"source\":\"api\"}", // JSON string (nullable) "locale": "default", "opened": 0, // Chưa mở email "clicked": 0, // Chưa click link email "note": null, "created_at": "2026-07-06T10:00:00.000000Z", "updated_at": "2026-07-06T10:00:00.000000Z" }}Failed
// Missing ID{ "success": false, "message": "product_id and variant_id are required"}// Not email{ "success": false, "message": "customer_email is required"}// variant not found{ "success": false, "message": "Variant not found"}// registered{ "success": false, "message": "Customer is already registered for this variant"}// catch{ "success": false, "message": "Something went wrong"}Was this helpful?
Thanks for your feedback! Tell us what was missing
Report an issue