Update multiple properties of a subscription line item
Comprehensive endpoint for updating a subscription line item’s quantity, price, product variant, and/or selling plan in a single API call. Changes are applied intelligently - only modified values trigger updates.
Full behavior, validation rules, and side effects
Key Features:
- Update any combination of: quantity, price, variant, or selling plan
- Intelligent change detection - only updates what’s different
- Automatic handling of prepaid subscription pricing
- Preserves existing discount cycles when updating price
- Partial success allowed - some updates may fail while others succeed
- Each change creates separate activity log entries
Prepaid Subscription Handling: For prepaid subscriptions (billing interval > delivery interval):
- When
isPricePerUnit=true: Price is multiplied by interval ratio - Example: Monthly billing, weekly delivery = price × 4
- When
isPricePerUnit=false: Price is used as total billing amount
Update Process:
- Validates line item exists in the subscription
- Calculates interval multiplier for prepaid logic
- Updates in order: selling plan → price → quantity → variant
- Each update uses separate Shopify GraphQL mutation
- Failures are logged but don’t block other updates
Selling Plan Updates:
- Can update by ID or name (name takes precedence)
- Only updates if different from current plan
- Useful for changing delivery frequency options
Price Updates:
- Preserves existing discount cycles (up to 2 cycles)
- Recalculates cycle discounts based on new base price
- Triggers shipping price recalculation
- Sends price update email to customer
Quantity Updates:
- Validates against min/max quantity rules
- Updates Build-a-Box totals if applicable
- May trigger discount recalculations
Variant Updates:
- Changes the product itself (different SKU)
- Validates new variant exists and is available
- May affect pricing and discounts
Important Notes:
- All parameters except contractId and lineId are optional
- Provide only the values you want to change
- Price is always in shop’s base currency
- Changes apply to future orders only
Authentication: Requires valid X-API-Key header
Documentation Index
Fetch the complete documentation index at: https://appstleinc-aeca3e0a.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Headers
API Key for authentication
Query Parameters
Subscription contract ID
x >= 1API Key (Deprecated - Use X-API-Key header instead)
New quantity for the line item. Leave unchanged if not updating quantity.
1 <= x <= 9999New product variant ID in Shopify GID format (e.g., gid://shopify/ProductVariant/42549172011164). This updates the associated product. Leave this parameter blank if you are not switching products.
Line item ID to update. Must be the full GraphQL ID including gid:// prefix
New price for the line item in shop currency. Behavior depends on isPricePerUnit flag.
0.01 <= x <= 999999.99Determines how price is interpreted for prepaid subscriptions:
- true: Price is per unit (per delivery), will be multiplied by interval ratio
- false: Price is total billing amount (for all deliveries in billing period)
Example: Monthly billing, weekly delivery, price=$10
- isPricePerUnit=true: Customer pays $40/month ($10 × 4 weeks)
- isPricePerUnit=false: Customer pays $10/month total
Name of the selling plan to apply. Takes precedence over current selling plan. Used to change delivery frequencies.
255Response
Line item successfully updated
ACTIVE, PAUSED, CANCELLED, EXPIRED, FAILED, $UNKNOWN SUCCEEDED, FAILED, $UNKNOWN