unity – Can I change an Android IAP’s type from Consumable to Non-Consumable?

I was inspecting a bug with one of our old Android games, where a “level pack” in-app purchase was being lost after the player re-installed the game etc.

The issue became obvious when I realized that it was being declared as Consumable.

configurationBuilder.AddProduct(ID_LEVEL_PACK,  ProductType.Consumable);

Now, I am contemplating what the correct fix is.

  1. Will it suffice to simply change the ProductType? I am skeptical, because it feels odd to me that Google would let a developer to simply change the type of an in-app product from one version to another.

  2. Create a new product with a new ID and correct ProductType, then replace the old product. This doesn’t sound bad, but is there any way we can properly deal with the people who unfortunately purchased the Consumable version? From my understanding using Unity’s Purchasing package doesn’t expose any API to query purchased products.

The first option would be ideal if it were possible and also if Unity could retroactively “restore” purchases made when the IAP was still Consumable. From my understanding, Unity performs said restoration upon re-installation (on Android).

While I am in the process of testing that, this seems like a fairly delicate issue so I’d like to see if anyone has insight on this matter: can I change a product’s type from Consumable to Non-Consumable, and will Unity retroactively restore the old purchases?