BestBuy Bot is an Add to cart and Auto Checkout Bot. This auto buying bot can search the item repeatedly on the ITEM page using one keyword. Once the desired item is available it can add to cart and checkout very fast. This auto purchasing BestBuy Bot can work on Firefox Browser so it can run in all Operating Systems. It can run for multiple items simultaneously.

Overview

BestBuy Bot — Open Source GPU/PS5/Xbox Bot

I took bits from best open and closed sourced bots and made this simple bot.
Please star my repo if this contribution helped you ! Its FREEE !

** CREDIT CARD INFORMATION IS NOT USED. BOT WILL ALSO RUN WITHOUT CVV INFORMATION; just not do FINAL CHECKOUT


Please Join Support & FAQ Discord if you have questions.

  • Support & FAQ Discord :
  • Recommended browser : Mozilla Firefox

Description

BestBuy Bot is an Add to cart and Auto Checkout Bot. This auto buying bot can search an item repeatedly on the item page using one keyword. Once the desired item is available it can add to cart and checkout very fast. This auto purchasing BestBuy Bot can work on Firefox Browser so it can run in all Operating Systems. It can run for multiple items simultaneously.

"Running a bot can increase your success chances only ; but does not guarantee that you will successfully cart each time. If you do not agree, then please do not use this code."

Why???

I built this in response to the severe tech scalping situation that's happening right now. Almost every tech product that's coming out right now is being instantly brought out by scalping groups and then resold at at insane prices. $699 GPUs are being listed for $1700 on eBay, and these scalpers are buying 40 carts while normal consumers can't get a single one. Preorders for the PS5 are being resold for nearly $1000. My take on this is that if I release a bot that anyone can use, for free, then the number of items that scalpers can buy goes down and normal consumers can buy items for MSRP. If everyone is botting, then no one is botting.

#AddToCartBot #AutoCheckoutBot #MABBots #AdvancedBots #AutoBuyingBot #AutoPurchasingBot #MostAdvancedBots #BestBuyBot

Getting Started

  1. Create a github account. It always helps !
  2. Star this repository. Its FREE !
  3. Please follow me here if you like my contribution:

Dependencies

  1. Tampermonkey Extention
  2. BestBuy Account (Please be signed in)
  3. Please allow Pop-Ups for https://www.bestbuy.com/ in your browser

Installing

  • Go to tampermonkey dashboard from broswer extension.
  • Create a new script and copy the script from best-buy-tm.js.
  • Save the script
  • Change required CONSTANTS* (Important)

Executing program

  • Once the script is saved please update the following CONSTANTS on top of page:
  • Item Keyword corresponds to a keyword in your product name (no spaces allowed)
const ITEM_KEYWORD= "3060";
  • Credit Card CVV (Not Required. BOT just wont do final checkout)
const CREDITCARD_CVV = "***";
  • Test Mode "YES" will not purchase item. But do all the steps except pressing the last button. TESTMODE = "No" will purchase the item.
const TESTMODE = "Yes"
  • MAX_RETRIES will now control when your page gets reloaded when you are stuck on please wait screen. In this case it will perform normal reload.
const MAX_RETRIES = "200";

Workflow

This tool is designed to multitask. That means, it can run in many tabs simultaneously, if there is a ITEM_KEYWORD overlap. If there is no ITEM_KEYWORD overlap. You will need to create a new copy of script for each ITEM_KEYWORD.

Please make sure your CART is empty.

After updating variables and enabling the script in Tampermonkey, go to the your favourite GPU page in BestBuy. If the Title of GPU has ITEM_KEYWORD, it will add the item to cart and checkout. If item is out of stock it will keep on refreshing every 5 seconds.

Please use TESTMODE = "Yes" to test with an item already in stock.

Authors

  • KK

