BrickSync, Website and Release Version

BrickSync, the piece of software running on a seller's own computer to synchronize inventories between BrickOwl and BrickLink, finally has a home of its own!
http://www.bricksync.net/

The release version 1.0.0 is also available (for Linux 64 bits, Windows 64 bits, Windows 32 bits and OSX 64 bits).

Thank you to all the beta testers! The beta testing thread was getting full of obsolete and inaccurate information, especially regarding BrickSync's past limitations. I feel important to clarify a few points:
  • You can now safely have as many identical lots as desired.
  • You can keep editing your inventory on BrickLink if you so desire, but you must use the blmaster command.
  • You can retain empty lots, just set retainemptylots = 1; in your data/bricksync.conf.txt configuration file.
  • You can use BrickSync with any inventory size. A seller with over 250000 items will be gently invited to support BrickSync, otherwise a little math question/puzzle will be asked to check for new orders.
And if you ever become rich and famous thanks to this software, please remember the software is primarily donation supported. :) Thank you!

image
«1

Comments

  • 70 Comments sorted by Votes Date Added
  • 32 bit? That means I can try it :).

    I am a bit "afraid" however, and will probably have a lot of questions along the way. I am a real noob with this stuff.

    The first:
    - I assume I get an "ok" button before any changes in inventories are made?
    - What happens when I get an order and the program is not running? I suppose nothing, but does is automatically sync when I run the program again, or do I need to do forge something then?


  • I don't get past the "order saving part"

    Last lines of the log:


    21:16:18 INFO: Received inventory of BrickLink Order #4737204
    21:16:18 INFO: Saved BrickLink order #4737204 at "data\orders\bricklink-4737204.bsx".
    21:16:19 INFO: Received inventory of BrickLink Order #4762992
    21:16:19 INFO: Saved BrickLink order #4762992 at "data\orders\bricklink-4762992.bsx".
    21:16:20 INFO: Received inventory of BrickLink Order #4768900
    21:16:20 INFO: Saved BrickLink order #4768900 at "data\orders\bricklink-4768900.bsx".
    21:16:22 INFO: Received inventory of BrickLink Order #4771312
    21:16:22 INFO: Saved BrickLink order #4771312 at "data\orders\bricklink-4771312.bsx".

    The last order was the last of 4 orders that where not filed, then it stops. Tried it 5 times, everytime at the same point.....?
  • edited October 2014 Vote Up0Vote Down
    Hum! Can you send me the log file by private message?

    EDIT: Actually, it's probably resolving thousands of BOIDs for your entire inventory. You can confirm this by checking the log file. I should print something to let the user knows we are resolving BOIDs.
  • edited October 2014 Vote Up0Vote Down
    - I assume I get an "ok" button before any changes in inventories are made?
    You get an yes/no question during the initial synchronization, but it's entirely automated after that. Note that you get backups as BrickStock BSX files before every change. You can disable autocheck and type check manually, if you prefer to see all changes.
    - What happens when I get an order and the program is not running? I suppose nothing, but does is automatically sync when I run the program again, or do I need to do forge something then?
    If you interrupt the program, it will cleanly resume operations later, catching up with past orders, as if nothing had happened.

    If an inventory update was interrupted by yanking on the ethernet cable, it will figure out what updates have gone through (sync operation) and continue where it left.

    If writing a file was interrupted by a power cut, it will recover smoothly thanks to file journaling bypassing internal hard drive caches.

    If your computer catches fire and explodes... well, there's no protection against that yet :), network redundancy or remote journaling would probably be overkill.
  • I have received several emails from people running old versions of BrickSync... Before requesting a new feature or reporting a possible glitch, please make sure you are running the latest version. :) You can also consult the change log for each version:
    http://www.bricksync.net/

    I stopped posting updates in the forum once BrickSync had its website, it was getting a little spammy too.
  • I will probably test this out this weekend. I have been running a VERY small store with separate inventory here on BrickOwl because I've been very hesitant to do manual syncing between the two sites.
    I am hopeful that this is the solution I have been waiting for.

    Meanwhile... where's the Paypal tip jar on the new site!?

  • @monochrome I figured most people would run the software before deciding to donate. :)

    The donation email is visible from within the software, but I guess a web button might make it easier. Thanks.
  • @Stragus pretty basic question about the software. I am currently using BrickPacker for my BO/BL syncing. Does BrickSync happen instantaneously after an order is placed (once all set up) or do I need to have the program running in order for it to sync?

    Thank you,

    Kyle
  • The program must be running, it's your computer that is doing the synchronization and inventory management.

    If you want to shut down the computer during the night for example, you can close the software and resume execution later. In such a scenario though, the inventories won't be synchronized while the software is not running, with a very small risk of a same item being sold on both marketplaces.
  • Make an mobile version! B-)
  • There's a new BrickOwl bug today since a few hours: new BrickOwl lots created from the API presently end up with the wrong color. I have had 3 users tell me this already, but this is not a BrickSync bug, and Lawrence has been notified.

    I recommend avoiding creating new lots from the API for today (you can upload BSX the traditional way). Once this BrickOwl bug is fixed, download BrickSync 1.1.3 and type "sync brickowl" for a complete check-up of your inventory, including colors even if LotIDs match.

    On a related topic, I'm thinking BrickSync should be able to fetch and print "news" to the users, that should be more convenient for this kind of communication...
  • The BrickOwl API bug mentioned in the previous post has been fixed. Thanks Lawrence! Just upgrade to the latest version and type "sync brickowl" to fix any glitch.

    It's also good to know a bunch of people are using the software. :) It's very quiet when everything runs smoothly, but I received many emails for that bug today.
  • @Stragus I am currently trying to get set up on my Mac. I am running into this:

    Last login: Sat Nov 1 22:29:23 on ttys000
    Johnson-Family-MacBook-Pro:~ kyle$ /Users/kyle/Documents/Sport\ Bricks/BrickSync/bricksync ; exit;
    BrickSync 1.1.5 - Build Date Nov 1 2014 19:03:10
    Copyright (c) 2014 Alexis Naveros
    Contact: Stragus on BrickOwl and BrickLink
    Email:
    Coupon Donations: Stragus on BrickOwl and BrickLink
    Paypal Donations:

    ERROR: Failed to write the lock file at "data/bricksync.lock".
    logout


    [Process completed]
    Thanks!

    Kyle
  • @KyleJohnson11 You may have missed that little note:
    Linux and OSX users: Run ./bricksync from its own directory, it expects to find ./data/ in the current working directory.

    You can open a terminal, use the cd command to change the current directory to where you unpacked the tarball, and run ./bricksync

    That being said, there's surely a way to change the current working directory directly in the graphical interface (right click? a shortcut's properties?) but I'm not too familiar with OSX.

    Lastly... please don't post email addresses in a forum, spam bots are on the hunt! :)
  • Hi, this looks great thanks for all the hard work that has been put in, 1 quick question. my office PC has a habit of crashing so I was wondering can I load this onto the HTPC in the living room which is on 24/7 and then also have a copy running in sync on the office PC's to do all the other tasks as my PC crashing is putting me off making the move away from brick packer which does everything for me remotely, as I don't want problems with items selling twice etc, If I do move over I will gladly contribute some £$£$ as it will save me a small fortune.
    Regards Phil
  • edited November 2014 Vote Up0Vote Down
    You should have only one copy of BrickSync running at any time. You can move it to a different computer by copying the entire /data/ directory to the other machine (with any operating system).

    You shouldn't have problems running BrickSync even on a computer with a "habit of crashing", it's designed to smoothly handle power cuts or other interruptions... That being said, it would still be best to solve that problem. :) Is it a hardware or a software problem?

    BrickPacker can be more appropriate for sellers without a computer that's connected 24/7, otherwise there's a (small) risk of double selling.
  • OK once set up do I need to use bricksync to do anything other than the syncing on its own as the living room PC is on 24/7 and does not crash so would be fine to use this, however as this is a media center we do not work on it but can use for quick email checks etc, the PC's me and the wife use for listing on BL and BO are not left on and mine crashes, (I think it needs a new Motherboard),
    If i can leave it to run on the main pc and just check it every now and then if they has been a problem or something and list and part out set's using the office PC's that would be great,
    If not could I have the data on a NAS box and access it with more than one machine?
  • @Shedloadobricks I recommend reading the quick tips:
    http://www.bricksync.net/#tips

    The machine has to be minimally accessible. Minimally, you would want to interact with BrickSync to:
    - Add inventory
    - Update prices
    - Return a cancelled order to the inventory

    A NAS box wouldn't help in this case, it's interaction with the software that's required. Later on, I plan to release BrickStore-style software able to connect to BrickSync remotely and manipulate the "live" inventory, but it's far from being ready.
  • ok thanks I might have to load it on the wife's PC and leave that on 24/7 and give it a try I can always do a remote desktop session to save walking the 3 steps to get to her machine, lol.
  • Creation of item rejected, Items with colour on bricklink set to "N/A" will not copy over correctly stickers plastic flags paper items etc are generally put down as colour n/a but not on brickowl can we have some way to correct this?

    Thanks Phil
  • @Shedloadobricks Yes, the creation of parts with color Not Applicable is currently rejected by BrickOwl's API. It's clearly appropriate for certain items (carton, fabrics, etc.) though, and Lawrence said he would correct that oversight.

    In the meantime, two possible workarounds would be to remap the color for these parts or to output a BSX file for manual upload... but I didn't implement either as I would rather see this little API flaw corrected!
  • Question: Currently I use BL as my "Master" inventory. If I part out a new set or take something from inventory, I remove it from BL first, then download my inventory in Brick Stock and upload to BO. When I begin using Brick sync, can I still treat BL as my master and when I upload new part outs, do I still upload to BL first? Sorry if explained elsewhere. I understand the syncing new orders part, but need clarification on how to handle adding new inventory.

    Thanks for all the work and help you have provided our community!
    Kris
  • If you use the command "blmaster on" you can make all the changes you want to BL and then when you are done use command "blmaster off" and bricksync with make all the changes for Brick Owl automatically.
  • @brickstackers If you want to keep editing on BL, the process would look like this:
    - Type command: blmaster on
    - Edit the BL inventory as much as your heart desires
    - Type command: blmaster off
    Order processing is suspended while in blmaster mode, but any order received will be properly processed when exiting that mode.

    Alternatively, if your new inventory to upload is in some BSX file named "NewStuff.bsx", you could just type add NewStuff.bsx. Matching lots would be merged, new lots would be created.

    If you want to update prices of existing lots from that BSX file, you could type loadprices NewStuff.bsx. Or, to update everything (prices/comments/remarks/bulk) for existing lots, type loadall NewStuff.bsx.
  • if I update a price for an item with BL master mode, will it update the BO price too?

    Chris
  • edited November 2014 Vote Up0Vote Down
    @budgetkids Sure, it propagates all changes. Though if you just want to update a single item's price, it might be more convenient to type:
    setprice LotID NewPrice
    (or setprice *BrickOwlLotID NewPrice, etc.)
  • Perhaps this is outside of the scope of this software, and might fit better in a future inventory management program, but I have a few ideas of new features I'd like to see.

    I'd like to have a central list of all my orders received between both sites.

    The way I imagine it, when BrickSync detects an order, it simply writes a summary to a csv file. Number of lots and items, total value, currency, site sold on, my cost, etc. It could also track some info that doesn't seem to be available on either site, such as inventory turnover (items in order/ items in inventory, to get the % of the inventory sold. Same calculation using price, as well). This becomes useful when looking at a month's worth of orders.

    There are other things as well, are probably more leaning to inventory management -- stockroom lots that replenish as live lots are sold (if I have 500 of something and everyone else only has one or two, I may not want to list it all at once). Different pricing structures for each site. Restocking alerts (if a specified lot gets low on stock)....


    --
    Marc.
  • edited November 2014 Vote Up0Vote Down
    @monochrome Yes, two other users also expressed a similar desire to have BrickSync record order details, as well as a sale history for each part.

    I'm certainly going to implement something regarding sale history, but I'm not quite sure how it should be designed yet.

    Do we want to append everything to a huge log file and let the user figure it out? Should BrickSync maintain an internal database for all lots, and be able to output detailed information (and history) for any part on demand? Should that database be unreadable binary unless commands are used to export it to various friendly formats?

    Feel free to share your thoughts on the topic, it could help figure out the best way to proceed.

    I have also thought about automated stockroom management: lots which wouldn't be entirely shared but more items would be added when the lot quantities are running low. But how would people prefer to manage this? Any kind of automated system should be highly configurable somehow, proper decision taking depends on so many factors... How would you like to see such a feature work?
  • What would be cool is if any website gets an order they would go into the program and then we could just print a customized invoice. Such as having our logo ontop and we could include/exclude items in the invoice I ship customers.

    Chris
  • @stragus , so I will not upload my bsx file to bricklink anymore (regarding new inventory) ? Sorry a bit confused...
  • @brickstackers You can upload new inventory to BL from a BSX file if you want, just make sure to use the blmaster command as described above.

    Any change you want to make to your inventory through the BL interface should occur while the blmaster mode is enabled (blmaster on). Turn it off (blmaster off) when you are done.
  • Hello
    I am not very familiar with programming, where do I ind the API(consumerkey, secret, token...) on Bricklink?

    bricklink.consumerkey = ""; My login name to access BL?
    bricklink.consumersecret = ""; My password for the login ?
    bricklink.token = ""; ??????
    bricklink.tokensecret = ""; ????

    Thank you in advance
    Christian
  • @Maraxette I'll send the link to register for the BL API in a private message. You'll get the four values to insert between the "", such as "a2e05fd1234";

    When you register, I recommend setting both the IP and the IP mask to 0.0.0.0 to avoid any problem if your IP is dynamic.
  • I looked around and couldn't find an answer to this. I set my data/bricksync.conf.txt file to retain empty lots, and now I'm getting this error from the BrickLink API.

    Invalid Data Status: Invalid Input: Update would result in 0 quantity in your inventory without being in stockroom

    I have all of my lots set to retain after sold out on BrickLink. Does this mean no empty lot retention for now?
  • @Loremonger That is unexpected, retaining empty lots should be working fine. Are you running the latest version, 1.2.6?
  • Maybe I just have something set up wrong. Here's the whole error message if it helps:

    ==== HEADERS ====
    http/1.1 200 ok
    server: nginx/1.4.7
    date: fri, 05 dec 2014 00:10:46 gmt
    content-type: text/html;charset=utf-8
    content-length: 192
    connection: keep-alive


    ==== DATA ====
    {"meta":{"description":"Invalid Data Status: Invalid Input: Update would result in 0 quantity in your inventory without being in stockroom","message":"RESOURCE_UPDATE_NOT_ALLOWED","code":422}}
    ==== END ====
  • And yes I'm on 1.2.6.
  • edited December 2014 Vote Up0Vote Down
    @Loremonger I'm inspecting your logs, thanks.

    First, make sure to create a BL API key with the IP and IP mask set to 0.0.0.0, it was often rejecting your authentification due to a changed IP.

    Second, I can see from the logs (and online) that your BL store is closed. There are some serious BL API issues when one is trying to update a closed BL store... It lists an empty inventory, and editing existing lots produces incorrect error messages.

    I assume the situation is you would prefer to just keep the BrickOwl store open, but still get orders and your inventory as BSX files?
  • @Loremonger

    First, make sure to create a BL API key with the IP and IP mask set to 0.0.0.0, it was often rejecting your authentification due to a changed IP.
    ^^How do I do this?^^
    @Loremonger
    Second, I can see from the logs (and online) that your BL store is closed. There are some serious BL API issues when one is trying to update a closed BL store... It lists an empty inventory, and editing existing lots produces incorrect error messages.

    I assume the situation is you would prefer to just keep the BrickOwl store open, but still get orders and your inventory as BSX files?
    No. I would like to keep both stores open. I closed my BrickLink shop because the inventory is out of sync.
  • edited December 2014 Vote Up0Vote Down

    ^^How do I do this?^^
    When you register and create your BL API keys, make sure to set both the IP and IP mask to 0.0.0.0
    No. I would like to keep both stores open. I closed my BrickLink shop because the inventory is out of sync.
    Got it. It's out of sync because a changing IP invalidated your current API key. After fixing the API key, BrickSync will be able to connect and synchronize the inventories. Make sure your BL store is open before launching BrickSync with your new API key.
  • Thanks. Bricksync seems to be updating fine now without errors, but it still isn't retaining lots. I have retainemptylots set to 1.
  • @Loremonger Can you check if the configuration variable retainemptylots wouldn't be defined twice? In the default configuration file, there's an assignment with a value of zero near the end of the file... Only the last assigned value will be used.

    I should add a command to print out the current configuration.
  • Actually, it worked on my latest order. :)
  • Cool. :) BL lots should be preserved when BrickOwl orders are received, but BL orders will just use the current "retain" flag for all lots. Having BrickSync fix the "retain" flags (to match the "retainemptylots" option) would consume thousands of API calls, there's no mass edit from the API...
  • edited January 2015 Vote Up0Vote Down
    I don't generally post about updates, but some new commands available in BrickSync version 1.3.3 may need more detailed explanations. The commands could be especially useful to catalog contributors.

    Users may already know the command owlresolve, to list all BLIDs from your inventory that are unknown to BrickOwl. We now have a few extra commands: owlqueryblid, owlsubmitblid, owlupdateblid and runfile.

    You can use owlqueryblid to find the BOID for a given BLID, such as owlqueryblid lor061. The optional -f flag can be set to force an API query even if BrickSync has that BLID in its translation cache (and the cache will be updated if the BOID mapping differs).

    The command owlsubmitblid submits a change to the BrickOwl catalog, assigning a BLID to a BOID. It won't submit anything if the BLID already resolve to the specified BOID (again, the -f flag forces an API query, bypassing BrickSync's translation cache). Syntax is owlsubmitblid BOID BLID, for example: owlsubmitblid 730638 lor060.

    The command owlupdateblid also submits a change to the BrickOwl catalog. First, it resolves the BOID for a given BLID, then submits a new BLID to that resolved BOID. The command won't submit any change if the first BLID doesn't resolve to any BOID. Syntax is owlupdateblid oldBLID newBLID, for example: owlupdateblid 3068bpb093 3068bpb0093. This makes it very easy to submit updates of BLIDs, especially for trivial changes such as adding a '0' somewhere.

    Finally, the command runfile lets you load a text file and execute all commands contained in it. Example: runfile MyListOfCommands.txt. The commands should be separated by line breaks.

    These new commands allow one type a text file with, for example, as many owlupdateblid commands as desired, then execute all of them at once by runfile. Remember that it may take 24-48 hours for submissions to be approved by a catalog administrator.

    I can add more commands to edit other data of the BrickOwl catalog (width, length, height, weight, etc.). Just let me know if there's interest in submitting catalog contributions in this manner. To me, typing things up in a text file certainly sounds less tedious than clicking around in webpages!

    On a slightly related topic, would anyone be interested to contribute user-friendly guides to BrickSync? I'm terrible at writing documentation. :) Thanks.
  • Extra note regarding the previous post...

    In order to avoid submitting thousands of duplicate updates, note that I'll soon submit a bundle of about 3000 BLID updates: all the BLIDs for decorated parts that went from 3 extra digits to 4 extra digits some time ago.

    Ideally, someone should write a script to parse the BrickLink catalog change logs and output a text file with a bunch of owlupdateblid commands. Any volunteer?
  • I've already submitted a couple hundred of those add-a-zero changes to the BO catalog. Are you able to see what is still unmapped so that you don't spam Lawrence? He has to look at and approve each one individually, even if its a duplicate request I did suggest a while back a "missing info" tag that couple be queried via API, but I don't believe it was created.
  • @DadsAFOL Yes. Before submitting any update, these commands check if the new BLID already resolves to the specified BOID. When that's the case, it means the mapping is up-to-date and the command doesn't submit anything.

    Of course, that doesn't help if the changes were submitted but not yet approved... in which case Lawrence will indeed be spammed with hundreds of duplicates. I have submitted about 4000 BLID updates today.

    I hope he has a "mass approval" button.
  • @stragus:
    I can add more commands to edit other data of the BrickOwl catalog (width, length, height, weight, etc.). Just let me know if there's interest in submitting catalog contributions in this manner.

    That would indeed be a great way to mass upload sizes an weights, particulary for minifigs, many old ones have pretty basic parts, so their weight and sizes are the same (just colors and decoration changes). Ideally the startingpoint command should be the blid.

    Eric
Sign In or Register to comment.