Belle-Ve Bricks

Custom Creations,
Unforgettable Impressions.

13+ Tips To Save Money On LEGO

Trusted by Over 392 Distinctive Clients
Custom model
Bring Your Idea to Life

We all know that LEGO® isn’t cheap, we commonly hear people asking how they can save money on LEGO. Buying LEGO® sets and bricks can be a tiring process, but you can save a lot of money if you know where to look for deals. I have learnt over the last few years of collecting, buying and sourcing bricks for Belle-Ve Bricks that it’s possible to save a lot of money making LEGO® a much more affordable hobby.

Where Can You Get the Best LEGO® Deals?

Amazon

Amazon UK and Amazon US are like the holy grails of online shopping these days aren’t they?

Using websites such as CamelCamelCamel to aid in making sure you are getting the best deal are must when it comes to buying LEGO® from Amazon.

eBay

eBay is an amazing way to find literally any LEGO® set or minifigure you can think of and if you bid at the right time you can get yourself and great deal too, this is especially the case when you buy job lot listings.

If you want to make sure you never miss a deal you can always sign up and use a eBay Auction Sniper tool, I have used a few but have found that PowerSnipe is the best one.

When you use a eBay Auction Sniper to buy LEGO® it means you can always ensure you get the deal you are happy with and it also removes that temptation of overbidding just so you can win!

Bricklink.com

On 26th November 2019 The LEGO® Group announced that they had acquired Bricklink Ltd which is known to be the world’s largest online community of adult LEGO® fans (AFOLs).

Bricklink does take a bit of getting used to but it is definitely worth it.

The easiest way to explain it is think of a website like eBay but its dedicated to LEGO.

Bricklink is made up of thousands of AFOLs who sell LEGO® to help fund building their own LEGO® collection, there are also a lot of people who have made a full time career selling on Bricklink too.

If you are interested in finding out more about selling on Bricklink we have a blog that gives you tips that will help you start up a successful Bricklink store.

Facebook Marketplace and Groups

This is a great place to buy new and used LEGO® sets, minifigures or LEGO® bundles.

One piece of advice when buying from Facebook is to make sure you be careful. Always pay via PayPal and never send the money as Friends and Family.

A good example of a LEGO® group to use is Belle-Ve Bricks group which is called Brick Deals and LEGO® Bargains.

CamelCamelCamel

This website is going to be your best friend when it comes to trying to save money on LEGO® when buying from Amazon.

CamelCamelCamel will allow you to check LEGO® sets prices easily before you buy.

Once you submit the URL to check you will be able to see whether you are actually getting a good deal or not.

As an example I took a look at the LEGO Boba Fett Helmet set (75277) which at the time of writing this was being sold for $51.99.

Taking a look on CamelCamelCamel it very quickly told me that the current price is just under the average it has sold for since it was listed in March 2020.

camelcamelcamel LEGO® boba fett example save money on lego

If you are still unsure you can check the handy graph too which shows the price trend of this LEGO® set, keep an eye out for any trends when it comes to a drop in price.

Chances are it may drop again at a similar time of the year.

camelcamelcamel graph LEGO® boba fett example save money on lego

Aldi and Target

If you manage to hit these stores at the right time you will occasionally be able to get yourself a very good deal.

Just be mindful of the time of year as there are certain times such as Christmas where you are unlikely to get a deal because LEGO® sets are flying off the shelves being bought as gifts etc.

Creative Brick Boxes

These boxes shouldn’t be ignored, it is a great way to start off your collection of LEGO® bricks.

To put it simply the more LEGO® bricks you have the more building possibilities there are.

As your collection grows you will find that you will save money on LEGO® because you already have a collection of random bricks and pieces.

Boot Sales or Garage Sales

This is a great way to find used sets of job lots of bricks and minifigures.

As LEGO® is incredibly popular it is not hard to find it sitting in at least one of the stalls you visit.

What I love the most about this is you can really haggle to get an even better price, at the end of the day the seller wants to take as little home as possible!

Pick a Brick Wall

This method only really helps you save money on LEGO® if you want specific bricks.

Instead of spending a lot of money on one LEGO® set or job lot offer just to get the last few bricks you needed to complete you build you can go to a pick a brick wall and get the individual pieces.

Personally I would prefer to use Bricklink for things like this but it is a good option to have depending on what bricks you need and how much postage it will cost you on Bricklink.

Thrift Store or Charity Shops

Just like the boot and garage sales mentioned above you will find some real treasures here.

This used to be a really good way to get a deal but the prices are more in line with eBay these days, this doesn’t mean you cannot save money on LEGO® but you may find this to be one of the harder methods mentioned here.

LEGO Stores or LEGO® Online

This should come as no surprise to you that buying LEGO sets from LEGO® themselves can help you save money on LEGO.

However, this isn’t always the case but often what happens if you take too long to buy a LEGO® set is that LEGO® retire it from their stores and then suddenly the price increases everywhere else.

A handy tip if you are waiting for stock to be replenished online you can enter your email and get a notification as soon as its back in stock.

Twitter Feeds

Check out the twitter accounts that share the latest LEGO® deals, it involves next to no effort and as long as you don’t mind notifications on your phone you can find out instantly.