Version History

  • 1.0
    • Initial Release
  • 1.1
    • Handle Please Wait Gracefully
    • If Please Wait button shows up, bot will check every for second ATC button every 20 seconds
    • Whenever second ATC button appears, it will click and checkout
    • Reading Logs in Console
  • 2.0 - 'Please Wait...' items can now be CARTED and CHECKEDOUT
    • If "Please Wait" button shows up, it will enter a loop of retries which will check the color of button.
    • As long as button stays Gray, it will try and check for Yellow Color
    • Whenever Yellow ATC button appears again, it will click and checkout
    • Status Bar is now being added at bottom
    • Status Bar now shows version and TESTMODE variable
  • 2.5 - 'Fixed Memory Leak' no more refresh ! We will recycle tabs.
    • Due to constant reloading of OOS items, memory on your browser slowly blows up
    • We will now kill the tab if item is OOS and open it in new page. Doing this infact reduces the total RAM usage.
    • Button clicks no more use .click() but instead use EventListeners()
    • Status Bar is now 50% of screen. Little taller so last line is visible when page is loading.
    • Status Bar now shows ITEM_KEYWORD
    • We will now play a music when item is carted.
    • Since BB asks for verifying account sometimes. Alert will help so that you dont miss checkout.
    • MAX_RETRIES will now control when your page gets reloaded when you are stuck on please wait screen. In this case it will perform normal reload.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Comments
  • Improvments

    Improvments

    Here's a good blueprint on how to go further:

    Look into using a mitm proxy to capture the requests, and mimicking the requests.
    
    Look into creating an engine for creating tasks, so that you can run multiple at once.
    
    Look into creating different modes, such as all requests or all browser
    
    enhancement 
    opened by kkapuria3 10
  • Stuck in Auto Detecting Mode

    Stuck in Auto Detecting Mode

    Hello, so I have been testing the bot using the AMD 5800x graphics card. I get this message:

    "Open Source BB-Bot V3.2 ◻️ TESTMODE: Yes ◻️ ITEM KEYWORD: 5800 Auto Detecting Mode Initializing .."

    However, it never adds it to my cart and I am not sure why not. Please let me know. Thanks!

    opened by Lochos 8
  • Ended on review page without checking out

    Ended on review page without checking out

    I am running with Testmode = No, Cvv and sms filled in. When the item restocked, the page ended up on the leave a review page but the item was not purchased. The item was also not in cart.

    opened by Hectorbeil 5
  • Delivery Option Click

    Delivery Option Click

    I'm not sure if other people are facing this but in NYC best buy has default pick at store option.

    When running this bot, it take this item to cart and continue to verification step. But after this you cannot click a delivery option. I was unable to checkout and pick a store to pick up my GPU. Best has a timer letting me know that my card was "RESERVED" (yeah right lol) but no stores in 200 miles had one for pick up.

    I've added a handler to click the delivery option if it exists.

    I can make a push to your repo and make pr if you grant me access.

    @kkapuria3

    opened by Sovereign-Greed 4
  • Not Adding to Cart

    Not Adding to Cart

    I'm testing this bot on a remote Ubuntu VM through RDP. Everything was installed today and should be the latest version. When I go to a page to test the bot, no item is being added to my cart.

    I can tell that the script is active. The output in the bottom left corner is:

    Open Source BB-Bot V3.1 ◻️ TESTMODE: Yes ◻️ ITEM KEYWORD: X570-PLUS Auto Detecting Mode Initializing ..

    Is this broken because of a recent update or am I doing something wrong?

    opened by rogersstuart 3
  • Program Stuck in Initializing?

    Program Stuck in Initializing?

    I'm new to get hub and this sort of thing, but recently my bot has been stuck in Initializing. I've tried closing and reopening the window, signing in and out of my BB account, and re starting the script from the ground up but nothing seems to work... It was working fine the first couple of days as well, but then just suddenly stopped.

    opened by Toaster-Cat 3
  • where i can find another button?

    where i can find another button?

    I try rewrite that bot for another store. I compare buttons on bestbuy and in source code for change them for another store.

    1. Where i can find that buttons? const OOSButton_L2 = "btn btn-disabled btn-lg btn-block add-to-cart-button" i find only that button const OOSButton_L1 = "c-button c-button-disabled c-button-lg c-button-block add-to-cart-button" image
    good first issue 
    opened by vadimka04 2
  • Window.Open not triggering

    Window.Open not triggering

    I was not able to determine why, but window.open is not working for me. It never opens a new window/tab and then when window.close fires, the process ends.

    I resolved this locally by adding the following instead of window.open

    // @grant GM_openInTab

    GM_openInTab (window.location.href);

    This seems to also protect against the mentioned memory leak.

    opened by NPC-NPC-NPC 2
  • Test check out defaulted to

    Test check out defaulted to "Store Pick up"

    Any way to change the delivery method to "Shipping" during check out? If left untouched, the bot might just check out using the "Store Pick Up" option as the default which is undesirable. Thanks!

    opened by gravityz3r0 2
  • Tab Keeps Closing

    Tab Keeps Closing

    Tab keeps closing when it detects its out and tries to auto refresh. I filled out the red flags and put yes for test because I want to manually buy, I open the FE page on BB and then this issue occurs. Please help.

    question 
    opened by SovietComrade 2
  • Window closes after first refresh when looking for out of stock items.

    Window closes after first refresh when looking for out of stock items.

    Every time I try to leave the bot running for an out of stock item it closes the tab. I let it sit for a minute or two after closing and nothing happens. I also tried running it in a separate window and the same thing happens. Did I do something wrong when setting up the bot that could have caused this?

    opened by Drunkenrailer 2
  • Add capabilities/refactor

    Add capabilities/refactor

    I was reviewing the code and while it looks fairly good i think this can be improved by using webpack and separating things into their own files.

    I took this program and modified it to buy open box items and i am testing it now. i would like to contribute it back but it was kind of a hack. so not sure if it would be accepted buy i might take a stab at refactoring to a more OOP style, where the state is determined in some central index file but then the logic in other files actually do the work. i also found room to improve upon the setTimeout situation by using promises and having smaller timeouts. so for example

    const clickButton = (selector) => new Promise(resolve => {
      setTimeout(() => {
        const button = document.querySelector(selector);
        if (button) {
          button.click();
        } else {
          resolve(clickButton(selector));
        }
      }, 100)
    });
    
    await clickButton("someSelector");
    
    // move on to subsequent click
    
    question 
    opened by spearmootz 3
  • Option to use saved items list

    Option to use saved items list

    I've heard people may have better luck by adding to the cart from the saved items list.

    This seemed like it should be a fairly easy implementation but the page is slow to load so the script runs before the button loads and can't find it.

    if (pagetitle.includes(ITEM_KEYWORD) || pagetitle.includes("Saved")) {
    
             //Create Custom Badge
             //
             const $badge = createFloatingBadge("Auto Detecting Mode", "Initializing ..");
             console.log('BEGIN ')
             document.body.appendChild($badge);
             $badge.style.transform = "translate(0, 0)"
             //Out of Stock Button
             //
             var OOSButton;
             const OOSButton_SavedItems_L1 = "c-button c-button-outline c-button-sm c-button-block add-to-cart-button"
             //c-button c-button-outline c-button-sm c-button-block c-button-icon c-button-icon-leading add-to-cart-button
             const OOSButton_L1 = "c-button c-button-disabled c-button-lg c-button-block add-to-cart-button"
             const OOSButton_L2 = "btn btn-disabled btn-lg btn-block add-to-cart-button"
             console.log('BEGIN ')
             if (document.getElementsByClassName(OOSButton_L1).length == 1)
             {
                 OOSButton = document.getElementsByClassName(OOSButton_L1);
                 console.log('OOS Button Class 1 : ' + OOSButton_L1)
             }
             else if (document.getElementsByClassName(OOSButton_L2).length == 1)
             {
                 OOSButton = document.getElementsByClassName(OOSButton_L2);
                 console.log('OOS Button Class 2 : ' + OOSButton_L2)
             }
             else if (document.getElementsByClassName(OOSButton_SavedItems_L1).length == 1)
             {
                 OOSButton = document.getElementsByClassName(OOSButton_SavedItems_L1);
                 console.log('OOS Button Saved Items Class 1 : ' + OOSButton_SavedItems_L1)
             }
    

    I tired adding event handlers to wait for the page to load but I could never get the window.onLoad event to fire for the popup, even if I attached an event handler to it.

    good first issue 
    opened by Spegs21 6
  • Verifying and submitting issues Maybe cvv issues?

    Verifying and submitting issues Maybe cvv issues?

    The bot runs, goes through the checkout, gets to the last step. but it does not click the final "place your order"

    I don't know exactly where the code is having issues, Testmode was turned off, I'd checked it multiple times Its gets to the final Checkpoint then says Verifying and submitting.

    Something I noticed, the CVV code only popped up for the first test. (on the first test, when I didn't work I clicked the place order button manually and it checked out. canceled the order afterwards on my test object)

    After that, the cvv box quit popping up.

    I read the previous article on the cvv bug, it was closed, and the newest update should have fixed it. Meaning it might not be the cvv box causing issues.

    I even re-copied the code, and started fresh, making sure to only change the main flags. I do have my cvv added, and my sms added for verification.

    also a question, as I hadn't found an answer elsewhere, is there was way to have the bot switch to shipping instead of in store pickup?

    image

    opened by Jimmy30811 1
  • Adding support for gift card purchases.

    Adding support for gift card purchases.

    I think it would be a particularly fruitful addition to add support for the auto entering of gift cards supplied to the program in the event that checkout is reached.

    enhancement 
    opened by Mo0nbase 0
Releases(v3.7)
  • v3.7(Nov 12, 2021)

  • 2.5(Jul 18, 2021)

    2.5 - 'Fixed Memory Leak' no more refresh ! We will recycle tabs.

    - We will now kill the tab if item is OOS and open it in new page. Doing this infact reduces the total RAM usage.
    - Button clicks no more use .click() but instead use EventListeners()
    - Status Bar is now 50% of screen.  Little taller so last line is visible when page is loading.
    - Status Bar now shows ITEM_KEYWORD
    - We will now play a music when item is carted.
    - Since BB asks for verifying account sometimes. Alert will help so that you dont miss checkout.
    - MAX_RETRIES will now control when your page gets reloaded when you are stuck on please wait screen. In this case it will perform normal reload.```
    Source code(tar.gz)
    Source code(zip)
  • 2.0(Jul 9, 2021)

    Version 2.0 - 'Please Wait...' items can now be CARTED and CHECKEDOUT

    - If "Please Wait" button shows up, it will enter a loop of retries which will check the color of button.
    - As long as button stays Gray, it will try and check for Yellow Color
    - Whenever Yellow ATC button appears again, it will click and checkout
    - Status Bar is now being added at bottom
    - Status Bar now shows version and TESTMODE variable
    
    Source code(tar.gz)
    Source code(zip)
  • 1.1(Jul 8, 2021)

    1. If Please Wait button shows up, bot will check every for second ATC button every 20 seconds
    2. Whenever second ATC button appears, it will click and checkout
    3. Reading logs in console```
    
    Source code(tar.gz)
    Source code(zip)
Owner
Karan Kapuria
Bioinformatics Developer at LabCorp Inc.
Karan Kapuria
🚀 A web extension starter built with React, Typescript, and Tailwind CSS. Build once, and run on multiple browsers: Google Chrome, Mozilla Firefox, Microsoft Edge, Brave, and Opera..

Web Extension Starter A web extension starter, built with React, Typescript, and Tailwind CSS. Build once, and run on multiple browsers: Google Chrome

BCIT Design & Development Club (BCIT-DDC) 28 Dec 28, 2022
⚡ It is a simplified database module with multiple functions that you can use simultaneously with sqlite, yaml, firebase and json.

Prisma Database Developed with ?? by Roxza ⚡ An easy, open source database ?? Installation npm i prisma.db --save yarn add prisma.db ?? Importing impo

Roxza 21 Jan 3, 2023
Another logger in JS. This one offers a console.log-like API and formatting, colored lines and timestamps (or not if desired), all that with 0 dependencies.

hellog Your new logger ! hellog is a general-purpose logging library. It offers a console.log-like API and formatting, extensible type-safety colored

Maxence Lecanu 4 Jan 5, 2022
The awesomebooks project is a simple list, but separated into 3 parts and given a retro feel. The main page is where we can add books, and on another page we can see the list, and remove items. There is also a "contact-us" page.

Awesome Books This is the restructured version of the famous awesome-books project! Here you can find JavaScript broken into modules, using import-exp

Matt Gombos 12 Nov 15, 2022
A single-page application that allow users to add their To Do items. The items could be checked as completed and the completed task can be removed. Built with JavaScript, HTML and CSS

To Do list Application This is a single page application that allows users to keep track of their tasks. Users can add the task and also check the che

Micheal Oguntayo 4 Oct 14, 2022
One-page checkout flow

Medusa Express Medusa is an open-source headless commerce engine that enables developers to create amazing digital commerce experiences. Built with Me

Medusa 49 Oct 11, 2022
A very simple tool that generates multiple spellings of a phone number (to effectively search for it using the OR operator and quotes)

phonenumberqueryconstructor A very simple tool that generates multiple writings of a phone number (to effectively search for it using the OR operator

Cyb_detective 10 Dec 7, 2022
Allows users to quickly search highlighted items on Wikipedia. Inspired by the "search Wikipedia" function on the kindle mobile app.

wikipedia-search Allows users to quickly search highlighted items on Wikipedia. Inspired by the "search Wikipedia" function on the kindle mobile app.

Laith Alayassa 18 Aug 15, 2022
Project to manage multiple emails at once with lots of customization. You can send and receive emails. Desktop notifications can be modified.

Technologies Used React Redux Tailwind CSS Features Admin dashboard User settings and or user dashboard send emails recive emails Connections through

Multi Email 9 Dec 17, 2022
Official companion browser extensions for Kagi Search (Chrome, Firefox)

Kagi Search Extension This contains the source for the Kagi Search extension for Firefox and Chrome. Get it for your browser here: Chrome Firefox Cont

Kagi Search 18 Nov 25, 2022
jQuery plugin to show a tabs bar for navigation. The tabs can be defined once, and shared across multiple HTML pages.

jquery.simpletabs v1.2.3 The jquery.simpletabs plugin shows a tabs bar for navigation. The tabs can be defined once, and shared across multiple HTML p

Peter Thoeny 1 Feb 23, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
The open source Community Operating System, built with developers in mind.

IMPORTANT: This project is still under active development. Be aware that future releases can lead to breaking changes. The open source Community OS, b

crowd.dev 383 Dec 29, 2022
A simple and basic app, where you can add your todo list and remove all selected or one of the items from the list

A simple and basic app, where you can add your todo list and remove all selected or one of the items from the list

Sediqullah Badakhsh 13 Jun 14, 2022
A Zotero add-on that scans your Markdown reading notes, tags the associated Zotero items, and lets you open notes for the Zotero items in Obsidian.

Zotero Obsidian Citations Adds colored tags to Zotero items that have associated Markdown notes stored in an external folder. Open an associated Markd

Dae 210 Jan 4, 2023
The app helps you to add todo items to your list, mark completed ones and also delete finished items. Its a handy tool for your day today activies. Check out the live demo.

Todo List App The app helps you to add todo items to your list, mark completed ones and also delete finished items. Its a handy tool for your day toda

Atugonza ( Billions ) Joel 14 Apr 22, 2022
Apply IPO From Multiple Meroshare Accounts at Once.

⚙️ HamroShare : Batch IPO Applier HamroShare is a minimal web-application that lets you apply for IPOs from multiple meroshare accounts at once. Note:

Dinesh Tiwari 7 Nov 15, 2022