Download
(5Kb)
Download
Updated: 11-20-22 01:40 AM
Compatibility:
Dragonflight (10.0.2)
Updated:11-20-22 01:40 AM
Created:08-18-12 08:40 AM
Downloads:4,324
Favorites:11
MD5:

Bulk Buy

Version: 1.10
by: Choonstertwo [More]

Bulk Buy allows you to buy stackable items in any quantity (even if the merchant sells them in stacks greater than 1) and also allows you to buy multiple stacks at once (including non-stackable items).

When purchasing items that are sold in stacks greater than 1, the left and right buttons on the stack split frame will now decrement and increment by 1 by default. When the split stack modifier (Shift) is held, the left and right buttons will decrement and increment by the stack count instead.

When purchasing items that are sold for non-gold currencies in stacks greater than 1, the AddOn will buy the largest multiple of the stack size sold by the merchant less than the amount entered in the stack split popup.

There is no in-game configuration, but if for some odd reason you need to buy more than 10,000 of an item at once you can edit the MAX_STACK number at the top of the core.lua file to raise the limit.

Bulk Buy was inspired by an AddOn with very similar functionality I used a long time ago whose name I can't remember. I couldn't find this AddOn on WoW Interface or Curse, so I decided to recreate its functionality myself. Although the functionality is borrowed, the code itself is completely my own work.

Bulk Buy
1.10 (2022-11-20)
Full Changelog Previous Releases
  • 1.10
  • Bump TOC Interface version to 10.0.2
  • Add Lua VS Code extension settings
  • Add script to package and publish to WoW game directories
  • Run GH Actions workflow on all pushes, not just tags
  • Create GitHub Actions workflow for the BigWigs packager script
    - Remove Travis CI configuration
  • Ignore VS Code workspace
Optional Files (0)


Post A Reply Comment Options
Unread 09-21-12, 07:09 AM  
Angrysteel
A Murloc Raider

Forum posts: 6
File comments: 203
Uploads: 0
Message: Interface\AddOns\BulkBuy\core.lua:10: attempt to compare number with nil
Time: 09/21/12 08:09:06
Count: 1
Stack: [C]: ?
Interface\AddOns\BulkBuy\core.lua:10: in function `BulkBuyMerchantItem'
Interface\AddOns\BulkBuy\core.lua:36: in function `OnAccept'
Interface\FrameXML\StaticPopup.lua:3827: in function `StaticPopup_OnClick'
[string "*:OnClick"]:1: in function <[string "*:OnClick"]:1>

Locals:

Got this error when trying to buy a heirloom item.
Last edited by Angrysteel : 09-21-12 at 07:12 AM.
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 07:21 AM  
Choonstertwo
A Chromatic Dragonspawn
 
Choonstertwo's Avatar
AddOn Author - Click to view AddOns

Forum posts: 194
File comments: 105
Uploads: 34
Originally Posted by Angrysteel
Message: Interface\AddOns\BulkBuy\core.lua:10: attempt to compare number with nil
Time: 09/21/12 08:09:06
Count: 1
Stack: [C]: ?
Interface\AddOns\BulkBuy\core.lua:10: in function `BulkBuyMerchantItem'
Interface\AddOns\BulkBuy\core.lua:36: in function `OnAccept'
Interface\FrameXML\StaticPopup.lua:3827: in function `StaticPopup_OnClick'
[string "*:OnClick"]:1: in function <[string "*:OnClick"]:1>

Locals:

Got this error when trying to buy a heirloom item.
Thanks for the report, I'll look into this now.
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 07:32 AM  
Choonstertwo
A Chromatic Dragonspawn
 
Choonstertwo's Avatar
AddOn Author - Click to view AddOns

