Skip to main content
Breaking change — February 27th, 2026: All merchants will be automatically migrated to the new _cycle format by February 27th, 2026.Merchants can request to be switched earlier to access new features, or request an extension to remain on the legacy format longer. However, merchants staying on the legacy format will not be able to use some new and upcoming features.
The _rental_intent_token was a custom property attached to Shopify order line items that contained information about rental intents in Supercycle.

Overview

The _rental_intent_token was a JSON serialized token that contained all necessary information to create a rental when a customer purchased an item. This token was generated when customers selected rental options in the storefront and was processed when orders were fulfilled.

Field definitions

FieldTypeDescription
variant_idIntegerInternal variant ID (not Shopify ID).
available_item_countIntegerNumber of items available for this rental.
available_itemsArray of integersList of internal item IDs that were available.
scheduleObjectNested schedule information.
schedule.rental_startDate/datetimeWhen the rental period starts.
schedule.rental_endDate/datetimeWhen the rental period ends.
schedule.fulfill_atDatetime (nullable)When to fulfill/ship the order.
schedule.receive_atDatetime (nullable)When customer should receive the item.
schedule.restock_byDatetime (nullable)When item should be back in inventory.
schedule.minimum_rental_endDate (nullable)Minimum allowed rental end date.
location_idInteger (optional)Shopify location ID where item should come from.
condition_idsArray of integers (optional)Acceptable condition IDs for the item.
custom_fieldsObject (optional)Custom field key-value pairs.
method_typeStringRental type: calendar, subscription, membership, or resale.

Code example

{
  "variant_id": 22682,
  "available_item_count": 10,
  "available_items": [25267, 25268, 25269, 25270, 25271],
  "schedule": {
    "rental_start": "2021-01-01",
    "rental_end": "2021-01-02",
    "fulfill_at": "2021-01-01T10:00:00Z",
    "receive_at": "2021-01-10T10:00:00Z",
    "restock_by": "2021-01-10T18:00:00Z",
    "minimum_rental_end": "2021-01-08"
  },
  "location_id": 12345,
  "condition_ids": [1, 2],
  "custom_fields": {
    "field_name": "value"
  },
  "method_type": "calendar"
}

Mapping to new format

Old formatNew format
variant_idNot included (inferred from line item).
available_item_countMoved to _validations.quantity.max.
available_itemsNot included (replaced by filters).
schedule.rental_startrental_start
schedule.rental_endrental_end
schedule.fulfill_atNot included (calculated separately).
schedule.receive_atNot included (calculated separately).
schedule.restock_byNot included (calculated separately).
schedule.minimum_rental_endNot included (calculated separately).
location_iditem.filters.location.shopify_id
condition_idsitem.filters.condition.ids
custom_fieldsattachments.custom_fields
method_typemethod_type

Migration examples

Calendar rental

Old format:
{
  "variant_id": 123,
  "method_type": "calendar",
  "schedule": {
    "rental_start": "2026-03-01",
    "rental_end": "2026-03-07"
  },
  "available_items": [1, 2, 3, 4, 5],
  "location_id": 789
}
New format:
{
  "item": {
    "type": "existing",
    "filters": {
      "availability": {
        "from": "2026-03-01",
        "to": "2026-03-07"
      },
      "location": {
        "shopify_id": 789
      }
    }
  },
  "method_type": "calendar",
  "rental_start": "2026-03-01",
  "rental_end": "2026-03-07"
}

Membership rental with credit and custom fields

Old format:
{
  "variant_id": 456,
  "method_type": "membership",
  "schedule": {
    "rental_start": "2026-03-15",
    "rental_end": "2026-04-15"
  },
  "available_items": [10, 11, 12],
  "credit_cost": 20,
  "custom_fields": {
    "preferred_color": "blue",
    "notes": "Handle with care"
  }
}
New format:
{
  "item": {
    "type": "existing",
    "filters": {
      "availability": {
        "from": "2026-03-15",
        "to": "2026-04-15"
      }
    }
  },
  "attachments": {
    "membership_credit": {
      "cost": 20
    },
    "custom_fields": {
      "preferred_color": "blue",
      "notes": "Handle with care"
    }
  },
  "method_type": "membership",
  "rental_start": "2026-03-15",
  "rental_end": "2026-04-15"
}

Subscription rental with deposit

Old format:
{
  "variant_id": 789,
  "method_type": "subscription",
  "schedule": {
    "rental_start": "2026-04-01",
    "rental_end": "2026-04-30"
  },
  "available_items": [20, 21, 22],
  "required_deposit_variant_id": 999,
  "location_id": 555,
  "condition_ids": [1]
}
New format:
{
  "item": {
    "type": "existing",
    "filters": {
      "availability": {
        "from": "2026-04-01",
        "to": "2026-04-30"
      },
      "location": {
        "shopify_id": 555
      },
      "condition": {
        "ids": [1]
      }
    }
  },
  "attachments": {
    "deposit": {
      "shopify_id": 999
    }
  },
  "method_type": "subscription",
  "rental_start": "2026-04-01",
  "rental_end": "2026-04-30"
}