Ian Oliver suggested an idea · Oct 18, 2017 at 06:03 PM · CloudScriptapis
Currently GrantItemsToUsers allows you to grant items from only a single catalog. This is owing to the catalog version being specified separately from the items granted.
It would be great if it was possible to add an optional parameter on the item grants for CatalogVersion. If no catalog is specified, it can use the original CatalogVersion parameter value.
This would be useful to us to reduce the number of calls to GrantItemsForUsers from our cloud script (especially important for actions which are, by default, very limited in call counts).
Brendan commented · Oct 18, 2017 at 06:46 PM
The design of the catalog system is that you have one catalog for the game, which you iterate on as you update it - hence, the reason it's "CatalogVersion", rather than "CatalogId". Some operations - notably receipt validation - only work with the Primary catalog, in fact. In general, we recommend using that design pattern, and subdivide the catalog items using Stores (which you can also then target by player segment).
If that is the case, it seems like PlayFab may want to update/correct their recipes. Specifically:
All of which explicitly recommends the creation of a separate and distinct catalogs for various purposes separate from the default purchase catalogs.
We have followed this example and we handle special offers, rewards and special virtual currency purchases in separate catalogs. This is part organizational nicety, part efficiency (reducing default catalog bloat), and, apparently inline with the PlayFab recipes I sited above.
Guidance appreciated.
Yes, that's absolutely the case - I have a bug open on the recipes to have them updated to reflect our best practices. Apologies for any confusion caused.
Just chiming in to say that same as @Ian Oliver we are also using multiple catalogs to denote different types of item listings to great effect. The monotlithic approach to a single go-to inventory for any virtual item does not work well with our game, where different game contexts provide entirely different listings, for items, pictures, collectibles, emojis, etc.
So far has worked fine!
That being said, was very difficult for us to understand what was the official "best practice" in that regard.
We would love to know what you need. Submit your ideas and upvote others to help us prioritize.
Add PurchaseItem to the Server API
API methods/CloudScript functions to interact with multiple Shared Groups at once
Friend Request with Accept/Decline option
Remove old Cloud Script revisions using Admin API
Add VC Recharge Rate to client and server APIs
Cloud Script environment variables and Admin API to update them
Playstream events should show input parameters/arguments
Add ability to configure CloudScript repository
server.EvaluateRandomResultTableRequest() to accept multiple TableIds.