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!
Comments
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?
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.....?
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.
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.
http://www.bricksync.net/
I stopped posting updates in the forum once BrickSync had its website, it was getting a little spammy too.
I am hopeful that this is the solution I have been waiting for.
Meanwhile... where's the Paypal tip jar on the new site!?
The donation email is visible from within the software, but I guess a web button might make it easier. Thanks.
Thank you,
Kyle
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.
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...
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.
Kyle
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!
Regards Phil
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.
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?
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.
Thanks Phil
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!
Thanks for all the work and help you have provided our community!
Kris
- 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.
Chris
setprice LotID NewPrice
(or setprice *BrickOwlLotID NewPrice, etc.)
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.
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?
Chris
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.
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
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.
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?
==== 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 ====
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?
No. I would like to keep both stores open. I closed my BrickLink shop because the inventory is out of sync.
I should add a command to print out the current configuration.
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.
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?
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.
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