Issue Description
At the bottom of the Developer Products article it states 'Roblox itself does NOT record the purchase history of developer products by specific players, although you can view overall daily/monthly stats as outlined here. If you want to track player-specific purchase history, it’s your responsibility to store the data, typically with data stores.'
However on the contrary, Roblox does in fact record the purchase history of developer products, and this practice is practically unnecessary.
To be clear, the emphasis here is on player-specific, e.g. you can see a full log of individual sales, but we currently do not provide easy ways to filter this data by a specific player (you can only see the full list sorted by time). This is what the article is currently referring to.
We can probably improve what words are bolded to make this more clear. Thanks for the feedback.
In addition, while storing player-specific purchase history is entirely up to the developer, important to note that chances become less difficult reaching 4MB data limit per player. (Generalized concept)
DataStores are an in-house example of purchase history but they’re relatively poor unless it’s just a small one-off experience. If the 4MB limit poses a problem you should be clearing off very old purchases that have been confirmed granted and don’t need further keeping.
If you want permanency on your records and you’re operating a serious and big project you would probably use another platform to record purchases that integrates well with any analytics tools you have so that there’s usefulness in keeping records, apart from other use cases like rollbacks/restorations.
Anyhow, not really the subject of the thread, though, this should be implicit if you think about the fact that limits for DataStores exist. Don’t think an additional addendum would be needed here, just clarification on the wording choice about sales history.
Thank you for the clarification. Out of curiosity: If this is the case, shouldn’t gamepasses be treat the same way as there’s no way to check player-specific history for them either? I haven’t seen this sort of message on any of the Gamepass-related articles.
In this regard, this note seems to me like a ‘good practice’ advise. Roblox technically does record the purchase history of developer products by specific players in the Sales of Goods page. It just doesn’t let you filter through the records at this point in time.
Which is the case for any sales type. There are of course other ways to potentially track player-specific purchases on products such as Gamepasses by checking the player’s inventory for example, but this also doesn’t work reliably.
It looks like you solved this one yourself, but just for other people reading along: there is less of a need for a detailed per-player purchase log for game passes because they are one-time purchases, so it is easier to find out what the user has bought and what they have not bought yet. This is not the case for developer products since they can be bought multiple times, and there is no API to query if or how often a player has bought it.