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

# Replace product variants in a subscription contract

> Replaces existing product variants with new ones in a subscription contract. This endpoint supports both regular subscription products and one-time products, allowing you to swap products, update quantities, and manage the product mix in a subscription.

**Key Features:**
- **Bulk Replace**: Replace multiple products at once by providing lists of old and new variants
- **Line-Specific Replace**: Target a specific line item using oldLineId for precise replacement
- **Quantity Management**: Set new quantities for replaced products
- **One-Time Products**: Add or remove one-time purchase products independently
- **Discount Preservation**: Configurable discount carry-forward logic

**Discount Carry Forward Options:**
- **PRODUCT_THEN_EXISTING**: First tries to apply the new product's selling plan discount, then falls back to existing discount
- **PRODUCT_PLAN**: Always uses the new product's selling plan discount
- **EXISTING_PLAN**: Maintains the existing product's discount structure

**Important Notes:**
- At least one regular subscription product must remain in the contract
- One-time products and free products don't count towards the minimum product requirement
- The system automatically handles pricing adjustments based on billing/delivery intervals
- Shipping prices are automatically recalculated after changes

**Use Cases:**
- Product upgrades/downgrades (e.g., switching coffee blend or size)
- Quantity adjustments during product swap
- Adding limited-time or seasonal products as one-time purchases
- Bulk product replacements for subscription migrations

**Authentication:** Requires valid X-API-Key header



## OpenAPI

````yaml /subscription/admin-api-swagger.json post /api/external/v2/subscription-contract-details/replace-variants-v3
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for managing subscriptions, payments, and
    related operations. These APIs allow you to programmatically manage
    subscription lifecycles, handle payments, configure products, and integrate
    subscription functionality into your applications.
  title: Admin APIs
  version: 0.0.1
servers:
  - url: https://subscription-admin.appstle.com
security: []
tags:
  - description: >-
      Core APIs for managing the complete subscription lifecycle including
      creation, updates, pausing, resuming, and cancellation of subscriptions.
    name: Subscription Management
  - description: >-
      APIs for managing subscription payment methods, processing payments,
      handling payment retries, and updating billing information.
    name: Subscription Payments
  - description: >-
      APIs for managing subscription contracts including delivery schedules,
      pricing, order notes, billing cycles, and shipping addresses.
    name: Subscription Contracts
  - description: >-
      APIs for managing products within subscriptions including adding,
      removing, updating quantities, and swapping products.
    name: Subscription Products
  - description: >-
      APIs for handling billing operations, payment processing, and financial
      transactions related to subscriptions.
    name: Billing & Payments
  - description: >-
      APIs for managing discounts and promotional codes applied to
      subscriptions.
    name: Subscription Discounts
  - description: >-
      APIs for managing one-time add-on products that can be purchased alongside
      recurring subscription items.
    name: Subscription One-Time Products
  - description: >-
      APIs for managing subscription plans, pricing tiers, and plan
      configurations.
    name: Subscription Plans
  - description: >-
      APIs for managing customizable product boxes and bundles where customers
      can select multiple items.
    name: Build-a-Box & Bundles
  - description: >-
      APIs for managing the product catalog including product information,
      variants, and inventory.
    name: Product Catalog
  - description: >-
      APIs for managing operational settings, configurations, and administrative
      functions.
    name: Operations & Settings
  - description: >-
      APIs powering the customer-facing portal where subscribers can manage
      their own subscriptions.
    name: Customer Portal
  - description: APIs for managing customer information, profiles, and account details.
    name: Customers
  - description: >-
      APIs for retrieving aggregated subscription data, customer subscription
      history, and account-level subscription information.
    name: Subscription Data
  - description: >-
      APIs for managing delivery profiles, shipping rates, free shipping
      configuration, and delivery method options on subscriptions.
    name: Delivery & Shipping
  - description: >-
      APIs for managing storefront customization including custom CSS, theme
      settings, label translations, and merchant-defined widget configuration.
    name: Customization
  - description: >-
      APIs for configuring cancellation flows, retention offers, cancellation
      reason management, and win-back automation.
    name: Customer Retention
