The only rule that matters for in-app purchase identifiers in cross-platform Corona SDK apps
There’s only one important rule for iAP identifiers:
If you care about maintaining case-sensitive consistency with your identifiers across all platforms, you’ll need to keep all the letters lowercase because Google doesn’t allow capital letters.
Seriously, that’s it…the only rule that matters. So, don’t use capital letters for your iAP identifiers on iOS even though it will allow you to. This will only result in one small bit of inconsistency later that you’ll have to deal with.
I’ve seen recommendations for creating identifiers that are similar to your package names. Something along the lines of com.companyname.appname.iapname. There’s nothing wrong with that approach, but it’s important to be aware that it’s up to you.
I personally used identifiers such as “mdj_unlock_50” where mdj is an abbreviation I use to identify the app (million dollar jukebox), and 50 is the decade of content the user has paid to unlock. Using the underscore provides an easy delimiter for parsing in the store transaction callback, without having any confusion that it’s a package name of any sort.