Просмотр исходного кода

convert price_in_unit to price_in_cents

GitOrigin-RevId: bae030e9c90f8286d6e6550744849984fe81f63d
Tim Alby 4 лет назад
Родитель
Сommit
bbac46156b

+ 1 - 1
services/web/app/src/Features/Subscription/GroupPlansData.js

@@ -43,7 +43,7 @@ for (const [usage, planData] of Object.entries(groups)) {
           planCode
         )} - Group Account (${size} licenses) - ${capitalize(usage)}`,
         hideFromUsers: true,
-        price_in_cents: groups[usage][planCode].USD[size].price_in_unit * 100,
+        price_in_cents: groups[usage][planCode].USD[size].price_in_cents,
         annual: true,
         features: Settings.features[planCode],
         groupPlan: true,

+ 5 - 4
services/web/app/src/Features/Subscription/PlansLocator.js

@@ -3,10 +3,7 @@ const logger = require('@overleaf/logger')
 
 function ensurePlansAreSetupCorrectly() {
   Settings.plans.forEach(plan => {
-    if (
-      typeof plan.price_in_unit !== 'number' &&
-      typeof plan.price_in_cents !== 'number'
-    ) {
+    if (typeof plan.price_in_cents !== 'number') {
       logger.fatal({ plan }, 'missing price on plan')
       process.exit(1)
     }
@@ -14,6 +11,10 @@ function ensurePlansAreSetupCorrectly() {
       logger.fatal({ plan }, 'unclear price attribute on plan')
       process.exit(1)
     }
+    if (plan.price_in_unit) {
+      logger.fatal({ plan }, 'deprecated price_in_unit attribute on plan')
+      process.exit(1)
+    }
   })
 }
 

+ 1 - 11
services/web/app/src/Features/Subscription/SubscriptionHelper.js

@@ -3,17 +3,7 @@
  * This is to avoid unintended/artifical credits on users Recurly accounts.
  */
 function shouldPlanChangeAtTermEnd(oldPlan, newPlan) {
-  return getPlanPriceInCents(oldPlan) > getPlanPriceInCents(newPlan)
-}
-
-/**
- * Group plans have their price in dollars, but individual plans store the price in cents
- */
-function getPlanPriceInCents(plan) {
-  if (plan.price_in_unit) {
-    return plan.price_in_unit * 100
-  }
-  return plan.price_in_cents
+  return oldPlan.price_in_cents > newPlan.price_in_cents
 }
 
 module.exports = {

+ 308 - 308
services/web/app/templates/plans/groups.json

@@ -3,510 +3,510 @@
     "professional": {
       "AUD": {
         "2": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "3": {
-          "price_in_unit": 906
+          "price_in_cents": 90600
         },
         "4": {
-          "price_in_unit": 1208
+          "price_in_cents": 120800
         },
         "5": {
-          "price_in_unit": 1510
+          "price_in_cents": 151000
         },
         "10": {
-          "price_in_unit": 1685
+          "price_in_cents": 168500
         },
         "20": {
-          "price_in_unit": 3110
+          "price_in_cents": 311000
         },
         "50": {
-          "price_in_unit": 7130
+          "price_in_cents": 713000
         }
       },
       "CAD": {
         "2": {
-          "price_in_unit": 570
+          "price_in_cents": 57000
         },
         "3": {
-          "price_in_unit": 854
+          "price_in_cents": 85400
         },
         "4": {
-          "price_in_unit": 1138
+          "price_in_cents": 113800
         },
         "5": {
-          "price_in_unit": 1420
+          "price_in_cents": 142000
         },
         "10": {
-          "price_in_unit": 1590
+          "price_in_cents": 159000
         },
         "20": {
-          "price_in_unit": 2940
+          "price_in_cents": 294000
         },
         "50": {
-          "price_in_unit": 6730
+          "price_in_cents": 673000
         }
       },
       "CHF": {
         "2": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "3": {
-          "price_in_unit": 756
+          "price_in_cents": 75600
         },
         "4": {
-          "price_in_unit": 1008
+          "price_in_cents": 100800
         },
         "5": {
-          "price_in_unit": 1260
+          "price_in_cents": 126000
         },
         "10": {
-          "price_in_unit": 1405
+          "price_in_cents": 140500
         },
         "20": {
-          "price_in_unit": 2590
+          "price_in_cents": 259000
         },
         "50": {
-          "price_in_unit": 5940
+          "price_in_cents": 594000
         }
       },
       "DKK": {
         "2": {
-          "price_in_unit": 3024
+          "price_in_cents": 302400
         },
         "3": {
-          "price_in_unit": 4536
+          "price_in_cents": 453600
         },
         "4": {
-          "price_in_unit": 6048
+          "price_in_cents": 604800
         },
         "5": {
-          "price_in_unit": 7560
+          "price_in_cents": 756000
         },
         "10": {
-          "price_in_unit": 8425
+          "price_in_cents": 842500
         },
         "20": {
-          "price_in_unit": 15550
+          "price_in_cents": 1555000
         },
         "50": {
-          "price_in_unit": 35640
+          "price_in_cents": 3564000
         }
       },
       "EUR": {
         "2": {
-          "price_in_unit": 470
+          "price_in_cents": 47000
         },
         "3": {
-          "price_in_unit": 704
+          "price_in_cents": 70400
         },
         "4": {
-          "price_in_unit": 936
+          "price_in_cents": 93600
         },
         "5": {
-          "price_in_unit": 1168
+          "price_in_cents": 116800
         },
         "10": {
-          "price_in_unit": 1310
+          "price_in_cents": 131000
         },
         "20": {
-          "price_in_unit": 2420
+          "price_in_cents": 242000
         },
         "50": {
-          "price_in_unit": 5545
+          "price_in_cents": 554500
         }
       },
       "GBP": {
         "2": {
-          "price_in_unit": 396
+          "price_in_cents": 39600
         },
         "3": {
-          "price_in_unit": 592
+          "price_in_cents": 59200
         },
         "4": {
-          "price_in_unit": 788
+          "price_in_cents": 78800
         },
         "5": {
-          "price_in_unit": 984
+          "price_in_cents": 98400
         },
         "10": {
-          "price_in_unit": 1125
+          "price_in_cents": 112500
         },
         "20": {
-          "price_in_unit": 2075
+          "price_in_cents": 207500
         },
         "50": {
-          "price_in_unit": 4750
+          "price_in_cents": 475000
         }
       },
       "NOK": {
         "2": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "3": {
-          "price_in_unit": 5544
+          "price_in_cents": 554400
         },
         "4": {
-          "price_in_unit": 7392
+          "price_in_cents": 739200
         },
         "5": {
-          "price_in_unit": 9240
+          "price_in_cents": 924000
         },
         "10": {
-          "price_in_unit": 10295
+          "price_in_cents": 1029500
         },
         "20": {
-          "price_in_unit": 19010
+          "price_in_cents": 1901000
         },
         "50": {
-          "price_in_unit": 43560
+          "price_in_cents": 4356000
         }
       },
       "NZD": {
         "2": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "3": {
-          "price_in_unit": 906
+          "price_in_cents": 90600
         },
         "4": {
-          "price_in_unit": 1208
+          "price_in_cents": 120800
         },
         "5": {
-          "price_in_unit": 1510
+          "price_in_cents": 151000
         },
         "10": {
-          "price_in_unit": 1685
+          "price_in_cents": 168500
         },
         "20": {
-          "price_in_unit": 3110
+          "price_in_cents": 311000
         },
         "50": {
-          "price_in_unit": 7130
+          "price_in_cents": 713000
         }
       },
       "SEK": {
         "2": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "3": {
-          "price_in_unit": 5544
+          "price_in_cents": 554400
         },
         "4": {
-          "price_in_unit": 7392
+          "price_in_cents": 739200
         },
         "5": {
-          "price_in_unit": 9240
+          "price_in_cents": 924000
         },
         "10": {
-          "price_in_unit": 10295
+          "price_in_cents": 1029500
         },
         "20": {
-          "price_in_unit": 19010
+          "price_in_cents": 1901000
         },
         "50": {
-          "price_in_unit": 43560
+          "price_in_cents": 4356000
         }
       },
       "SGD": {
         "2": {
-          "price_in_unit": 672
+          "price_in_cents": 67200
         },
         "3": {
-          "price_in_unit": 1008
+          "price_in_cents": 100800
         },
         "4": {
-          "price_in_unit": 1344
+          "price_in_cents": 134400
         },
         "5": {
-          "price_in_unit": 1680
+          "price_in_cents": 168000
         },
         "10": {
-          "price_in_unit": 1870
+          "price_in_cents": 187000
         },
         "20": {
-          "price_in_unit": 3455
+          "price_in_cents": 345500
         },
         "50": {
-          "price_in_unit": 7920
+          "price_in_cents": 792000
         }
       },
       "USD": {
         "2": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "3": {
-          "price_in_unit": 752
+          "price_in_cents": 75200
         },
         "4": {
-          "price_in_unit": 990
+          "price_in_cents": 99000
         },
         "5": {
-          "price_in_unit": 1230
+          "price_in_cents": 123000
         },
         "10": {
-          "price_in_unit": 1390
+          "price_in_cents": 139000
         },
         "20": {
-          "price_in_unit": 2590
+          "price_in_cents": 259000
         },
         "50": {
-          "price_in_unit": 5940
+          "price_in_cents": 594000
         }
       }
     },
     "collaborator": {
       "AUD": {
         "2": {
-          "price_in_unit": 302
+          "price_in_cents": 30200
         },
         "3": {
-          "price_in_unit": 453
+          "price_in_cents": 45300
         },
         "4": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "5": {
-          "price_in_unit": 755
+          "price_in_cents": 75500
         },
         "10": {
-          "price_in_unit": 840
+          "price_in_cents": 84000
         },
         "20": {
-          "price_in_unit": 1555
+          "price_in_cents": 155500
         },
         "50": {
-          "price_in_unit": 3565
+          "price_in_cents": 356500
         }
       },
       "CAD": {
         "2": {
-          "price_in_unit": 285
+          "price_in_cents": 28500
         },
         "3": {
-          "price_in_unit": 427
+          "price_in_cents": 42700
         },
         "4": {
-          "price_in_unit": 569
+          "price_in_cents": 56900
         },
         "5": {
-          "price_in_unit": 710
+          "price_in_cents": 71000
         },
         "10": {
-          "price_in_unit": 795
+          "price_in_cents": 79500
         },
         "20": {
-          "price_in_unit": 1470
+          "price_in_cents": 147000
         },
         "50": {
-          "price_in_unit": 3365
+          "price_in_cents": 336500
         }
       },
       "CHF": {
         "2": {
-          "price_in_unit": 252
+          "price_in_cents": 25200
         },
         "3": {
-          "price_in_unit": 378
+          "price_in_cents": 37800
         },
         "4": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "5": {
-          "price_in_unit": 630
+          "price_in_cents": 63000
         },
         "10": {
-          "price_in_unit": 700
+          "price_in_cents": 70000
         },
         "20": {
-          "price_in_unit": 1295
+          "price_in_cents": 129500
         },
         "50": {
-          "price_in_unit": 2970
+          "price_in_cents": 297000
         }
       },
       "DKK": {
         "2": {
-          "price_in_unit": 1512
+          "price_in_cents": 151200
         },
         "3": {
-          "price_in_unit": 2268
+          "price_in_cents": 226800
         },
         "4": {
-          "price_in_unit": 3024
+          "price_in_cents": 302400
         },
         "5": {
-          "price_in_unit": 3780
+          "price_in_cents": 378000
         },
         "10": {
-          "price_in_unit": 4210
+          "price_in_cents": 421000
         },
         "20": {
-          "price_in_unit": 7775
+          "price_in_cents": 777500
         },
         "50": {
-          "price_in_unit": 17820
+          "price_in_cents": 1782000
         }
       },
       "EUR": {
         "2": {
-          "price_in_unit": 235
+          "price_in_cents": 23500
         },
         "3": {
-          "price_in_unit": 352
+          "price_in_cents": 35200
         },
         "4": {
-          "price_in_unit": 468
+          "price_in_cents": 46800
         },
         "5": {
-          "price_in_unit": 584
+          "price_in_cents": 58400
         },
         "10": {
-          "price_in_unit": 655
+          "price_in_cents": 65500
         },
         "20": {
-          "price_in_unit": 1210
+          "price_in_cents": 121000
         },
         "50": {
-          "price_in_unit": 2770
+          "price_in_cents": 277000
         }
       },
       "GBP": {
         "2": {
-          "price_in_unit": 198
+          "price_in_cents": 19800
         },
         "3": {
-          "price_in_unit": 296
+          "price_in_cents": 29600
         },
         "4": {
-          "price_in_unit": 394
+          "price_in_cents": 39400
         },
         "5": {
-          "price_in_unit": 492
+          "price_in_cents": 49200
         },
         "10": {
-          "price_in_unit": 560
+          "price_in_cents": 56000
         },
         "20": {
-          "price_in_unit": 1035
+          "price_in_cents": 103500
         },
         "50": {
-          "price_in_unit": 2375
+          "price_in_cents": 237500
         }
       },
       "NOK": {
         "2": {
-          "price_in_unit": 1848
+          "price_in_cents": 184800
         },
         "3": {
-          "price_in_unit": 2772
+          "price_in_cents": 277200
         },
         "4": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "5": {
-          "price_in_unit": 4620
+          "price_in_cents": 462000
         },
         "10": {
-          "price_in_unit": 5150
+          "price_in_cents": 515000
         },
         "20": {
-          "price_in_unit": 9505
+          "price_in_cents": 950500
         },
         "50": {
-          "price_in_unit": 21780
+          "price_in_cents": 2178000
         }
       },
       "NZD": {
         "2": {
-          "price_in_unit": 302
+          "price_in_cents": 30200
         },
         "3": {
-          "price_in_unit": 453
+          "price_in_cents": 45300
         },
         "4": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "5": {
-          "price_in_unit": 755
+          "price_in_cents": 75500
         },
         "10": {
-          "price_in_unit": 840
+          "price_in_cents": 84000
         },
         "20": {
-          "price_in_unit": 1555
+          "price_in_cents": 155500
         },
         "50": {
-          "price_in_unit": 3565
+          "price_in_cents": 356500
         }
       },
       "SEK": {
         "2": {
-          "price_in_unit": 1848
+          "price_in_cents": 184800
         },
         "3": {
-          "price_in_unit": 2772
+          "price_in_cents": 277200
         },
         "4": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "5": {
-          "price_in_unit": 4620
+          "price_in_cents": 462000
         },
         "10": {
-          "price_in_unit": 5150
+          "price_in_cents": 515000
         },
         "20": {
-          "price_in_unit": 9505
+          "price_in_cents": 950500
         },
         "50": {
-          "price_in_unit": 21780
+          "price_in_cents": 2178000
         }
       },
       "SGD": {
         "2": {
-          "price_in_unit": 336
+          "price_in_cents": 33600
         },
         "3": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "4": {
-          "price_in_unit": 672
+          "price_in_cents": 67200
         },
         "5": {
-          "price_in_unit": 840
+          "price_in_cents": 84000
         },
         "10": {
-          "price_in_unit": 935
+          "price_in_cents": 93500
         },
         "20": {
-          "price_in_unit": 1730
+          "price_in_cents": 173000
         },
         "50": {
-          "price_in_unit": 3960
+          "price_in_cents": 396000
         }
       },
       "USD": {
         "2": {
-          "price_in_unit": 252
+          "price_in_cents": 25200
         },
         "3": {
-          "price_in_unit": 376
+          "price_in_cents": 37600
         },
         "4": {
-          "price_in_unit": 495
+          "price_in_cents": 49500
         },
         "5": {
-          "price_in_unit": 615
+          "price_in_cents": 61500
         },
         "10": {
-          "price_in_unit": 695
+          "price_in_cents": 69500
         },
         "20": {
-          "price_in_unit": 1295
+          "price_in_cents": 129500
         },
         "50": {
-          "price_in_unit": 2970
+          "price_in_cents": 297000
         }
       }
     }
@@ -515,510 +515,510 @@
     "professional": {
       "AUD": {
         "2": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "3": {
-          "price_in_unit": 906
+          "price_in_cents": 90600
         },
         "4": {
-          "price_in_unit": 1208
+          "price_in_cents": 120800
         },
         "5": {
-          "price_in_unit": 1510
+          "price_in_cents": 151000
         },
         "10": {
-          "price_in_unit": 2810
+          "price_in_cents": 281000
         },
         "20": {
-          "price_in_unit": 5185
+          "price_in_cents": 518500
         },
         "50": {
-          "price_in_unit": 11880
+          "price_in_cents": 1188000
         }
       },
       "CAD": {
         "2": {
-          "price_in_unit": 570
+          "price_in_cents": 57000
         },
         "3": {
-          "price_in_unit": 854
+          "price_in_cents": 85400
         },
         "4": {
-          "price_in_unit": 1138
+          "price_in_cents": 113800
         },
         "5": {
-          "price_in_unit": 1420
+          "price_in_cents": 142000
         },
         "10": {
-          "price_in_unit": 2650
+          "price_in_cents": 265000
         },
         "20": {
-          "price_in_unit": 4895
+          "price_in_cents": 489500
         },
         "50": {
-          "price_in_unit": 11220
+          "price_in_cents": 1122000
         }
       },
       "CHF": {
         "2": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "3": {
-          "price_in_unit": 756
+          "price_in_cents": 75600
         },
         "4": {
-          "price_in_unit": 1008
+          "price_in_cents": 100800
         },
         "5": {
-          "price_in_unit": 1260
+          "price_in_cents": 126000
         },
         "10": {
-          "price_in_unit": 2340
+          "price_in_cents": 234000
         },
         "20": {
-          "price_in_unit": 4320
+          "price_in_cents": 432000
         },
         "50": {
-          "price_in_unit": 9900
+          "price_in_cents": 990000
         }
       },
       "DKK": {
         "2": {
-          "price_in_unit": 3024
+          "price_in_cents": 302400
         },
         "3": {
-          "price_in_unit": 4536
+          "price_in_cents": 453600
         },
         "4": {
-          "price_in_unit": 6048
+          "price_in_cents": 604800
         },
         "5": {
-          "price_in_unit": 7560
+          "price_in_cents": 756000
         },
         "10": {
-          "price_in_unit": 14040
+          "price_in_cents": 1404000
         },
         "20": {
-          "price_in_unit": 25920
+          "price_in_cents": 2592000
         },
         "50": {
-          "price_in_unit": 59400
+          "price_in_cents": 5940000
         }
       },
       "EUR": {
         "2": {
-          "price_in_unit": 470
+          "price_in_cents": 47000
         },
         "3": {
-          "price_in_unit": 704
+          "price_in_cents": 70400
         },
         "4": {
-          "price_in_unit": 936
+          "price_in_cents": 93600
         },
         "5": {
-          "price_in_unit": 1168
+          "price_in_cents": 116800
         },
         "10": {
-          "price_in_unit": 2185
+          "price_in_cents": 218500
         },
         "20": {
-          "price_in_unit": 4030
+          "price_in_cents": 403000
         },
         "50": {
-          "price_in_unit": 9240
+          "price_in_cents": 924000
         }
       },
       "GBP": {
         "2": {
-          "price_in_unit": 396
+          "price_in_cents": 39600
         },
         "3": {
-          "price_in_unit": 592
+          "price_in_cents": 59200
         },
         "4": {
-          "price_in_unit": 788
+          "price_in_cents": 78800
         },
         "5": {
-          "price_in_unit": 984
+          "price_in_cents": 98400
         },
         "10": {
-          "price_in_unit": 1870
+          "price_in_cents": 187000
         },
         "20": {
-          "price_in_unit": 3455
+          "price_in_cents": 345500
         },
         "50": {
-          "price_in_unit": 7920
+          "price_in_cents": 792000
         }
       },
       "NOK": {
         "2": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "3": {
-          "price_in_unit": 5544
+          "price_in_cents": 554400
         },
         "4": {
-          "price_in_unit": 7392
+          "price_in_cents": 739200
         },
         "5": {
-          "price_in_unit": 9240
+          "price_in_cents": 924000
         },
         "10": {
-          "price_in_unit": 17160
+          "price_in_cents": 1716000
         },
         "20": {
-          "price_in_unit": 31680
+          "price_in_cents": 3168000
         },
         "50": {
-          "price_in_unit": 72600
+          "price_in_cents": 7260000
         }
       },
       "NZD": {
         "2": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "3": {
-          "price_in_unit": 906
+          "price_in_cents": 90600
         },
         "4": {
-          "price_in_unit": 1208
+          "price_in_cents": 120800
         },
         "5": {
-          "price_in_unit": 1510
+          "price_in_cents": 151000
         },
         "10": {
-          "price_in_unit": 2810
+          "price_in_cents": 281000
         },
         "20": {
-          "price_in_unit": 5185
+          "price_in_cents": 518500
         },
         "50": {
-          "price_in_unit": 11880
+          "price_in_cents": 1188000
         }
       },
       "SEK": {
         "2": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "3": {
-          "price_in_unit": 5544
+          "price_in_cents": 554400
         },
         "4": {
-          "price_in_unit": 7392
+          "price_in_cents": 739200
         },
         "5": {
-          "price_in_unit": 9240
+          "price_in_cents": 924000
         },
         "10": {
-          "price_in_unit": 17160
+          "price_in_cents": 1716000
         },
         "20": {
-          "price_in_unit": 31680
+          "price_in_cents": 3168000
         },
         "50": {
-          "price_in_unit": 72600
+          "price_in_cents": 7260000
         }
       },
       "SGD": {
         "2": {
-          "price_in_unit": 672
+          "price_in_cents": 67200
         },
         "3": {
-          "price_in_unit": 1008
+          "price_in_cents": 100800
         },
         "4": {
-          "price_in_unit": 1344
+          "price_in_cents": 134400
         },
         "5": {
-          "price_in_unit": 1680
+          "price_in_cents": 168000
         },
         "10": {
-          "price_in_unit": 3120
+          "price_in_cents": 312000
         },
         "20": {
-          "price_in_unit": 5760
+          "price_in_cents": 576000
         },
         "50": {
-          "price_in_unit": 13200
+          "price_in_cents": 1320000
         }
       },
       "USD": {
         "2": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "3": {
-          "price_in_unit": 752
+          "price_in_cents": 75200
         },
         "4": {
-          "price_in_unit": 990
+          "price_in_cents": 99000
         },
         "5": {
-          "price_in_unit": 1230
+          "price_in_cents": 123000
         },
         "10": {
-          "price_in_unit": 2340
+          "price_in_cents": 234000
         },
         "20": {
-          "price_in_unit": 4320
+          "price_in_cents": 432000
         },
         "50": {
-          "price_in_unit": 9900
+          "price_in_cents": 990000
         }
       }
     },
     "collaborator": {
       "AUD": {
         "2": {
-          "price_in_unit": 302
+          "price_in_cents": 30200
         },
         "3": {
-          "price_in_unit": 453
+          "price_in_cents": 45300
         },
         "4": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "5": {
-          "price_in_unit": 755
+          "price_in_cents": 75500
         },
         "10": {
-          "price_in_unit": 1405
+          "price_in_cents": 140500
         },
         "20": {
-          "price_in_unit": 2590
+          "price_in_cents": 259000
         },
         "50": {
-          "price_in_unit": 5940
+          "price_in_cents": 594000
         }
       },
       "CAD": {
         "2": {
-          "price_in_unit": 285
+          "price_in_cents": 28500
         },
         "3": {
-          "price_in_unit": 427
+          "price_in_cents": 42700
         },
         "4": {
-          "price_in_unit": 569
+          "price_in_cents": 56900
         },
         "5": {
-          "price_in_unit": 710
+          "price_in_cents": 71000
         },
         "10": {
-          "price_in_unit": 1325
+          "price_in_cents": 132500
         },
         "20": {
-          "price_in_unit": 2450
+          "price_in_cents": 245000
         },
         "50": {
-          "price_in_unit": 5610
+          "price_in_cents": 561000
         }
       },
       "CHF": {
         "2": {
-          "price_in_unit": 252
+          "price_in_cents": 25200
         },
         "3": {
-          "price_in_unit": 378
+          "price_in_cents": 37800
         },
         "4": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "5": {
-          "price_in_unit": 630
+          "price_in_cents": 63000
         },
         "10": {
-          "price_in_unit": 1170
+          "price_in_cents": 117000
         },
         "20": {
-          "price_in_unit": 2160
+          "price_in_cents": 216000
         },
         "50": {
-          "price_in_unit": 4950
+          "price_in_cents": 495000
         }
       },
       "DKK": {
         "2": {
-          "price_in_unit": 1512
+          "price_in_cents": 151200
         },
         "3": {
-          "price_in_unit": 2268
+          "price_in_cents": 226800
         },
         "4": {
-          "price_in_unit": 3024
+          "price_in_cents": 302400
         },
         "5": {
-          "price_in_unit": 3780
+          "price_in_cents": 378000
         },
         "10": {
-          "price_in_unit": 7020
+          "price_in_cents": 702000
         },
         "20": {
-          "price_in_unit": 12960
+          "price_in_cents": 1296000
         },
         "50": {
-          "price_in_unit": 29700
+          "price_in_cents": 2970000
         }
       },
       "EUR": {
         "2": {
-          "price_in_unit": 235
+          "price_in_cents": 23500
         },
         "3": {
-          "price_in_unit": 352
+          "price_in_cents": 35200
         },
         "4": {
-          "price_in_unit": 468
+          "price_in_cents": 46800
         },
         "5": {
-          "price_in_unit": 584
+          "price_in_cents": 58400
         },
         "10": {
-          "price_in_unit": 1090
+          "price_in_cents": 109000
         },
         "20": {
-          "price_in_unit": 2015
+          "price_in_cents": 201500
         },
         "50": {
-          "price_in_unit": 4620
+          "price_in_cents": 462000
         }
       },
       "GBP": {
         "2": {
-          "price_in_unit": 198
+          "price_in_cents": 19800
         },
         "3": {
-          "price_in_unit": 296
+          "price_in_cents": 29600
         },
         "4": {
-          "price_in_unit": 394
+          "price_in_cents": 39400
         },
         "5": {
-          "price_in_unit": 492
+          "price_in_cents": 49200
         },
         "10": {
-          "price_in_unit": 935
+          "price_in_cents": 93500
         },
         "20": {
-          "price_in_unit": 1730
+          "price_in_cents": 173000
         },
         "50": {
-          "price_in_unit": 3960
+          "price_in_cents": 396000
         }
       },
       "NOK": {
         "2": {
-          "price_in_unit": 1848
+          "price_in_cents": 184800
         },
         "3": {
-          "price_in_unit": 2772
+          "price_in_cents": 277200
         },
         "4": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "5": {
-          "price_in_unit": 4620
+          "price_in_cents": 462000
         },
         "10": {
-          "price_in_unit": 8580
+          "price_in_cents": 858000
         },
         "20": {
-          "price_in_unit": 15840
+          "price_in_cents": 1584000
         },
         "50": {
-          "price_in_unit": 36300
+          "price_in_cents": 3630000
         }
       },
       "NZD": {
         "2": {
-          "price_in_unit": 302
+          "price_in_cents": 30200
         },
         "3": {
-          "price_in_unit": 453
+          "price_in_cents": 45300
         },
         "4": {
-          "price_in_unit": 604
+          "price_in_cents": 60400
         },
         "5": {
-          "price_in_unit": 755
+          "price_in_cents": 75500
         },
         "10": {
-          "price_in_unit": 1405
+          "price_in_cents": 140500
         },
         "20": {
-          "price_in_unit": 2590
+          "price_in_cents": 259000
         },
         "50": {
-          "price_in_unit": 5940
+          "price_in_cents": 594000
         }
       },
       "SEK": {
         "2": {
-          "price_in_unit": 1848
+          "price_in_cents": 184800
         },
         "3": {
-          "price_in_unit": 2772
+          "price_in_cents": 277200
         },
         "4": {
-          "price_in_unit": 3696
+          "price_in_cents": 369600
         },
         "5": {
-          "price_in_unit": 4620
+          "price_in_cents": 462000
         },
         "10": {
-          "price_in_unit": 8580
+          "price_in_cents": 858000
         },
         "20": {
-          "price_in_unit": 15840
+          "price_in_cents": 1584000
         },
         "50": {
-          "price_in_unit": 36300
+          "price_in_cents": 3630000
         }
       },
       "SGD": {
         "2": {
-          "price_in_unit": 336
+          "price_in_cents": 33600
         },
         "3": {
-          "price_in_unit": 504
+          "price_in_cents": 50400
         },
         "4": {
-          "price_in_unit": 672
+          "price_in_cents": 67200
         },
         "5": {
-          "price_in_unit": 840
+          "price_in_cents": 84000
         },
         "10": {
-          "price_in_unit": 1560
+          "price_in_cents": 156000
         },
         "20": {
-          "price_in_unit": 2880
+          "price_in_cents": 288000
         },
         "50": {
-          "price_in_unit": 6600
+          "price_in_cents": 660000
         }
       },
       "USD": {
         "2": {
-          "price_in_unit": 252
+          "price_in_cents": 25200
         },
         "3": {
-          "price_in_unit": 376
+          "price_in_cents": 37600
         },
         "4": {
-          "price_in_unit": 495
+          "price_in_cents": 49500
         },
         "5": {
-          "price_in_unit": 615
+          "price_in_cents": 61500
         },
         "10": {
-          "price_in_unit": 1170
+          "price_in_cents": 117000
         },
         "20": {
-          "price_in_unit": 2160
+          "price_in_cents": 216000
         },
         "50": {
-          "price_in_unit": 4950
+          "price_in_cents": 495000
         }
       }
     }

+ 4 - 2
services/web/frontend/js/features/plans/group-plan-modal/index.js

@@ -22,10 +22,12 @@ function updateGroupPlanView() {
   const modalEl = document.querySelector('[data-ol-group-plan-modal]')
   const { planCode, size, currency, usage } = getFormValues()
 
-  const priceInUnit = groupPlans[usage][planCode][currency][size].price_in_unit
+  const priceInCents =
+    groupPlans[usage][planCode][currency][size].price_in_cents
+  const priceInUnit = (priceInCents / 100).toFixed()
   const currencySymbol = currencySymbols[currency]
   const displayPrice = `${currencySymbol}${priceInUnit}`
-  const perUserPrice = parseFloat((priceInUnit / size).toFixed(2))
+  const perUserPrice = parseFloat((priceInCents / 100 / size).toFixed(2))
 
   modalEl.querySelectorAll('[data-ol-group-plan-plan-code]').forEach(el => {
     el.hidden = el.getAttribute('data-ol-group-plan-plan-code') !== planCode

+ 3 - 2
services/web/frontend/js/main/subscription-dashboard.js

@@ -161,8 +161,9 @@ App.controller(
       let perUserDisplayPricePlaceholder = '...'
       const currencySymbol = $scope.options.currencySymbols[currency]
       if (taxRate === 0) {
-        const basePriceInUnit =
-          $scope.groupPlans[usage][plan_code][currency][size].price_in_unit
+        const basePriceInCents =
+          $scope.groupPlans[usage][plan_code][currency][size].price_in_cents
+        const basePriceInUnit = (basePriceInCents / 100).toFixed()
         recurlyPricePlaceholder.total = `${currencySymbol}${basePriceInUnit}`
         perUserDisplayPricePlaceholder = getPricePerUser(
           basePriceInUnit,

+ 3 - 1
services/web/scripts/recurly/get_recurly_group_prices.js

@@ -23,7 +23,9 @@ async function getRecurlyGroupPrices() {
         prices[usage] = prices[usage] || {}
         prices[usage][type] = prices[usage][type] || {}
         prices[usage][type][currency] = prices[usage][type][currency] || {}
-        prices[usage][type][currency][size] = { price_in_unit: unitAmount }
+        prices[usage][type][currency][size] = {
+          price_in_cents: unitAmount * 100,
+        }
       })
     }
   }

+ 2 - 2
services/web/test/unit/src/Subscription/SubscriptionHelperTests.js

@@ -18,12 +18,12 @@ const plans = {
   },
   expensiveGroup: {
     plancode: 'group_expensive',
-    price_in_unit: 495,
+    price_in_cents: 49500,
     groupPlan: true,
   },
   cheapGroup: {
     plancode: 'group_cheap',
-    price_in_unit: 10,
+    price_in_cents: 1000,
     groupPlan: true,
   },
   bad: {},