Cycle discounts do not apply to recurring orders

Topic summary

A developer is struggling to configure subscription cycle discounts where the first order receives a 10% discount but subsequent recurring orders have no discount.

Current Issue:

  • Despite setting up cycleDiscounts with 10% off after cycle 0 and 0% off after cycle 1, all orders (billing cycles 0, 1, and 2) are receiving the 10% discount
  • Orders are being created via the subscriptionBillingCycleBulkCharge GraphQL mutation

Configuration Attempted:
Using sellingPlanGroupCreate mutation with a pricing policy containing:

  • Fixed adjustment: 10% percentage discount
  • Recurring adjustment: 0% percentage discount starting after cycle 0

Additional Problem:
Attempting to use negative values for recurring.afterCycle results in a validation error requiring values between 0 and 2,147,483,647.

Status: The issue remains unresolved with no responses yet. The developer is seeking guidance on proper setup for this discount structure.

Summarized with AI on October 27. AI used: claude-sonnet-4-5-20250929.

Hey :waving_hand:

I have a question regarding cycleDiscounts [SubscriptionCyclePriceAdjustment!]!.

I’m trying to setup subscriptions in a way so that:

  • first order has a 10% discount
  • recurring orders have 0% discount (no discount)

This is my current pricingPolicy setup for one of my subscription contracts:

{
  "pricingPolicy": {
    "basePrice": {
      "amount": "100.0",
      "currencyCode": "USD"
    },
    "cycleDiscounts": [
      {
        "adjustmentType": "PERCENTAGE",
        "adjustmentValue": {
          "percentage": 10
        },
        "afterCycle": 0,
        "computedPrice": {
          "amount": "90.0",
          "currencyCode": "USD"
        }
      },
      {
        "adjustmentType": "PERCENTAGE",
        "adjustmentValue": {
          "percentage": 0
        },
        "afterCycle": 1,
        "computedPrice": {
          "amount": "100.0",
          "currencyCode": "USD"
        }
      }
    ]
  }
}

For some reason my first three orders all receive the 10% discount:

{
  "orders": {
    "edges": [
      {
        "node": {
          "id": "gid://shopify/Order/6308677451875",
          "subtotalPrice": "90.00",
          "currencyCode": "USD",
          "createdAt": "2025-06-20T12:24:03Z" // billingCycle: 0
        }
      },
      {
        "node": {
          "id": "gid://shopify/Order/6310083395683",
          "subtotalPrice": "90.00",
          "currencyCode": "USD",
          "createdAt": "2025-06-21T16:30:26Z" // billingCycle: 1
        }
      },
      {
        "node": {
          "id": "gid://shopify/Order/6311319896163",
          "subtotalPrice": "90.00",
          "currencyCode": "USD",
          "createdAt": "2025-06-22T17:15:07Z" // billingCycle: 2
        }
      }
    ]
  }
}

Recurring orders are created using subscriptionBillingCycleBulkCharge [GraphQL] mutation.

Has anyone had a similar problem? I’m not sure what’s wrong with my setup :pensive_face:

Hmm :thinking:

I’m using sellingPlanGroupCreate mutation.

How can I pass negative values to SellingPlanPricingPolicyInput?

This is the pricingPolicy I used to create the cycleDiscounts:

{
  "pricingPolicies": [
    {
      "fixed": {
        "adjustmentType": "PERCENTAGE",
        "adjustmentValue": {
          "percentage": 10
        }
      }
    },
    {
      "recurring": {
        "adjustmentType": "PERCENTAGE",
        "adjustmentValue": {
          "percentage": 0
        },
        "afterCycle": 0
      }
    }
  ]
}

If I try to put negative value for “recurring.afterCycle”, I get error:

"After cycle must be within the range of 0 to 2,147,483,647"