> ## Documentation Index
> Fetch the complete documentation index at: https://docs.supercycle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cycle actions

> Step-by-step guides for processing, updating, and managing cycles from the admin

### Create rentals

<AccordionGroup>
  <Accordion title="From the Admin">
    You can create a rental on behalf of a customer via the Shopify admin.

    <Steps>
      <Step title="From the Supercycle admin go to Cycles">
        Go to Supercycle > Cycles.
      </Step>

      <Step title="Click Create rental order">
        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/create-rental-order.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=0b1f7a31d3a74f316774f2385c14454f" alt="" width="2746" height="1721" data-path="images/screenshots/supercycle-admin/create-rental-order.png" />
        </Frame>
      </Step>

      <Step title="Pick or add a customer">
        Supercycle now asks who the order is for before opening the Shopify draft order. Search for an existing Shopify customer by name or email in the customer picker and select them.

        If the customer doesn't exist yet, click **Add new customer** and enter their first name, last name, and email. Supercycle creates them in Shopify on the fly and selects them for the order. Email is required; first and last name are optional.

        <Note>
          The customer picker searches every customer in your Shopify store, not just customers already synced to Supercycle.
        </Note>
      </Step>

      <Step title="Continue to the draft order">
        Click **Continue**. Supercycle creates a Shopify draft order pre-filled with the customer you just selected.
      </Step>

      <Step title="Add a product to the rental order">
        Select the rental method. For the calendar select the Rental period and Rental dates.

        Add another product if needed.

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/create-rental-order-2.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=6ffb80753632c4a77675e2376ac1eb4a" alt="" width="2318" height="1718" data-path="images/screenshots/supercycle-admin/create-rental-order-2.png" />
        </Frame>
      </Step>

      <Step title="Click save to update the Shopify draft order">
        Click save.
      </Step>

      <Step title="Customize the draft order">
        * Apply discounts
        * Add Shipping
        * Add tags or a note

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/create-rental-order-3.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=e8b55aaca26b8b55394d37681692c600" alt="" width="2402" height="2424" data-path="images/screenshots/supercycle-admin/create-rental-order-3.png" />
        </Frame>

        <Note>
          Please note, that adding a product to the draft order will not create a rental order for that product, they must be added via Supercycle.
        </Note>
      </Step>

      <Step title="Do one of the following">
        * Accept payment from the customer by marking the order as paid or entering card details. Then Create an order.
        * Set payment to due later. Then Create an order.
      </Step>

      <Step title="Rental order created">
        You will now have a Shopify order for that customer with rentals that can be seen in Supercycle cycles.
      </Step>
    </Steps>

    <Info>
      An in-app create order flow is available in beta. Enable **Create draft orders** under [Settings > Beta features](https://admin.shopify.com/apps/supercycle/settings/beta_features) to pick the customer, add variants, and configure calendar, membership, or subscription intents directly inside Supercycle before the Shopify draft order is created.
    </Info>
  </Accordion>
</AccordionGroup>

***

### Filtering which orders to fulfil

You can find rental orders in both Shopify and Supercycle.

<AccordionGroup>
  <Accordion title="From Shopify Orders">
    <Steps>
      <Step title="Go to Orders in your Shopify admin.">
        From Shopify.
      </Step>

      <Step title="Filter by:">
        * **Unfulfilled** status
        * Tagged with **Has rental items**

        <Frame type="glass">
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/find-orders-to-fulfill-in-shopify.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=29cc834292821fee0fa96837ea7ddc7c" alt="Filtering unfulfilled rental orders in Shopify orders view" width="2748" height="1010" data-path="images/screenshots/supercycle-admin/find-orders-to-fulfill-in-shopify.png" />
        </Frame>
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="From Supercycle Cycles">
    <Steps>
      <Step title="Go to Cycles in your Supercycle admin.">
        From Supercycle.
      </Step>

      <Step title="Use the Unfulfilled filter to see upcoming or unsent rentals.">
        <Frame type="glass">
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/find-orders-to-fulfill-in-shopify.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=29cc834292821fee0fa96837ea7ddc7c" alt="Filtering unfulfilled rental orders in Shopify orders view" width="2748" height="1010" data-path="images/screenshots/supercycle-admin/find-orders-to-fulfill-in-shopify.png" />
        </Frame>
      </Step>

      <Step title="Filter orders to fulfil today">
        Use the **Expected fulfilment date** filter and set it to **Today**.

        <Frame type="glass">
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/find-orders-to-fulfill-today-in-supercycle.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=6dab5aaf371576d4ebba7021e85a9105" alt="Filtering cycles by expected fulfilment date in Supercycle" width="3661" height="755" data-path="images/screenshots/supercycle-admin/find-orders-to-fulfill-today-in-supercycle.png" />
        </Frame>
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Via the MCP">
    Use the [`list_cycles`](/ai/operators-mcp/tools#cycles) tool with:

    * `status` - `to_fulfill`
    * `packing_status` - `pending`, `printed`, or `packed`
  </Accordion>

  <Accordion title="Via the API">
    Use the [List all cycles](/api-reference/admin/rentals/list-all-rentals) endpoint with status and packing filters.
  </Accordion>
</AccordionGroup>

***

### Fulfil the order

You can fulfil the order from Shopify, from Supercycle, or through the API.

<AccordionGroup>
  <Accordion title="From the Shopify order">
    When you fulfil the order in Shopify, Supercycle automatically updates the rental status to **Fulfilled**.

    <Steps>
      <Step title="Go to Orders in Shopify">
        In your Shopify admin, go to **Orders**, then select the order you want to fulfil.
      </Step>

      <Step title="Select Fulfil item(s)">
        In the **Unfulfilled** section, click **Fulfil item(s)**.\
        Add a tracking number and select a carrier if needed.
      </Step>

      <Step title="Send confirmation (optional)">
        Select **Send shipment details to your customer now** to email tracking info.
      </Step>

      <Step title="Click Fulfil item(s)">
        Shopify updates the status to **Fulfilled**, and Supercycle marks rentals as fulfilled.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="From Cycles">
    You can also fulfil directly in the **Cycles** view in Supercycle.

    <Warning>
      We don't recomened this at the moment. As you will still need  fulfil orders directly in Shopify. We're working on fixing this, and it will be available in an upcoming update.
    </Warning>

    <Frame>
      <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/mark-as-fulfilled-in-supercycle.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=ac185b8a2a1046d686245f3760be13b9" alt="Mark as fulfilled button in Supercycle cycles view" width="2403" height="1224" data-path="images/screenshots/supercycle-admin/mark-as-fulfilled-in-supercycle.png" />
    </Frame>
  </Accordion>

  <Accordion title="Via the MCP">
    Use the [`update_cycle`](/ai/operators-mcp/tools#cycles) tool with:

    * `id` - Cycle ID (e.g. `SC-1234`)
    * `fulfilled_at` - Fulfilment date in `YYYY-MM-DD` format
  </Accordion>

  <Accordion title="Via the API">
    Use the [Update a cycle](/api-reference/admin/rentals/update-a-rental) endpoint with the `fulfilledAt` parameter.
  </Accordion>
</AccordionGroup>

***

### Change product/variant

You can change the item associated with a rental to any item from any product.

Changing the product on a rental does not change the product on the Shopify order. If this is important, you should refund the line item in Shopify in order to cancel the existing rental and then create a new rental for the new product.

<Note>
  Changing the product will not charge/refund the difference to the customer. You should do this manually by partially refunding the original order, creating a draft order with a custom line item to charge the extra amount.
</Note>

<AccordionGroup>
  <Accordion title="From the Admin">
    <Steps>
      <Step title="Change rental item">
        From the rental's page, on the item card, select **Change item**.

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/rental-change-item.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=e56d707432fa972d7e6e8bfb768383ce" alt="" width="2731" height="2157" data-path="images/screenshots/supercycle-admin/rental-change-item.png" />
        </Frame>
      </Step>

      <Step title="Search for a new item">
        Under **Change item**, search and select an item by its product/variant name or its item id/serial.

        <Note>
          Supercycle limits the number of items that are returned on the search dropdown. If the item you're looking for doesn't show, try adding more detail to the search.
        </Note>

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/rental-change-item-search.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=56e1787ee2897b2accfefcfec0f2752e" alt="" width="1464" height="1677" data-path="images/screenshots/supercycle-admin/rental-change-item-search.png" />
        </Frame>
      </Step>

      <Step title="Save changes">
        Save your changes at the top of the page.
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

***

### Change item

<AccordionGroup>
  <Accordion title="From the Admin">
    <Steps>
      <Step title="Change rental item">
        From the rental's page, on the item card, select **Change item**.

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/rental-change-item.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=e56d707432fa972d7e6e8bfb768383ce" alt="" width="2731" height="2157" data-path="images/screenshots/supercycle-admin/rental-change-item.png" />
        </Frame>
      </Step>

      <Step title="Search for a new item">
        Under **Change item**, search and select an item by its product/variant name or its item id/serial.

        <Note>
          Supercycle limits the number of items that are returned on the search dropdown. If the item you're looking for doesn't show, try adding more detail to the search.
        </Note>

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/rental-change-item-search.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=56e1787ee2897b2accfefcfec0f2752e" alt="" width="1464" height="1677" data-path="images/screenshots/supercycle-admin/rental-change-item-search.png" />
        </Frame>
      </Step>

      <Step title="Save changes">
        Save your changes at the top of the page.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Via Supercycle Scanner">
    Change which item is allocated to a rental, either from the rental, or by scanning an item which has a rental for the same product/variant (that currently has a different item allocated to it).
  </Accordion>

  <Accordion title="Via the MCP">
    Use the [`update_cycle`](/ai/operators-mcp/tools#cycles) tool with:

    * `id` - Cycle ID (e.g. `SC-1234`)
    * `item_id` - The new item ID to assign
  </Accordion>

  <Accordion title="Via the API">
    Use the [Update a cycle](/api-reference/admin/rentals/update-a-rental) endpoint with the `itemId` parameter.
  </Accordion>
</AccordionGroup>

***

### Change rental period

<Warning>
  The rental dates can be changed to any dates and we recommend checking the availability of the item before selecting new dates.
</Warning>

<Note>
  Changing the rental period does not automatically adjust charges to the customer.\
  You will need to handle any additional charges or refunds separately.
</Note>

<AccordionGroup>
  <Accordion title="From the Admin">
    <Steps>
      <Step title="Edit rental logistics">
        From the rental's page, under **Logistics**, select **Edit**.

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/rental-edit-logistics.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=05949a7d21b53923723bd9e8b8c7eff4" alt="" width="2703" height="2185" data-path="images/screenshots/supercycle-admin/rental-edit-logistics.png" />
        </Frame>
      </Step>

      <Step title="Select new rental dates">
        Under **Rental start** and **Rental end**, select new dates for either or both.

        <Note>
          You'll have to charge or refund the customer separately if changing the rental period.
        </Note>

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/rental-select-new-dates.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=e42f95e1c5034dccfead95f76cf42606" alt="" width="1454" height="1083" data-path="images/screenshots/supercycle-admin/rental-select-new-dates.png" />
        </Frame>
      </Step>

      <Step title="Save changes">
        You'll still need to do this, even if you close the edit rental view.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/rental-save-logistics-changes.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=88aac64c2bf988758083660ff4649480" alt="" width="2724" height="2292" data-path="images/screenshots/supercycle-admin/rental-save-logistics-changes.png" />
        </Frame>
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Via the MCP">
    Use the [`update_cycle`](/ai/operators-mcp/tools#cycles) tool with:

    * `id` - Cycle ID (e.g. `SC-1234`)
    * `rental_start` / `rental_end` - New dates in `YYYY-MM-DD` format
  </Accordion>

  <Accordion title="Via the API">
    Use the [Update a cycle](/api-reference/admin/rentals/update-a-rental) endpoint with the `rentalStart` and/or `rentalEnd` parameters.
  </Accordion>
</AccordionGroup>

***

### Change fulfillment date/time

<AccordionGroup>
  <Accordion title="From the Admin">
    <Steps>
      <Step title="Edit rental logistics">
        From the rental's page, under **Logistics**, select **Edit**.

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/rental-edit-fulfillment.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=2df06178b455fe7c7e2f653ba2f33929" alt="" width="2707" height="2117" data-path="images/screenshots/supercycle-admin/rental-edit-fulfillment.png" />
        </Frame>
      </Step>

      <Step title="Select new rental dates">
        Under **Fulfilled at**, select new dates.

        <Frame>
          <img src="https://mintcdn.com/supercycle/Omgmq0rsgqX1BZKa/images/screenshots/supercycle-admin/rental-edit-fulfillment-receival-date.png?fit=max&auto=format&n=Omgmq0rsgqX1BZKa&q=85&s=23ef81b1683e715bb6fc2220a90decc8" alt="" width="1152" height="944" data-path="images/screenshots/supercycle-admin/rental-edit-fulfillment-receival-date.png" />
        </Frame>
      </Step>

      <Step title="Save changes">
        You'll still need to do this, even if you close the edit rental view.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/rental-save-logistics-changes.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=88aac64c2bf988758083660ff4649480" alt="" width="2724" height="2292" data-path="images/screenshots/supercycle-admin/rental-save-logistics-changes.png" />
        </Frame>
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="From the Shopify order">
    When an Order in Shopify is marked as fulfilled with an associated rental, the rental's **Fulfilled at** will also be updated.
  </Accordion>

  <Accordion title="In bulk, from Cycles">
    **Mark as Fulfilled** action from the **Actions** <Icon icon="circle-1" iconType="solid" color="red" /> options on the <Icon icon="shopify" iconType="solid" /> [Cycles](https://admin.shopify.com/apps/supercycle/rentals) table.

    <Frame>
      <img src="https://mintcdn.com/supercycle/XbKBsdX_PulItpyX/images/cycles/cycles-actions.png?fit=max&auto=format&n=XbKBsdX_PulItpyX&q=85&s=107f58e8e3643dbe6a4d1f7ee7e9506f" alt="" width="3252" height="2170" data-path="images/cycles/cycles-actions.png" />
    </Frame>
  </Accordion>

  <Accordion title="Via the MCP">
    Use the [`update_cycle`](/ai/operators-mcp/tools#cycles) tool with:

    * `id` - Cycle ID (e.g. `SC-1234`)
    * `fulfilled_at` - Fulfilment date in `YYYY-MM-DD` format
  </Accordion>

  <Accordion title="Via the API">
    Use the [Update a cycle](/api-reference/admin/rentals/update-a-rental) endpoint with the `fulfilledAt` parameter.
  </Accordion>
</AccordionGroup>

***

### Change receival date/time

<AccordionGroup>
  <Accordion title="From the Admin">
    <Steps>
      <Step title="Edit rental logistics">
        From the rental's page, select **Edit**.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/rental-edit-recival.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=9382599b900429d7764759a3b721e753" alt="" width="2733" height="1817" data-path="images/screenshots/supercycle-admin/rental-edit-recival.png" />
        </Frame>
      </Step>

      <Step title="Select new rental dates">
        Under **Received at**, select new dates.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/rental-edit-receival-date.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=d7fbe2472cff2e38202d97f2a0f33a31" alt="" width="1161" height="937" data-path="images/screenshots/supercycle-admin/rental-edit-receival-date.png" />
        </Frame>
      </Step>

      <Step title="Save changes">
        You'll still need to do this, even if you close the edit rental view.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/rental-save-logistics-changes.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=88aac64c2bf988758083660ff4649480" alt="" width="2724" height="2292" data-path="images/screenshots/supercycle-admin/rental-save-logistics-changes.png" />
        </Frame>
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="From the Return">
    When a Return is marked as received with an associated rental, the rental's receival will also be updated.
  </Accordion>

  <Accordion title="In bulk, from Cycles">
    **Mark as Returned** action from the **Actions** <Icon icon="circle-1" iconType="solid" color="red" /> options on the <Icon icon="shopify" iconType="solid" /> [Cycles](https://admin.shopify.com/apps/supercycle/rentals) table.

    <Frame>
      <img src="https://mintcdn.com/supercycle/XbKBsdX_PulItpyX/images/cycles/cycles-actions.png?fit=max&auto=format&n=XbKBsdX_PulItpyX&q=85&s=107f58e8e3643dbe6a4d1f7ee7e9506f" alt="" width="3252" height="2170" data-path="images/cycles/cycles-actions.png" />
    </Frame>
  </Accordion>

  <Accordion title="Via the MCP">
    Use the [`update_cycle`](/ai/operators-mcp/tools#cycles) tool with:

    * `id` - Cycle ID (e.g. `SC-1234`)
    * `received_at` - Receival date in `YYYY-MM-DD` format
  </Accordion>

  <Accordion title="Via the API">
    Use the [Update a cycle](/api-reference/admin/rentals/update-a-rental) endpoint with the `receivedAt` parameter.
  </Accordion>
</AccordionGroup>

***

### Cancel rental

<AccordionGroup>
  <Accordion title="From the Shopify order">
    Rentals can be canceled by removing the line item from the Shopify order.

    <Steps>
      <Step title="From the Shopify Admin, view the order containing the rental">
        You can also navigate to the order via the rental in Supercycle.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/view-order-from-rental.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=82d6825ed66cf1843efb38489eba7149" alt="" width="2994" height="1994" data-path="images/screenshots/supercycle-admin/view-order-from-rental.png" />
        </Frame>
      </Step>

      <Step title="Start a refund">
        From the Shopify order, click **Refund**.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/shopify-order-refund.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=2006ad8f617ae7cd1f736f95d186f1c7" alt="" width="2972" height="2725" data-path="images/screenshots/supercycle-admin/shopify-order-refund.png" />
        </Frame>
      </Step>

      <Step title="Process refunds against the line items">
        You should process a refund against any line items you want to cancel rentals for.

        Shopify allows you to set the refund amount, regardless of the value of the line items. Changing the refund amount won't affect whether rentals are canceled in Supercycle.

        <Frame>
          <img src="https://mintcdn.com/supercycle/FB21qCJ7pWgA4GNp/images/screenshots/supercycle-admin/shopify-order-process-refund.png?fit=max&auto=format&n=FB21qCJ7pWgA4GNp&q=85&s=37acb2ebbcb10e6bf35f7c23c197a2b0" alt="" width="2274" height="1472" data-path="images/screenshots/supercycle-admin/shopify-order-process-refund.png" />
        </Frame>

        Select **Refund** to continue.

        <Warning>
          Refunding a line item in Shopify will cancel a rental in Supercycle regardless of its fulfillment status.
        </Warning>
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

***
