Skip to main content
The _cycle property format is subject to change as we iterate on it. Integrations and automations should use Shopify Flow instead of relying directly on this token.
A JSON-encoded object that contains everything Supercycle needs to create a Cycle from the line item when an order is placed. If an item doesn’t have a _cycle property, Supercycle will not process that item.
{
  "item": {
    "type": "existing",
    "filters": {
      "availability": { "from": "2025-01-01", "to": "2025-01-14" },
      "location": { "shopify_id": 123456 },
      "condition": { "ids": [1, 2] }
    }
  },
  "attachments": {
    "deposit": { "variant_id": 987654 },
    "membership_credit": { "cost": 5 },
    "subscription_contract_creator": { "selling_plan_id": 123 }
  },
  "method_type": "subscription",
  "minimum_term": "3 months",
  "rental_start": "2025-01-01"
}
item
object
required
Describes how Supercycle selects an inventory item to assign to the Cycle.
attachments
object
Optional objects applied to the Cycle after creation. Only relevant keys will be present.
method_type
string
The rental method. One of "subscription", "membership", "calendar", "resale".
rental_start
date
The requested rental start date. Present for Subscription and Calendar methods.
minimum_term
string
The minimum rental duration. Present for Subscription methods.

How it works

  1. When a customer selects a circular option, the _cycle property is fetched from the Intent endpoint and attached to the cart line item. The Supercycle methods app block handles this automatically. For custom storefronts, you can call the Intent endpoint directly.
  2. The properties[_cycle] value is submitted with the add-to-cart request as a hidden input or form data field.
  3. When the order is created, Supercycle reads the _cycle property and creates a Cycle for that line item.