Forum posts: 194
File comments: 105
Uploads: 34
Originally Posted by Choonstertwo
Originally Posted by Angrysteel
Message: Interface\AddOns\BulkBuy\core.lua:10: attempt to compare number with nil
Time: 09/21/12 08:09:06
Count: 1
Stack: [C]: ?
Interface\AddOns\BulkBuy\core.lua:10: in function `BulkBuyMerchantItem'
Interface\AddOns\BulkBuy\core.lua:36: in function `OnAccept'
Interface\FrameXML\StaticPopup.lua:3827: in function `StaticPopup_OnClick'
[string "*:OnClick"]:1: in function <[string "*:OnClick"]:1>

Locals:

Got this error when trying to buy a heirloom item.
Thanks for the report, I'll look into this now.
Which item were you trying to buy and from what vendor? What output do you get when you mouseover the item icon and run this? /dump GetMouseFocus()
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 07:48 AM  
Angrysteel
A Murloc Raider

Forum posts: 6
File comments: 203
Uploads: 0
Vendor = Zulna in Org - <Justice Heirlooms>

Item = Burnished Warden Staff

Output:
Code:
[08:45]<Button:MerchantItem6ItemButton
[08:45]    CanChangeAttribute() => 1,
[08:45]    CanChangeProtectedState() => 1,
[08:45]    count = 1,
[08:45]    extendedCost = true,
[08:45]    GetAlpha() => 1,
[08:45]    GetAnimationGroups() => nil,
[08:45]    GetBackdrop() => nil,
[08:45]    GetBackdropBorderColor() => nil,
[08:45]    GetBackdropColor() => nil,
[08:45]    GetBottom() => 442,
[08:45]    GetBoundsRect() => 178.50003051758, 427.49996948242, 64, 64.000022888184,
[08:45]    GetButtonState() => "NORMAL",
[08:45]    GetCenter() => 210.50001525879, 460.5,
[08:45]    GetChildren() => nil,
[08:45]    GetClampRectInsets() => 0, 0, 0, 0,
[08:45]    GetDepth() => 0,
[08:45]    GetDisabledFontObject() => nil,
[08:45]    GetDisabledTexture() => nil,
[08:45]    GetDontSavePosition() => nil,
[08:45]    GetEffectiveAlpha() => 1,
[08:45]    GetEffectiveDepth() => 1,
[08:45]    GetEffectiveScale() => 1,
[08:45]    GetFontString() => nil,
[08:45]    GetFrameLevel() => 21,
[08:45]    GetFrameStrata() => "MEDIUM",
[08:45]    GetHeight() => 36.999988555908,
[08:45]    GetHighlightFontObject() => nil,
[08:45]    GetHighlightTexture() => <Texture:(anon)>,
[08:45]    GetHitRectInsets() => 0, 0, 0, 0,
[08:45]    GetID() => 26,
[08:45]    GetLeft() => 192.00001525879,
[08:45]    GetMaxResize() => 0, 0,
[08:45]    GetMinResize() => 0, 0,
[08:45]    GetMotionScriptsWhileDisabled() => false,
[08:45]    GetName() => "MerchantItem6ItemButton",
[08:45]    GetNormalFontObject() => nil,
[08:45]    GetNormalTexture() => <Texture:MerchantItem6ItemButtonNormalTexture>,
[08:45]    GetNumChildren() => 0,
[08:45]    GetNumPoints() => 1,
[08:45]    GetNumRegions() => 7,
[08:45]    GetObjectType() => "Button",
[08:45]    GetParent() => <Frame:MerchantItem6>,
[08:45]    GetPoint(1) => "TOPLEFT", <Frame:MerchantItem6>, "TOPLEFT", 0, 0,
[08:45]    GetPropagateKeyboardInput() => false,
[08:47]    GetPushedTextOffset() => 1.5670927762985, -1.5670927762985,
[08:47]    GetPushedTexture() => <Texture:(anon)>,
[08:47]    GetRect() => 192.00001525879, 442, 37, 36.999988555908,
[08:47]    GetRegions() => <Texture:MerchantItem6ItemButtonIconTexture>, <FontString:MerchantItem6ItemButtonCount>, <FontString:MerchantItem6ItemButtonStock>, <Texture:MerchantItem6ItemButtonSearchOverlay>, <Texture:MerchantItem6ItemButtonNormalTexture>, <Texture:(anon)>, <Texture:(anon)>,
[08:47]    GetRight() => 229.00001525879,
[08:47]    GetScale() => 1,
[08:47]    GetSize() => 37, 36.999988555908,
[08:47]    GetText() => nil,
[08:47]    GetTextHeight() => 0,
[08:47]    GetTextWidth() => 0,
[08:47]    GetTitleRegion() => nil,
[08:47]    GetTop() => 479,
[08:47]    GetWidth() => 37,
[08:47]    hasItem = true,
[08:47]    icon = <Texture:MerchantItem6ItemButtonIconTexture>,
[08:47]    IsClampedToScreen() => nil,
[08:47]    IsDragging() => false,
[08:47]    IsEnabled() => 1,
[08:47]    IsIgnoringDepth() => nil,
[08:47]    IsJoystickEnabled() => nil,
[08:47]    IsKeyboardEnabled() => nil,
[08:47]    IsMouseEnabled() => 1,
[08:47]    IsMouseOver() => true,
[08:47]    IsMouseWheelEnabled() => nil,
[08:47]    IsMovable() => nil,
[08:47]    IsProtected() => nil, nil,
[08:47]    IsResizable() => nil,
[08:47]    IsShown() => 1,
[08:47]    IsToplevel() => nil,
[08:47]    IsUserPlaced() => nil,
[08:47]    IsVisible() => 1,
[08:47]    link = "|cffe6cc80|Hitem:79131:0:0:0:0:0:0:0:85:0:0|h[Burnished Warden Staff]|h|r",
[08:47]    name = "Burnished Warden Staff",
[08:47]    numInStock = -1,
[08:47]    searchOverlay = <Texture:MerchantItem6ItemButtonSearchOverlay>,
[08:47]    SplitStack = function: 000000001E8C96D0,
[08:47]    texture = "Interface\\Icons\\INV_Staff_29",
[08:47]    UpdateTooltip = function: 0000000034857330
[08:47]>
This happens while trying to buy any Hierloom Item.

This also happens when trying to buy any pvp items (tried about 10 different items).
Last edited by Angrysteel : 09-21-12 at 07:52 AM.
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 08:11 AM  
Choonstertwo
A Chromatic Dragonspawn
 
Choonstertwo's Avatar
AddOn Author - Click to view AddOns

Forum posts: 194
File comments: 105
Uploads: 34
Originally Posted by Angrysteel
Vendor = Zulna in Org - <Justice Heirlooms>

Item = Burnished Warden Staff

Output:
Code:
[08:45]<Button:MerchantItem6ItemButton
[08:45]    CanChangeAttribute() => 1,
[08:45]    CanChangeProtectedState() => 1,
[08:45]    count = 1,
[08:45]    extendedCost = true,
[08:45]    GetAlpha() => 1,
[08:45]    GetAnimationGroups() => nil,
[08:45]    GetBackdrop() => nil,
[08:45]    GetBackdropBorderColor() => nil,
[08:45]    GetBackdropColor() => nil,
[08:45]    GetBottom() => 442,
[08:45]    GetBoundsRect() => 178.50003051758, 427.49996948242, 64, 64.000022888184,
[08:45]    GetButtonState() => "NORMAL",
[08:45]    GetCenter() => 210.50001525879, 460.5,
[08:45]    GetChildren() => nil,
[08:45]    GetClampRectInsets() => 0, 0, 0, 0,
[08:45]    GetDepth() => 0,
[08:45]    GetDisabledFontObject() => nil,
[08:45]    GetDisabledTexture() => nil,
[08:45]    GetDontSavePosition() => nil,
[08:45]    GetEffectiveAlpha() => 1,
[08:45]    GetEffectiveDepth() => 1,
[08:45]    GetEffectiveScale() => 1,
[08:45]    GetFontString() => nil,
[08:45]    GetFrameLevel() => 21,
[08:45]    GetFrameStrata() => "MEDIUM",
[08:45]    GetHeight() => 36.999988555908,
[08:45]    GetHighlightFontObject() => nil,
[08:45]    GetHighlightTexture() => <Texture:(anon)>,
[08:45]    GetHitRectInsets() => 0, 0, 0, 0,
[08:45]    GetID() => 26,
[08:45]    GetLeft() => 192.00001525879,
[08:45]    GetMaxResize() => 0, 0,
[08:45]    GetMinResize() => 0, 0,
[08:45]    GetMotionScriptsWhileDisabled() => false,
[08:45]    GetName() => "MerchantItem6ItemButton",
[08:45]    GetNormalFontObject() => nil,
[08:45]    GetNormalTexture() => <Texture:MerchantItem6ItemButtonNormalTexture>,
[08:45]    GetNumChildren() => 0,
[08:45]    GetNumPoints() => 1,
[08:45]    GetNumRegions() => 7,
[08:45]    GetObjectType() => "Button",
[08:45]    GetParent() => <Frame:MerchantItem6>,
[08:45]    GetPoint(1) => "TOPLEFT", <Frame:MerchantItem6>, "TOPLEFT", 0, 0,
[08:45]    GetPropagateKeyboardInput() => false,
[08:47]    GetPushedTextOffset() => 1.5670927762985, -1.5670927762985,
[08:47]    GetPushedTexture() => <Texture:(anon)>,
[08:47]    GetRect() => 192.00001525879, 442, 37, 36.999988555908,
[08:47]    GetRegions() => <Texture:MerchantItem6ItemButtonIconTexture>, <FontString:MerchantItem6ItemButtonCount>, <FontString:MerchantItem6ItemButtonStock>, <Texture:MerchantItem6ItemButtonSearchOverlay>, <Texture:MerchantItem6ItemButtonNormalTexture>, <Texture:(anon)>, <Texture:(anon)>,
[08:47]    GetRight() => 229.00001525879,
[08:47]    GetScale() => 1,
[08:47]    GetSize() => 37, 36.999988555908,
[08:47]    GetText() => nil,
[08:47]    GetTextHeight() => 0,
[08:47]    GetTextWidth() => 0,
[08:47]    GetTitleRegion() => nil,
[08:47]    GetTop() => 479,
[08:47]    GetWidth() => 37,
[08:47]    hasItem = true,
[08:47]    icon = <Texture:MerchantItem6ItemButtonIconTexture>,
[08:47]    IsClampedToScreen() => nil,
[08:47]    IsDragging() => false,
[08:47]    IsEnabled() => 1,
[08:47]    IsIgnoringDepth() => nil,
[08:47]    IsJoystickEnabled() => nil,
[08:47]    IsKeyboardEnabled() => nil,
[08:47]    IsMouseEnabled() => 1,
[08:47]    IsMouseOver() => true,
[08:47]    IsMouseWheelEnabled() => nil,
[08:47]    IsMovable() => nil,
[08:47]    IsProtected() => nil, nil,
[08:47]    IsResizable() => nil,
[08:47]    IsShown() => 1,
[08:47]    IsToplevel() => nil,
[08:47]    IsUserPlaced() => nil,
[08:47]    IsVisible() => 1,
[08:47]    link = "|cffe6cc80|Hitem:79131:0:0:0:0:0:0:0:85:0:0|h[Burnished Warden Staff]|h|r",
[08:47]    name = "Burnished Warden Staff",
[08:47]    numInStock = -1,
[08:47]    searchOverlay = <Texture:MerchantItem6ItemButtonSearchOverlay>,
[08:47]    SplitStack = function: 000000001E8C96D0,
[08:47]    texture = "Interface\\Icons\\INV_Staff_29",
[08:47]    UpdateTooltip = function: 0000000034857330
[08:47]>
This happens while trying to buy any Hierloom Item.

This also happens when trying to buy any pvp items (tried about 10 different items).
Was there any more to the error than you posted? If so, can you post the full error?
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 08:30 AM  
Angrysteel
A Murloc Raider

Forum posts: 6
File comments: 203
Uploads: 0
That was the entire error from Blizzards Lua errors.

I installed Bugsack / Bug Grabber and it was the same.

Code:
1x BulkBuy-1.01\core.lua:10: attempt to compare number with nil
BulkBuy-1.01\core.lua:10: in function "BulkBuyMerchantItem"
BulkBuy-1.01\core.lua:36: in function "OnAccept"
FrameXML\StaticPopup.lua:3827: in function "StaticPopup_OnClick"
<string>:"*:OnClick":1: in function <string>:"*:OnClick":1

Locals:
That is from Bug Sack.
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 08:35 AM  
Angrysteel
A Murloc Raider

Forum posts: 6
File comments: 203
Uploads: 0
Double checked the error with all addons shut off except Bulk Buy.

I now get a longer error message, with all other addons disabled. New error:

Code:
Message: Interface\AddOns\BulkBuy\core.lua:10: attempt to compare number with nil
Time: 09/21/12 09:33:51
Count: 1
Stack: Interface\AddOns\BulkBuy\core.lua:10: in function `BulkBuyMerchantItem'
Interface\AddOns\BulkBuy\core.lua:36: in function `OnAccept'
Interface\FrameXML\StaticPopup.lua:3827: in function `StaticPopup_OnClick'
[string "*:OnClick"]:1: in function <[string "*:OnClick"]:1>

