Skip to main content
Question

Bug: AmazonStoreProduct period is null when it contains a free trial

  • 1 July 2024
  • 0 replies
  • 14 views

We have found an issue during Live App Testing on the Amazon App Store. 

In the Amazon Developer Console we have set up one subscription in-app items with two terms: 

  • Monthly, paid subscription, no free trial, no promotional price
  • Annually, paid subscription, free trial (1 month), no promotional price. 

When testing our app with Amazon Live App Testing, we found that the annual subscription package object from RevenueCat does not have a period set (it’s “period=null”), however, the monthly subscription has a period set as expected (“period=Period(value=1, "unit=MONTH", iso8601=P1M)”). The main difference between the two is that the annual subscription has a free trial period. 

This hinders us from displaying our available packages as desired with the proper subscription period. 

We’re using RevenueCat v8.1.0. 

My device is a Amazon Fire HD 8 (12th Generation), running Android 11 (SDK 30).
 

Here are the RevenueCat Package objects, logged from a Live App Testing build of our app from the Amazon App Store:

 

Monthly:

   Package("identifier=$rc_monthly",

   "packageType=MONTHLY",

   "product=AmazonStoreProduct(id=XXX",

   "type=SUBS",

   "name=Pro Access",

   "title=Pro Access",

   "description=XXX",

   period=Period(value=1,

   "unit=MONTH",

   iso8601=P1M),


   price=Price(formatted=XXX €,

   amountMicros=XXX,

   "currencyCode=EUR)",

   "subscriptionOptions=null",

   "defaultOption=null",

   "iconUrl=XXX,

   "freeTrialPeriod=null",

   "originalProductJSON="{

      "sku":"XXX",

      "productType":"SUBSCRIPTION",

      "description":"XXX",

      "price":"XXX €",

      "smallIconUrl":"XXX",

      "title":"Pro Access",

      "coinsRewardAmount":0,

      "subscriptionPeriod":"Monthly"

   },

   presentedOfferingContext=PresentedOfferingContext(offeringIdentifier=XXX,

   "placementIdentifier=null",

   "targetingContext=null))",

   presentedOfferingContext=PresentedOfferingContext(offeringIdentifier=XXX,

   "placementIdentifier=null",

   "targetingContext=null))") 

 

Annual:


   "Package(identifier=$rc_annual",

   "packageType=ANNUAL",

   "product=AmazonStoreProduct(id=XXX",

   "type=SUBS",

   "name=Pro Access",

   "title=Pro Access",

   "description=XXX",

   "period=null",

   price=Price(formatted=XXX €,

   amountMicros=XXX,

   "currencyCode=EUR)",

   "subscriptionOptions=null",

   "defaultOption=null",

   "iconUrl=XXX,

   freeTrialPeriod=Period(value=1,

   "unit=MONTH",

   iso8601=P1M),


   "originalProductJSON="{

      "sku":"XXX",

      "productType":"SUBSCRIPTION",

      "description":"XXX",

      "price":"XXX €",

      "smallIconUrl":"XXX",

      "title":"Pro Access",

      "coinsRewardAmount":0,

      "subscriptionPeriod":"Annual",

      "freeTrialPeriod":"Monthly"


   },

 presentedOfferingContext=PresentedOfferingContext(offeringIdentifier=XXX,

   "placementIdentifier=null",

   "targetingContext=null))",

 presentedOfferingContext=PresentedOfferingContext(offeringIdentifier=XXX,

   "placementIdentifier=null",

   "targetingContext=null))"

 

Please also note that, when using Amazon App Tester App with the amazon.sdktester.json exported from the Amazon developer console and a debug build from our app, the in-app products are received as expected from the RevenueCat SDK, and here, the annual subscription has both a “period” and the “freeTrialPeriod” info set. It only is broken with Amazon Live App Testing. 

 

Help is highly appreciated. If you can’t point us to where we might be doing something wrong, we’d likely go ahead and transform the nested “originalProductJSON” as it contains the necessary info. 

 

Thank you! 

This post has been closed for comments