For the complete documentation index, see llms.txt. This page is also available as Markdown.

[GET] List offers

* Authentication

Required Authorization

Limit throttle:30,1

Request

Retrieve the shop's Back In Stock (BIS) submission list, with pagination.

Endpoint [GET] - /shop-api/pre-order/list?page=1

Params
Type
Required

page

number

no

keyword

string

no

Use keyword to search by offer name or product name

GET /shop-api/pre-order/list?page=1 HTTP/1.1
Host: preorder.globo.io
Authorization: ************
const myHeaders = new Headers();
myHeaders.append("Authorization", "************");
const requestOptions = {
  method: "GET",
  headers: myHeaders,
  redirect: "follow"
};
fetch("https://preorder.globo.io/shop-api/pre-order/list?page=1", 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/pre-order/list?page=1',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: ************'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;

Success response 200

{
  "success": true,
  "data": [
    {
      "id": 123,
      "offer_name": "Summer Pre-order",
      "start_date": "2026-08-01 00:00:00",
      "end_date": "2026-09-30 23:59:59",
      "countdown_before_preorder_start": true,
      "countdown_before_preorder_end": false,
      "apply_to": "product",
      "preorder_condition_inventory": "oos",
      "fulfillment_status": "ON_HOLD",
      "fulfillment_shipping_date": "2026-10-15",
      "turn_on_continue_selling_when_preorder_start": true,
      "turn_off_continue_selling_when_preorder_end": true,
      "status": 1,
      "products": [
        {
          "product_id": 7890123456789,
          "variant_id": 4567890123456,
          "limit": 100
        }
      ],
      "full_payment_discount_type": "percentage",
      "full_payment_discount_value": 10,
      "partial_payment_value": 30,
      "partial_payment_value_type": "percentage",
      "partial_payment_discount_value": 0,
      "partial_payment_discount_type": "percentage",
      "partial_payment_remaining_balance_charge_date": "2026-10-01"
    }
  ],
  "pagination": {
    "total": 120,
    "per_page": 50,
    "current_page": 1,
    "last_page": 3,
    "from": 1,
    "to": 50
  }
}

Notes on apply_to shape:

  • product → response includes products[]

  • collection → response includes collection_id (and optionally collection_name)

  • all → neither products nor collection_id

List-specific behavior for apply_to = product: products contains only a sample first product (not the full product list). Use GET /shop-api/pre-order/get/{id} or the products list APIs for full product details.

Response Keys & Fields

Top-level

Key
Type
Description

success

boolean

true when the request succeeds

data

array

List of offer objects (newest updated_at first)

pagination

object

Pagination metadata

pagination

Key
Type
Description

total

integer

Total offers matching the filter

per_page

integer

Always 50

current_page

integer

Current page

last_page

integer

Last available page

from

integer | null

First item index on this page (null if empty)

to

integer | null

Last item index on this page (null if empty)

Offer object (data[])

Field
Type
Description

id

integer

Offer (profile) ID

offer_name

string

Offer display name

start_date

string | null

Pre-order start datetime

end_date

string | null

Pre-order end datetime; null if no end date

countdown_before_preorder_start

boolean

Countdown before start enabled

countdown_before_preorder_end

boolean

Countdown before end enabled

apply_to

string

Target scope: product, collection, or all

preorder_condition_inventory

string

Inventory start condition (e.g. now, oos)

fulfillment_status

string | null

Order fulfillment mode: ON_HOLD, UNFULFILLMENT, SCHEDULED

fulfillment_shipping_date

string

Present when fulfillment is scheduled by exact date

fulfillment_after_checkout

mixed

Present when fulfillment is scheduled as time-after-checkout

turn_on_continue_selling_when_preorder_start

boolean

Auto-enable continue selling when offer starts

turn_off_continue_selling_when_preorder_end

boolean

Auto-disable continue selling when offer ends

status

integer | null

Offer status (1 = active when created via API)

products

array

Only when apply_to = product

collection_id

integer

Only when apply_to = collection

collection_name

string

Optional; only when available on the offer

full_payment_discount_type

string

Full-payment discount type (default percentage)

full_payment_discount_value

number

Full-payment discount value

partial_payment_value

number | null

Deposit / partial amount (only if partial payment enabled)

partial_payment_value_type

string

Partial amount type (e.g. percentage)

partial_payment_discount_value

number

Discount on partial payment

partial_payment_discount_type

string

Partial discount type

partial_payment_remaining_balance_charge_date

string | null

Remaining balance charge date (if exact-time trigger)

products[] item (when apply_to = product)

Field
Type
Description

product_id

integer

Shopify product ID

variant_id

integer

Shopify variant ID

limit

integer | null

Pre-order unit limit for that variant; null = unlimited

Failed Response

Something went wrong — 200

Empty result

Last updated

Was this helpful?