paths:
  /api/external/v2/subscription-contract-details/replace-variants-v3:
    post:
      tags:
        - Subscription Management
        - Subscription Contracts
      summary: Replace product variants in a subscription contract
      description: >-
        Replaces existing product variants with new ones in a subscription
        contract. This endpoint supports both regular subscription products and
        one-time products, allowing you to swap products, update quantities, and
        manage the product mix in a subscription.


        **Key Features:**

        - **Bulk Replace**: Replace multiple products at once by providing lists
        of old and new variants

        - **Line-Specific Replace**: Target a specific line item using oldLineId
        for precise replacement

        - **Quantity Management**: Set new quantities for replaced products

        - **One-Time Products**: Add or remove one-time purchase products
        independently

        - **Discount Preservation**: Configurable discount carry-forward logic


        **Discount Carry Forward Options:**

        - **PRODUCT_THEN_EXISTING**: First tries to apply the new product's
        selling plan discount, then falls back to existing discount

        - **PRODUCT_PLAN**: Always uses the new product's selling plan discount

        - **EXISTING_PLAN**: Maintains the existing product's discount structure


        **Important Notes:**

        - At least one regular subscription product must remain in the contract

        - One-time products and free products don't count towards the minimum
        product requirement

        - The system automatically handles pricing adjustments based on
        billing/delivery intervals

        - Shipping prices are automatically recalculated after changes


        **Use Cases:**

        - Product upgrades/downgrades (e.g., switching coffee blend or size)

        - Quantity adjustments during product swap

        - Adding limited-time or seasonal products as one-time purchases

        - Bulk product replacements for subscription migrations


        **Authentication:** Requires valid X-API-Key header
      operationId: replaceVariantsV3
      parameters:
        - deprecated: true
          description: API Key (Deprecated)
          in: query
          name: api_key
          required: false
          schema:
            type: string
        - description: API Key
          in: header
          name: X-API-Key
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReplaceVariantsInfoV3'
        required: true
      responses:
        '200':
          content:
            application/json:
              examples:
                Success Response:
                  description: Success Response
                  value:
                    id: gid://shopify/SubscriptionContract/123456789
                    lines:
                      edges:
                        - node:
                            currentPrice:
                              amount: '35.99'
                              currencyCode: USD
                            id: gid://shopify/SubscriptionLine/999999
                            pricingPolicy:
                              basePrice:
                                amount: '39.99'
                                currencyCode: USD
                              cycleDiscounts:
                                - adjustmentType: PERCENTAGE
                                  adjustmentValue:
                                    percentage: 10
                                  afterCycle: 1
                            quantity: 3
                            title: Premium Coffee - Dark Roast
                            variantId: gid://shopify/ProductVariant/888888
                            variantTitle: 1kg / Whole Bean
                        - node:
                            currentPrice:
                              amount: '9.99'
                              currencyCode: USD
                            customAttributes:
                              - key: _one_time_product
                                value: 'true'
                            id: gid://shopify/SubscriptionLine/777777
                            quantity: 1
                            title: Coffee Filters - Pack of 100
                            variantId: gid://shopify/ProductVariant/666666
                    nextBillingDate: '2024-02-15T00:00:00Z'
                    status: ACTIVE
              schema:
                $ref: '#/components/schemas/SubscriptionContract'
          description: Products successfully replaced
        '400':
          content:
            application/json:
              examples:
                Last Product Removal:
                  description: Last Product Removal
                  value:
                    detail: >-
                      This operation would remove all subscription products from
                      the contract
                    status: 400
                    title: >-
                      UserGeneratedError:Cannot remove line item. Atleast one
                      subscription product must be present in a subscription
                    type: https://example.com/errors/bad-request
                No Variants Specified:
                  description: No Variants Specified
                  value:
                    detail: You must specify at least one variant to add or remove
                    status: 400
                    title: UserGeneratedError:No variants to add or remove
                    type: https://example.com/errors/bad-request
                Product Not Found:
                  description: Product Not Found
                  value:
                    detail: The new variant ID does not exist in your store
                    status: 400
                    title: >-
                      Product Variant not found for ID:
                      gid://shopify/ProductVariant/999999
                    type: https://example.com/errors/bad-request
                Same Source and Destination:
                  description: Same Source and Destination
                  value:
                    detail: You cannot replace a variant with itself
                    status: 400
                    title: >-
                      UserGeneratedError:Source and destination variants cannot
                      be same
                    type: https://example.com/errors/bad-request
                Variant Not Found:
                  description: Variant Not Found
                  value:
                    detail: >-
                      The specified old variant IDs do not exist in the
                      subscription
                    status: 400
                    title: >-
                      UserGeneratedError:Old variants didn't match with the
                      existing variants
                    type: https://example.com/errors/bad-request
          description: Invalid request parameters or business rule violation
        '401':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionContract'
          description: Authentication required - missing or invalid API key
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionContract'
          description: Insufficient permissions to modify subscription contracts
