Can a user remove an item or multiple items from the bundle purchase? Say for instance they dislike one of the items or can only afford a few items in the bundle.
Hey sorry about this! We have a fix for this that will be released by Friday.
This will only happen in Studio on Windows machines and will not happen in production when you publish your game.
Until our fix goes out, if you want to avoid this from happening in studio to test the PromptBulkPurchaseFinished event or something, you can use items with ids smaller than 2147483647 (max 32 bit integer).
Thatâs great to hear! Thanks for letting me know!!
They should start including all possible purchasing products to be bought in bulk like a shopping cart experience not only for avatar items.
This is amazing for a project Iâm working on, really helps simplify the process. Canât wait to try using this!
This is super exciting news for catalog games and reduces the need for excess API calls!
Does the Roblox marketplace checkout use the same underlying API?
Why limit it? This could be useful for other things such as bulk buying products and passes if we wanted to add a cart like system for developer products.
For some reason in my experiences it is prompting users with the resale copies even though there is still stock remaining?
I was testing this new API out and (I think) noticed some issues.
Simply put it doesnât unlock the mouse meaning you can just force this onto a playerâs screen without removal. Secondly, ESC doesnât close the prompt and instead opens up the menu.
Again Iâm not sure if this was intentional or not but yah.
MarketplaceProductType seems extremely similar to AvatarItemType; is there any reason why the latter Enum wouldnât have worked?
Like you guessed, this is so that we have the flexibility to extend to other types in the future, potentially dev products like people in these comments have been requesting
PromptBulkPurchaseFinished is entirely trust-based from the client
This is similar behavior to existing APIs like PromptPurchase - for that API even if you listen to it from server side, it is still not a trustable event since it can be spoofed by the client, however some devs are not aware of this vulnerability so they trust the event and the experience is exploited. To close this misunderstanding, we explicitly made it client-only.
That said, we understand this gap and are working on later improvements to close it.
what happens if a specific item is unavailable or a user doesnât have enough Robux for all of the items but has enough for some of them
Like you guessed, it will purchase the items that can be purchased. For the items that cannot, refer to the MarketplaceItemPurchaseStatus for all the returned reasons that the items could fail.
This is likely because the particular item you are prompting is not available for sale in your experience for the original copies. But if you think thatâs not the case, please DM me with more details on your experience / sample item and we can investigate.
Just to make sure I understand correctly, using something like MarketplaceService.PromptPurchaseFinished(âŠ) on the server, when :PromptPurchase() was called on the client (or anywhere), is not secure and can be spoofed/faked?
Is the recommendation to run an ownership check on each item that was purchased on the server to make sure the client actually owns it?
See the PromptPurchaseFinished docs, specifically: This may not accurately reflect if the purchase itself has successfully processed
To elaborate further, the isPurchased field is based on an Ownership check, so it can be trusted insofar as to say âthe user does own this itemâ, but it doesnât necessarily mean that the user purchased the item in your experience, or that this event is the singular purchase event (eg you could get multiple PromptPurchaseFinished events for one purchase). Thus the guarantees that this offers are the same as if you checked ownership manually.
This update is amazing to bring in more revenue. Since that is the motive for this change, then how about the 10 purchase requests per minute mechanism should be lifted?
At one point there was no delay on buying products or gamepasses in roblox. Now there is, now this change might have been born due to third-party robux selling websites. It does for sure make their operations harder, but it also decreases the total revenue for the developers, as we are going to miss out on so much potentiel revenue.
I absolutely love this change! Thank you for this.
Iâd REALLY love for this to be a feature implemented! Gifting of UGC purchases would be a huge deal that I really feel has a ton of potential.
Iâd also love to know the status of accessory customization (ie. translation, rotation, scaling).
I feel like for Dev Products; since you can buy them multiple times; maybe have like a little section for the dev product and there should be a prompt that would say; âHow Much of this Dev Product would you want?â, Then once the player inputs the amount of the dev product they need, then the price of the product multiplied by the quantity will be calculated for total cost.
tl;dr; For Dev Products - it should be the quantity of said product by player X price of product = total cost
Thatâs an awesome idea for dev products; my idea was more so aimed at gamepasses. No more having to make separate dev products for 10 coins, 50 coins, 100 coins and 1000 - players would simply be able to select how many 10s they wanted (or even better; type in an amount) and buy multiple of them at once, with a GUI showing the total amount of coins theyâd receive after purchasing. Almost like a âquantityâ dropdown you see on shopping websites these days when viewing your cart.
Still waiting for the ability to actually equip more than 4 hats at once, and multiple LC.