Commodities not bought at the displayed price
nicolasbraun opened this issue ยท 3 comments
What version(s) of WoW are you using?
Retail
What version of Auctionator?
11.0.9
What isn't working? What was supposed to happen?
At this time when prices are very fluctuating, sometimes commodities are not bought at the price displayed in the confirmation popup
pattern-
Search for commodities
- Result shows some at 10g
- Click Buy
- Confirmation popups says will you buy 1 for 10g, or maybe 15g if it went up
- Confirm
- Commodity is bought for 30
I think this is because during the time to click the Confirm button, the commodity is no longer available and the API
C_AuctionHouse.ConfirmCommodityPurchase
does not allow to pass a price, but only an amount.
Maybe to mitigate the risk we could recheck the item is still available before confirming. It might still buy too high but maybe less often.
Are you experiencing any lua errors
No response
Anything else?
For reference some guy reported the same issue on TSM a while ago https://www.reddit.com/r/woweconomy/comments/hokxqa/be_careful_when_buying_out_items_using_tsm/
Maybe to mitigate the risk we could recheck the item is still available before confirming. It might still buy too high but maybe less often.
This won't solve the issue because the AH is too overloaded, there will be a delay regardless if the API calls are made back to back. There isn't a great way to fix this without Blizzard's support/changes as far as I know with the current API. Every addon has the same issue
If this was implemented we could also have an issue of never being able to buy an item because it's constantly changing prices
Agreed for the infinite loop, that's probably why the blizzard API is implemented this way.
Thanks for your reply
I am currently implementing something for the AH too, to snipe baiters, and I had success doing the following:
- Call
C_AuctionHouse.SendSearchQuery
- Select what you want, save the info somewhere (quantity, unitPrice)
- Call
C_AuctionHouse.StartCommoditiesPurchase
with the saved info - Call
C_AuctionHouse.SendSearchQuery
again, check if the amount present is >= the saved info. If not, callC_AuctionHouse.CancelCommoditiesPurchase
- Call
C_AuctionHouse.ConfirmCommoditiesPurchase
to finalize