Locals: slot = 26
amount = nil
stackSize = 1
(*temporary) = 26
(*temporary) = 1
(*temporary) = nil
(*temporary) = "attempt to compare number with nil"
EDIT: Also tried to buy other items with justice points, same error as above. Tried to turn in tier tokens, also a no go. All the same error.
Last edited by Angrysteel : 09-21-12 at 08:43 AM.
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 08:58 AM  
Choonstertwo
A Chromatic Dragonspawn
 
Choonstertwo's Avatar
AddOn Author - Click to view AddOns

Forum posts: 194
File comments: 105
Uploads: 34
1.02

I've just released 1.02 which should fix this issue. Thanks for the report.
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 08:59 AM  
Angrysteel
A Murloc Raider

Forum posts: 6
File comments: 203
Uploads: 0
Thanks for the quick fix, will try it out after it gets approved and we are able to DL it
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 09:57 AM  
Choonstertwo
A Chromatic Dragonspawn
 
Choonstertwo's Avatar
AddOn Author - Click to view AddOns

Forum posts: 194
File comments: 105
Uploads: 34
Originally Posted by Angrysteel
Thanks for the quick fix, will try it out after it gets approved and we are able to DL it
If you want to try it out now, I've posted the code for 1.02 in a Gist here. Just overwrite your core.lua file with it.