components:
  schemas:
    ReplaceVariantsInfoV3:
      description: >-
        Product replacement configuration for subscription contracts. Allows
        replacing existing subscription products with new ones, managing
        quantities, and handling one-time purchases.
      properties:
        babParentVariantId:
          description: >-
            When set, this is treated as a fixed-price Build-a-Box child swap:
            the numeric variant ID of the parent bundle line whose child
            products will be replaced. When present, babReplaceSubVariantDetails
            is applied instead of the line-item variant swap.
          example: 42549172011164
          format: int64
          type: integer
        babReplaceSubVariantDetails:
          description: >-
            Old-to-new child variant mappings applied to the parent bundle
            line's child products when babParentVariantId is set.
          items:
            $ref: '#/components/schemas/ReplaceSubVariantDetails'
          type: array
        babRequireAllSourceVariants:
          default: false
          description: >-
            When true and babParentVariantId is set, a bundle line is only
            updated when every oldVariantId from babReplaceSubVariantDetails is
            present in the box. Default is false (each old-to-new mapping
            applies independently).
          example: false
          type: boolean
        carryForwardDiscount:
          description: >-
            Determines how discounts are applied to new products when replacing
            variants. If not specified, uses the merchant's default setting.
          enum:
            - NONE
            - EXISTING_PLAN
            - PRODUCT_PLAN
            - PRODUCT_THEN_EXISTING
            - PRODUCT_THEN_EXISTING
            - PRODUCT_PLAN
            - EXISTING_PLAN
          example: PRODUCT_THEN_EXISTING
          type: string
        contractId:
          description: The ID of the subscription contract to modify
          example: 123456789
          format: int64
          type: integer
        eventSource:
          enum:
            - CUSTOMER_PORTAL
            - MERCHANT_PORTAL
            - SHOPIFY_EVENT
            - SYSTEM_EVENT
            - MERCHANT_PORTAL_BULK_AUTOMATION
            - SCHEDULED_BULK_AUTOMATION
            - MERCHANT_EXTERNAL_API
            - SHOPIFY_FLOW
          type: string
        newOneTimeVariants:
          additionalProperties:
            description: >-
              Map of one-time product variant IDs to add with their quantities.
              These products will be charged only once with the next order and
              won't recur. Useful for add-ons, samples, or limited-time offers.
            format: int32
            type: integer
          description: >-
            Map of one-time product variant IDs to add with their quantities.
            These products will be charged only once with the next order and
            won't recur. Useful for add-ons, samples, or limited-time offers.
          example:
            '42549172066666': 1
            '42549172077777': 2
          type: object
        newVariants:
          additionalProperties:
            description: >-
              Map of new variant IDs to their quantities. Key is the numeric
              Shopify variant ID, value is the desired quantity. If a variant
              already exists in the subscription and the system is configured to
              update existing quantities, the quantity will be added to the
              existing quantity.
            format: int32
            type: integer
          description: >-
            Map of new variant IDs to their quantities. Key is the numeric
            Shopify variant ID, value is the desired quantity. If a variant
            already exists in the subscription and the system is configured to
            update existing quantities, the quantity will be added to the
            existing quantity.
          example:
            '42549172033333': 2
            '42549172044444': 1
          type: object
        oldLineId:
          description: >-
            Specific subscription line ID to replace. Use this for targeted
            replacement of a single line item. When provided, oldVariants should
            be empty. Format: gid://shopify/SubscriptionLine/[ID]
          example: gid://shopify/SubscriptionLine/987654321
          type: string
        oldOneTimeVariants:
          description: >-
            List of one-time product variant IDs to remove from the
            subscription. Only removes one-time products that haven't been
            fulfilled yet.
          example:
            - 42549172055555
            - 42549172088888
          items:
            description: >-
              List of one-time product variant IDs to remove from the
              subscription. Only removes one-time products that haven't been
              fulfilled yet.
            format: int64
            type: integer
          type: array
        oldVariants:
          description: >-
            List of variant IDs to remove from the subscription. These are
            numeric Shopify variant IDs. Either provide oldVariants OR
            oldLineId, not both.
          example:
            - 42549172011164
            - 42549172022222
          items:
            description: >-
              List of variant IDs to remove from the subscription. These are
              numeric Shopify variant IDs. Either provide oldVariants OR
              oldLineId, not both.
            format: int64
            type: integer
          type: array
        shop:
          description: The Shop of the subscription contract to modify
          example: abcStore.myshopify.com
          type: string
        stopSwapEmails:
          default: false
          description: >-
            If true, suppresses email notifications about the product swap.
            Default is false (emails will be sent).
          example: false
          type: boolean
      required:
        - contractId
        - shop
      type: object
    SubscriptionContract:
      properties:
        billingAttempts:
          $ref: '#/components/schemas/BillingAttempts'
        billingPolicy:
          $ref: '#/components/schemas/BillingPolicy'
        createdAt:
          type: object
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute1'
          type: array
        customer:
          $ref: '#/components/schemas/Customer'
        customerPaymentMethod:
          $ref: '#/components/schemas/CustomerPaymentMethod'
        deliveryMethod:
          $ref: '#/components/schemas/DeliveryMethod'
        deliveryPolicy:
          $ref: '#/components/schemas/DeliveryPolicy'
        deliveryPrice:
          $ref: '#/components/schemas/DeliveryPrice'
        discounts:
          $ref: '#/components/schemas/Discounts'
        get__typename:
          type: string
        id:
          type: string
        lastPaymentStatus:
          enum:
            - SUCCEEDED
            - FAILED
            - $UNKNOWN
          type: string
        lines:
          $ref: '#/components/schemas/Lines'
        nextBillingDate:
          type: object
        note:
          type: string
        originOrder:
          $ref: '#/components/schemas/OriginOrder'
        status:
          enum:
            - ACTIVE
            - PAUSED
            - CANCELLED
            - EXPIRED
            - FAILED
            - $UNKNOWN
          type: string
        updatedAt:
          type: object
      type: object
    ReplaceSubVariantDetails:
      description: >-
        Old-to-new child variant mappings applied to the parent bundle line's
        child products when babParentVariantId is set.
      properties:
        newVariantId:
          format: int64
          type: integer
        newVariantQuantity:
          format: int32
          type: integer
        newVariantTitle:
          type: string
        oldVariantId:
          format: int64
          type: integer
        oldVariantQuantity:
          format: int32
          type: integer
        oldVariantTitle:
          type: string
      type: object
    BillingAttempts:
      properties:
        get__typename:
          type: string
        nodes:
          items:
            $ref: '#/components/schemas/Node3'
          type: array
      type: object
    BillingPolicy:
      properties:
        anchors:
          items:
            $ref: '#/components/schemas/Anchor'
          type: array
        get__typename:
          type: string
        interval:
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
            - $UNKNOWN
          type: string
        intervalCount:
          format: int32
          type: integer
        maxCycles:
          format: int32
          type: integer
        minCycles:
          format: int32
          type: integer
      type: object
    CustomAttribute1:
      properties:
        get__typename:
          type: string
        key:
          type: string
        value:
          type: string
      type: object
    Customer:
      properties:
        displayName:
          type: string
        email:
          deprecated: true
          type: string
        firstName:
          type: string
        get__typename:
          type: string
        id:
          type: string
        lastName:
          type: string
        phone:
          deprecated: true
          type: string
      type: object
    CustomerPaymentMethod:
      properties:
        get__typename:
          type: string
        id:
          type: string
        instrument:
          $ref: '#/components/schemas/Instrument'
        revokedAt:
          type: object
        revokedReason:
          enum:
            - AUTHORIZE_NET_GATEWAY_NOT_ENABLED
            - AUTHORIZE_NET_RETURNED_NO_PAYMENT_METHOD
            - FAILED_TO_UPDATE_CREDIT_CARD
            - STRIPE_API_AUTHENTICATION_ERROR
            - STRIPE_API_INVALID_REQUEST_ERROR
            - STRIPE_GATEWAY_NOT_ENABLED
            - STRIPE_RETURNED_NO_PAYMENT_METHOD
            - STRIPE_PAYMENT_METHOD_NOT_CARD
            - BRAINTREE_API_AUTHENTICATION_ERROR
            - BRAINTREE_GATEWAY_NOT_ENABLED
            - BRAINTREE_RETURNED_NO_PAYMENT_METHOD
            - BRAINTREE_PAYMENT_METHOD_NOT_CARD
            - PAYMENT_METHOD_VERIFICATION_FAILED
            - THREE_D_SECURE_FLOW_IN_VERIFICATION_NOT_IMPLEMENTED
            - MANUALLY_REVOKED
            - FAILED_TO_RETRIEVE_BILLING_ADDRESS
            - MERGED
            - CUSTOMER_REDACTED
            - TOO_MANY_CONSECUTIVE_FAILURES
            - CVV_ATTEMPTS_LIMIT_EXCEEDED
            - $UNKNOWN
          type: string
      type: object
    DeliveryMethod:
      properties:
        get__typename:
          type: string
      type: object
    DeliveryPolicy:
      properties:
        anchors:
          items:
            $ref: '#/components/schemas/Anchor1'
          type: array
        get__typename:
          type: string
        interval:
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
            - $UNKNOWN
          type: string
        intervalCount:
          format: int32
          type: integer
      type: object
    DeliveryPrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    Discounts:
      properties:
        get__typename:
          type: string
        nodes:
          items:
            $ref: '#/components/schemas/Node2'
          type: array
        pageInfo:
          $ref: '#/components/schemas/PageInfo2'
      type: object
    Lines:
      properties:
        get__typename:
          type: string
        nodes:
          items:
            $ref: '#/components/schemas/Node'
          type: array
        pageInfo:
          $ref: '#/components/schemas/PageInfo'
      type: object
    OriginOrder:
      properties:
        fulfillmentOrders:
          $ref: '#/components/schemas/FulfillmentOrders'
        get__typename:
          type: string
        id:
          type: string
        name:
          type: string
      type: object
    Node3:
      properties:
        completedAt:
          type: object
        createdAt:
          type: object
        get__typename:
          type: string
        id:
          type: string
        idempotencyKey:
          type: string
        ready:
          deprecated: true
          type: boolean
      type: object
    Anchor:
      properties:
        cutoffDay:
          format: int32
          type: integer
        day:
          format: int32
          type: integer
        get__typename:
          type: string
        month:
          format: int32
          type: integer
        type:
          enum:
            - WEEKDAY
            - MONTHDAY
            - YEARDAY
            - $UNKNOWN
          type: string
      type: object
    Instrument:
      properties:
        get__typename:
          type: string
      type: object
    Anchor1:
      properties:
        cutoffDay:
          format: int32
          type: integer
        day:
          format: int32
          type: integer
        get__typename:
          type: string
        month:
          format: int32
          type: integer
        type:
          enum:
            - WEEKDAY
            - MONTHDAY
            - YEARDAY
            - $UNKNOWN
          type: string
      type: object
    Node2:
      properties:
        get__typename:
          type: string
        id:
          type: string
        recurringCycleLimit:
          format: int32
          type: integer
        rejectionReason:
          enum:
            - NOT_FOUND
            - NO_ENTITLED_LINE_ITEMS
            - QUANTITY_NOT_IN_RANGE
            - PURCHASE_NOT_IN_RANGE
            - CUSTOMER_NOT_ELIGIBLE
            - USAGE_LIMIT_REACHED
            - CUSTOMER_USAGE_LIMIT_REACHED
            - CURRENTLY_INACTIVE
            - NO_ENTITLED_SHIPPING_LINES
            - INCOMPATIBLE_PURCHASE_TYPE
            - INTERNAL_ERROR
            - $UNKNOWN
          type: string
        targetType:
          enum:
            - LINE_ITEM
            - SHIPPING_LINE
            - $UNKNOWN
          type: string
        title:
          type: string
        type:
          enum:
            - MANUAL
            - CODE_DISCOUNT
            - AUTOMATIC_DISCOUNT
            - $UNKNOWN
          type: string
        usageCount:
          format: int32
          type: integer
        value:
          $ref: '#/components/schemas/Value'
      type: object
    PageInfo2:
      properties:
        endCursor:
          type: string
        get__typename:
          type: string
        hasNextPage:
          type: boolean
        hasPreviousPage:
          type: boolean
        startCursor:
          type: string
      type: object
    Node:
      properties:
        currentPrice:
          $ref: '#/components/schemas/CurrentPrice'
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          type: array
        discountAllocations:
          items:
            $ref: '#/components/schemas/DiscountAllocation'
          type: array
        get__typename:
          type: string
        id:
          type: string
        lineDiscountedPrice:
          $ref: '#/components/schemas/LineDiscountedPrice'
        pricingPolicy:
          $ref: '#/components/schemas/PricingPolicy'
        productId:
          type: string
        quantity:
          format: int32
          type: integer
        sellingPlanId:
          type: string
        sellingPlanName:
          type: string
        sku:
          type: string
        taxable:
          type: boolean
        title:
          type: string
        variantId:
          type: string
        variantImage:
          $ref: '#/components/schemas/VariantImage'
        variantTitle:
          type: string
      type: object
    PageInfo:
      properties:
        endCursor:
          type: string
        get__typename:
          type: string
        hasNextPage:
          type: boolean
        hasPreviousPage:
          type: boolean
        startCursor:
          type: string
      type: object
    FulfillmentOrders:
      properties:
        get__typename:
          type: string
        nodes:
          items:
            $ref: '#/components/schemas/Node1'
          type: array
        pageInfo:
          $ref: '#/components/schemas/PageInfo1'
      type: object
    Value:
      properties:
        get__typename:
          type: string
      type: object
    CurrentPrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    CustomAttribute:
      properties:
        get__typename:
          type: string
        key:
          type: string
        value:
          type: string
      type: object
    DiscountAllocation:
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        discount:
          $ref: '#/components/schemas/Discount'
        get__typename:
          type: string
      type: object
    LineDiscountedPrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    PricingPolicy:
      properties:
        basePrice:
          $ref: '#/components/schemas/BasePrice'
        cycleDiscounts:
          items:
            $ref: '#/components/schemas/CycleDiscount'
          type: array
        get__typename:
          type: string
      type: object
    VariantImage:
      properties:
        get__typename:
          type: string
        url:
          type: object
      type: object
    Node1:
      properties:
        fulfillAt:
          type: object
        get__typename:
          type: string
        id:
          type: string
        status:
          enum:
            - OPEN
            - IN_PROGRESS
            - CANCELLED
            - INCOMPLETE
            - CLOSED
            - SCHEDULED
            - ON_HOLD
            - $UNKNOWN
          type: string
      type: object
    PageInfo1:
      properties:
        endCursor:
          type: string
        get__typename:
          type: string
        hasNextPage:
          type: boolean
        hasPreviousPage:
          type: boolean
        startCursor:
          type: string
      type: object
    Amount:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    Discount:
      properties:
        get__typename:
          type: string
      type: object
    BasePrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    CycleDiscount:
      properties:
        adjustmentType:
          enum:
            - PERCENTAGE
            - FIXED_AMOUNT
            - PRICE
            - $UNKNOWN
          type: string
        adjustmentValue:
          $ref: '#/components/schemas/AdjustmentValue'
        afterCycle:
          format: int32
          type: integer
        computedPrice:
          $ref: '#/components/schemas/ComputedPrice'
        get__typename:
          type: string
      type: object
    AdjustmentValue:
      properties:
        get__typename:
          type: string
      type: object
    ComputedPrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object

````