diff --git a/lib/recurly/pricing/subscription/calculations.js b/lib/recurly/pricing/subscription/calculations.js index c2dfb271d..b22d02c31 100644 --- a/lib/recurly/pricing/subscription/calculations.js +++ b/lib/recurly/pricing/subscription/calculations.js @@ -272,7 +272,9 @@ export default class Calculations { const plan = this.items.plan; if (!plan) return { amount: 0, setup_fee: 0 }; let price = plan.price[this.items.currency]; - price.amount = price.unit_amount * (plan.quantity || 1); + let quantity = parseInt(plan.quantity, 10); + if (isNaN(quantity)) quantity = 1; + price.amount = price.unit_amount * quantity; return price; } diff --git a/lib/recurly/pricing/subscription/index.js b/lib/recurly/pricing/subscription/index.js index 2acc5937f..3d8026819 100644 --- a/lib/recurly/pricing/subscription/index.js +++ b/lib/recurly/pricing/subscription/index.js @@ -371,8 +371,9 @@ export default class SubscriptionPricing extends Pricing { // options.quantity, plan.quantity, 1 if (plan && plan.quantity) quantity = plan.quantity; - if (options.quantity) quantity = parseInt(options.quantity, 10); - if (!quantity || quantity < 1) quantity = 1; + + if ('quantity' in options) quantity = parseInt(options.quantity, 10); + if (isNaN(quantity) || quantity < 0) quantity = 1; return { currentPlan: plan, quantity, planCode, options, done }; }