> ## 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.

# Metafields

> Metafields for Shopify products, variants, and customers.

<Info>Metafields are set by Supercycle and should not be edited manually</Info>

## Product Metafields

Supercycle adds metafields to products to enable circular commerce methods. These metafields configure which rental methods are available and how they work.

### Product configuration metafields

<ParamField path="supercycle.supercycle_enabled" type="boolean">
  Indicates whether a product is enabled for Supercycle functionality. Set to `"true"` when a product is imported to Supercycle, `"false"` when removed.
</ParamField>

<ParamField path="supercycle.total_uncommitted_inventory" type="integer">
  The total number of uncommitted inventory available across all variants.
</ParamField>

### Method Configuration Metafields

These metafields contain the detailed configuration for each circular commerce method.

<ParamField path="supercycle.methods" type="list.single_line_text_field">
  Lists all rental methods enabled for this product. Array of method names: `["Calendar", "Membership", "Subscription", "Resale"]`. Used by app blocks to determine which rental methods to display.
</ParamField>

<ParamField path="supercycle.calendar_configuration" type="json">
  Configuration for calendar rental method.
</ParamField>

<ParamField path="supercycle.membership_configuration" type="json">
  Configuration for membership rental method.
</ParamField>

<ParamField path="supercycle.subscription_configuration" type="json">
  Configuration for subscription rental method.
</ParamField>

<ParamField path="supercycle.resale_configuration" type="json">
  Configuration for resale method.
</ParamField>

## Variant Metafields

Supercycle adds metafields to product variants to track inventory availability and membership pricing.

### Inventory Metafields

<ParamField path="supercycle.uncommitted_inventory" type="boolean">
  Indicates if variant has uncommitted inventory available. Used for inventory filtering in collections.
</ParamField>

<ParamField path="supercycle.uncommitted_inventory_count" type="number_integer">
  The number of physical inventory items for this variant that are currently available — specifically items that are both visible (not hidden/retired) and not committed to an active rental.
</ParamField>

<ParamField path="supercycle.future_availability_inventory" type="boolean">
  Indicates if variant has future availability inventory. Used for calendar rental availability filtering.
</ParamField>

### Membership Metafields

<ParamField path="supercycle.credit_cost" type="number_integer">
  Credit cost for this variant in membership rental. Used by membership rental method to determine pricing.
</ParamField>

<ParamField path="supercycle.credit_allowance" type="number_integer">
  Credit allowance for this variant in membership plans. Used by membership plans to set credit limits.
</ParamField>

## Customer Metafields

Supercycle adds metafields to customers to track membership status and payment information.

### Membership Metafields

<ParamField path="supercycle.membership" type="json">
  Customer's membership information and quotas.
</ParamField>

### Payment Metafields

<ParamField path="supercycle.vaulted_payment_method" type="boolean">
  Indicates if customer has a vaulted payment method. Used for payment method validation in cart.
</ParamField>

## Usage Examples

#### Checking if a product has a method:

```liquid theme={null}
{% comment %} Check if product has calendar rental method {% endcomment %}
{% if product.metafields.supercycle.methods contains "Calendar" %}
  <!-- Product has calendar rental available -->
{% endif %}

{% comment %} Check if product has membership rental method {% endcomment %}
{% if product.metafields.supercycle.methods contains "Membership" %}
  <!-- Product has membership rental available -->
{% endif %}

{% comment %} Check if product has subscription rental method {% endcomment %}
{% if product.metafields.supercycle.methods contains "Subscription" %}
  <!-- Product has subscription rental available -->
{% endif %}

{% comment %} Check if product has resale method {% endcomment %}
{% if product.metafields.supercycle.methods contains "Resale" %}
  <!-- Product has resale available -->
{% endif %}
```

### Checking customer membership:

```liquid theme={null}
{% assign membership = customer.metafields.supercycle.membership.value %}
{% if membership.quotas.credits.allowance > 0 %}
  <!-- Customer has credit allowance -->
{% endif %}
```

### Use metafields for merchandising

You can use metafields to merchandising your products. For example, you can use the `supercycle.uncommitted_inventory` metafield in an automatic collection to only show products that are available now.
