Auctionator

Auctionator

133M Downloads

Commodities not bought at the displayed price

nicolasbraun opened this issue ยท 3 comments

commented

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/

commented

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

commented

Agreed for the infinite loop, that's probably why the blizzard API is implemented this way.
Thanks for your reply

commented

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, call C_AuctionHouse.CancelCommoditiesPurchase
  • Call C_AuctionHouse.ConfirmCommoditiesPurchase to finalize