Alternate Brands

This is a taboo subject for some but if you aren’t precious about staying true to the LEGO® brand you can always venture alternate brands such as Mega Bloks or one of the Chinese brands that are out there.

One alternate brand of bricks I personally recommend is from Webricks.com, they offer the same functionality as Bricklink where you can upload parts lists to easily buy your bricks.

Parting Out LEGO® Sets

Earlier on I mentioned about Bricklink and how there are thousands of AFOLs selling LEGO® in their own Bricklink stores.

These sellers very rarely if not never have a secret dealer or a direct contact in to the LEGO® factory to source their stock.

That’s right, they get their pieces from buying LEGO® sets and parting them out.

What this means is that you buy a LEGO® set and you sort all of the bricks and minifigures in to their own storage.

You now have either a stock of LEGO® that can be listed on Bricklink and stored in a methodical way or you can store them to be used when you need them!

Buy LEGO® Sets as an Investment

If you are someone who doesn’t mind waiting to get a good ROI (return on investment) then this could be for you not only as a way to help save money on LEGO® but to also make some extra money along the way if you could resist spending it on LEGO® once you get it!

If you are interested in finding out what LEGO® themes have the best ROI we have a great post that will help you get started when it comes to investing in LEGO.

BrickEconomy.com

This website is a great way to quickly find the value of LEGO® sets and minifigures.

BrickEconomy.com also boasts features that predicts the future value of the LEGO® sets or minifigures you are interested in.

LEGO 10300 LEGO® Back to the future time machine save money on LEGO® example

Start with LEGO® Themes You Enjoy

There is no need to make investing in LEGO® a chore, if you enjoy a particular LEGO® theme then why not stick to it and see what sets are good to invest in.

Another good reason to start with a LEGO® theme you enjoy is because you are more likely to know more about that theme than any others because you are naturally drawn to it.

Conclusion

As you can see there are a lot of ways that you can save money on LEGO, whether you are hunting for a discount in your local Target store or waiting patiently for a deal to appear on Amazon or the LEGO® Online Store you can be sure that you can get the set you want for less that RRP.

Starting your own Bricklink store or investing in LEGO® is something that a lot of people do to fund their LEGO® hobby and you never know, it may end up becoming more than pocket money for you!