I recommend you replace it with the downloaded version once it's approved.
Report comment to moderator  
Reply With Quote
Unread 09-21-12, 10:13 AM  
Angrysteel
A Murloc Raider

Forum posts: 6
File comments: 203
Uploads: 0
Originally Posted by Choonstertwo
Originally Posted by Angrysteel
Thanks for the quick fix, will try it out after it gets approved and we are able to DL it
If you want to try it out now, I've posted the code for 1.02 in a Gist here. Just overwrite your core.lua file with it.

I recommend you replace it with the downloaded version once it's approved.
Thanks, changes worked out well. No errors at all. Bought some VP stuff, and honor gear.
Report comment to moderator  
Reply With Quote
Unread 01-29-15, 11:40 AM  
bsmorgan
A Cobalt Mageweaver
AddOn Author - Click to view AddOns

Forum posts: 219
File comments: 158
Uploads: 3
The garrison trading post contains a vendor that sells various crafting reagents using garrison resources for currency. With most other vendors, you can shift-click on an item to specify a quantity to buy. The items sold by this vendor do not respond to a "shift-click". Can BulkBuy coerce this vendor into accepting a quantity?
Report comment to moderator  
Reply With Quote
Unread 01-29-15, 10:03 PM  
Choonstertwo
A Chromatic Dragonspawn
 