<div class="badge-base LI-profile-badge" data-locale="en_US" data-size="large" data-theme="dark" data-type="HORIZONTAL" data-vanity="ferdi-vol" data-version="v1"><a class="badge-base__link LI-simple-link" href="https://www.linkedin.com/in/%E2%9C%85-ferdi-vol-corporate-gifts/?trk=profile-badge"></a></div>
/* Auto generated, hash = 5dceu9kevqjdyuy2uw1atqrsu */
//TODO: Break this file down so that we can actually unit test it.
(function(window) {
  /**
  * Renders all unrendred LinkedIn Badges on the page
  */
  window.LIRenderAll = function () {
    var CALLBACK_NAME     = 'LIBadgeCallback', //Must match callback on helpers.js
        BADGE_NAMES       = '.LI-profile-badge, .LI-entity-badge',
        // TODO -- tracking param for other badge types
        TRACKING_PARAM    = 'profile-badge',
        responsesReceived = 0, //Keeps track of number of responses recieved for proper cleanup when finished
        expectedResponses = 0, //Keeps track of number of responses to expect
        scripts           = [ ], //Keeps track of scripts added for proper cleanup when finished
        childScripts      = {}, //Keeps track of child scripts to render
        badges            = Array.prototype.slice.call(document.querySelectorAll(BADGE_NAMES));

    var i, len, badge, rendered;
    for (i = 0, len = badges.length;  i < len; i++) {
      badge    = badges[i];
      rendered =  badge.getAttribute('data-rendered');
      if (!rendered) {
        expectedResponses++;
        badge.setAttribute('data-rendered', true);
        renderBadge(badge);
      }
    }

    function isCNDomain() {
      if (typeof window !== "undefined") {
        var hostName = window.location && window.location.hostname ||  '';
        return (/linkedin(-ei)?.cn$/).test(hostName);
      }

      return false;
    }

    function generateUrl(isEI) {
      var domainPrefix = isEI ? 'https://badges.linkedin-ei' : 'https://badges.linkedin';
      if (isCNDomain()) {
        return domainPrefix + ".cn/";
      }

      return domainPrefix + ".com/";
    }

    function getBadgeKeyQueryParams(badge) {
      return Array.prototype.slice.call(badge.attributes).filter(function (attr) {
        return attr.name.lastIndexOf('data-key-', 0) !== -1;
      }).map(function (attr) {
        // Most browsers automatically lowercase the attribute name when its being read
        // We are calling lowercase on it again to ensure consistency for any browsers that are lagging behind.
        return encodeURIComponent(attr.name.replace('data-', '').toLowerCase()) + '=' + encodeURIComponent(attr.value);
      });
    }

    /*
    * Renders a single badge on the page
    * @param badge: div element of badge to render
    */
    function renderBadge(badge) {
      var size       = badge.getAttribute('data-size'),
          locale     = badge.getAttribute('data-locale'),
          type       = badge.getAttribute('data-type'),
          theme      = badge.getAttribute('data-theme'),
          vanity     = badge.getAttribute('data-vanity'),
          version    = badge.getAttribute('data-version'),
          isEI       = badge.hasAttribute('data-ei'),
          entity     = badge.getAttribute('data-entity'),
          isCreatePage = badge.hasAttribute('data-iscreate'),
          uid        = Math.round(1000000 * Math.random()),
          baseUrl = generateUrl(isEI),
          queryParams = [
            'locale=' + encodeURIComponent(locale),
            'badgetype=' + encodeURIComponent(type),
            'badgetheme=' + encodeURIComponent(theme),
            'uid=' + encodeURIComponent(uid),
            'version=' + encodeURIComponent(version)
          ],
          url;

      if (version === 'v2') {
        baseUrl += 'view';
        queryParams.push('badgesize=' + encodeURIComponent(size));
        queryParams.push('entity=' + encodeURIComponent(entity));
        queryParams = queryParams.concat(getBadgeKeyQueryParams(badge));
      } else {
        baseUrl += 'profile';
        queryParams.push('maxsize=' + encodeURIComponent(size));
        queryParams.push('trk=' + encodeURIComponent(TRACKING_PARAM));
        queryParams.push('vanityname=' + encodeURIComponent(vanity));
      }

      if (isCreatePage) {
        queryParams.push('fromCreate=true');
      }

      url = baseUrl + '?' + queryParams.join('&');
      badge.setAttribute('data-uid' , uid);
      jsonp(url); //Calls responseHandler when done
    }

    /**
    * Handles a response from the server. Finds badge matching badgeUid and inserts badgeHtml there
    * @param badgeHtml: String representing contents of the badge
    * @param badgeUid: UID of the badge to target
    **/
    function responseHandler(badgeHtml, badgeUid) {
      responsesReceived ++;

      var i, badge, uid, isCreate;
      var defaultWidth = 330 // max possible width
      var defaultHeight = 300 // max possible height

      for (i = 0, len = badges.length; i < len; i++) {
        badge = badges[i];
        // isCreate needed to prevent reloading artdeco script tag
        isCreate = badge.getAttribute('data-iscreate');
        uid   = parseInt(badge.getAttribute('data-uid'), 10);
        if (uid === badgeUid) {
          var badgeMarkup = `<body>${badgeHtml}</body>`
          var iframe = document.createElement('iframe');
          iframe.onload = function() {
            var iframeBody = iframe.contentWindow.document.body;
            // 5 px buffer to avoid the badge border being cut off.
            iframe.setAttribute('height', (iframeBody.scrollHeight || defaultHeight) + 5);
            iframe.setAttribute('width', (iframeBody.scrollWidth || defaultWidth) + 5);
          };
          iframe.setAttribute('frameBorder', '0');
          iframe.style.display = 'block';
          badge.appendChild(iframe);
          iframe.contentWindow.document.open();
          iframe.contentWindow.document.write(badgeMarkup);
          iframe.contentWindow.document.close();
          replaceScriptTags(badge, isCreate);
        }
      }
      tryClean();
    }

  // These functions are needed because badge markup is added via innerHtml property which does not run script tags
  function replaceScriptTags(node, isCreate) {
    if (shouldReplaceNode(node, isCreate)) {
      node.parentNode.replaceChild(cloneScriptNode(node), node);
      childScripts[node.src] = true;
    } else {
      var i = 0,
          children = node.childNodes;
      while (i < children.length) {
        replaceScriptTags(children[i++], isCreate);
      }
    }
    return node;
  }

  function shouldReplaceNode(node, isCreate) {
    return isScriptNode(node) && !childScripts[node.src] && (!isCreate || (isCreate && !node.getAttribute('data-isartdeco')));
  }

  function isScriptNode(node) {
    return node.tagName === 'SCRIPT';
  }

  function cloneScriptNode(node){
    var script  = document.createElement("script");
    for( var i = node.attributes.length-1; i >= 0; i-- ) {
      script.setAttribute( node.attributes[i].name, node.attributes[i].value );
    }
    return script;
  }

    // Gets all incoming responses
    window[CALLBACK_NAME] = responseHandler;

    /**
    * Tries to clean added tags
    **/
    function tryClean() {
      //Clean up after all requests are done..
      //Accounts for people including script more than once
      var done = (responsesReceived >= expectedResponses && expectedResponses > 0) || responsesReceived >= badges.length;
      if (done) {
        delete window[CALLBACK_NAME];

        // remove all script tags
        scripts.map(function(script){
          document.body.removeChild(script);
        });

      }
    }

    /*
    * Makes Jsonp request, responses handles by CALLBACK_NAME
    * @param url String: url of server to make request to
    */
    function jsonp(url) {
      var script = document.createElement('script');
      script.src = url;
      scripts.push(script);
      document.body.appendChild(script);
    }
  };

  if (document.readyState === 'complete') {
    window.LIRenderAll();
  } else {
    window.addEventListener('load', window.LIRenderAll, false);
  }

})(window);
Popular Posts