Choonstertwo's Avatar
AddOn Author - Click to view AddOns

Forum posts: 194
File comments: 105
Uploads: 34
Originally Posted by bsmorgan
The garrison trading post contains a vendor that sells various crafting reagents using garrison resources for currency. With most other vendors, you can shift-click on an item to specify a quantity to buy. The items sold by this vendor do not respond to a "shift-click". Can BulkBuy coerce this vendor into accepting a quantity?
That's odd, I would have thought Garrison Resource vendors behaved like any other currency-based vendor.

Do you encounter the same issue buying from the GR vendor inside your town hall (Deedree for Alliance)?

I'll do some testing on the PTR.
Report comment to moderator  
Reply With Quote
Unread 01-30-15, 05:29 AM  
Choonstertwo
A Chromatic Dragonspawn
 
Choonstertwo's Avatar
AddOn Author - Click to view AddOns

Forum posts: 194
File comments: 105
Uploads: 34
Originally Posted by Choonstertwo
Originally Posted by bsmorgan
The garrison trading post contains a vendor that sells various crafting reagents using garrison resources for currency. With most other vendors, you can shift-click on an item to specify a quantity to buy. The items sold by this vendor do not respond to a "shift-click". Can BulkBuy coerce this vendor into accepting a quantity?
That's odd, I would have thought Garrison Resource vendors behaved like any other currency-based vendor.

Do you encounter the same issue buying from the GR vendor inside your town hall (Deedree for Alliance)?

I'll do some testing on the PTR.
Elkano just posted in the original thread that the default UI allows bulk-buying from the Trading Post vendors on the PTR, so Bulk Buy will probably work with them then.

Unfortunately I don't have an active subscription (or a Garrison with a Trading Post), so I can't test on live.
Last edited by Choonstertwo : 01-30-15 at 05:29 AM.
Report comment to moderator  
Reply With Quote
Unread 09-12-16, 06:58 PM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
Legion?

I don't know if this needs anything for Legion but a toc bump; I'm trying to minimize my need for the 'load out of date addons' checkbox.

Thanks, it's an *awesome* aid!
-Barleduq
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: