BrickSync

Inventory Synchronization Software between BrickLink and BrickOwl

Contents:

  1. Questions
  2. Answers

Home Page

This is a collection of questions and answers that come up regularly regarding BrickSync.

If you have a question or problem that isn't listed, contact me. If you think you may be facing some bug or problem, please include the relevant log file. You can find all the log files under the directory data/logs/.

Many features are not covered by this FAQ. See the Command List for detailed information.

Frequently Asked Questions

  1. What are API keys? Where do I get these?

  2. How do I add inventory?

  3. How does the blmaster mode work?

  4. Can I turn off the computer?

  5. Heeelllp! BrickLink is throwing me BAD_OAUTH_REQUEST, SIGNATURE_INVALID and/or TOKEN_IP_MISMATCHED errors!

  6. Do I need BrickStore/BrickStock?

  7. When synchronizing, what does "Omit X items in X lots due to BLIDs unknown to BrickOwl." mean?

  8. What can I do about unknown BLIDs?

  9. How do I update BrickSync to the latest version?

  10. How do I make BrickSync retain empty BrickLink lots?

  11. How can I update my prices?

  12. What is a sync operation? What triggers a deep synchronization?

  13. How can I make some items available only on BrickOwl or BrickLink?

  14. Does BrickSync synchronize what's in the BrickLink stockrooms?

  15. I want to edit just a single item's quantity, remarks or such, what now?

  16. How do I quickly locate an item for the various edit commands?

  17. What about cancelled orders?

  18. I want to stay in blmaster mode permanently. Why not?

  19. Can I trigger an immediate order check without typing check?

  20. How do I use BrickOwl's various grades of used condition?

Answers

  1. What are API keys? Where do I get these?
  2. You can obtain your BrickLink API keys from the BrickLink API page. Unless you know your IP address is static, I suggest to set both the "allowed IP" and "mask IP" to 0.0.0.0

    You can obtain your BrickOwl API keys from your Profile page, under the API Keys tab. Make sure to give the API key permission to view/edit your orders and inventory.

    BrickSync requires API keys to fetch orders and edit your inventory on both marketplaces.

  3. How should I add new inventory?
  4. You can use the blmaster mode, or the add or merge commands. See the Command List for more information.

  5. How does the blmaster mode work?
  6. It allows modifying your store inventory through the BrickLink interface, either web or XML. While the blmaster mode is active, all order processing is suspended.

    Step #1: Type blmaster on in BrickSync
    Step #2: Modify your inventory on BrickLink as much as your heart desires
    Step #3: Type blmaster off in BrickSync, and everything is synchronized

  7. Can I turn off the computer?
  8. You can close BrickSync, turn off the computer and resumes execution later. If you do that, note that orders will not be synchronized until you run BrickSync again. This is not generally a good idea due to the risk of selling the same items on both marketplaces.

    You must not allow the computer to sleep or hibernate, it needs to be awake and active to process orders. If the computer goes to sleep, BrickSync's watchdog thread will panic and print errors, as it will see BrickSync has stopped responding for way too long.

  9. Heeelllp! BrickLink is throwing me BAD_OAUTH_REQUEST, SIGNATURE_INVALID and/or TOKEN_IP_MISMATCHED errors!
  10. You probably created a BrickLink API key that was restricted to a IP submask, and then your IP address changed. Create a BrickLink API key with an "allowed IP" and "mask IP" both set to 0.0.0.0

    If it's your first time running BrickSync, also make sure you copied the 4 API values in the proper variables of the configuration file (data/bricksync.conf.txt)

    Lastly, if BrickLink is currently going through its daily/monthly maintenance, you will probably see a bunch of API errors. Operations will resume normally when BrickLink comes out of maintenance.

  11. Do I need BrickStore/BrickStock?
  12. You don't need BrickStore/BrickStock to use BrickSync. There are many useful commands working with BrickStore/BrickStock BSX files though. All backups and orders are also stored as BSX files.

    I'm developing and using my own inventory management software, also able to read BSX files, but it's not yet ready to go public.

  13. When synchronizing, what does "Omit X items in X lots due to BLIDs unknown to BrickOwl." mean?
  14. BrickSync failed to translate some BrickLink IDs into BrickOwl IDs, and these items won't be uploaded to BrickOwl. See the following question.

  15. What can I do about unknown BLIDs?
  16. The owlresolve command will print the complete list of unknown BLIDs. The unknown BLIDs can be submitted for the matching items in the BrickOwl catalog (under the Edit tab), BrickSync will be able to resolve the BLIDs once they are approved (type owlresolve to update). Alternatively, you can use the owlsubmitblid command to submit a BLID to a BOID in the BrickOwl catalog.

    If you don't want to wait for catalog submissions to be approved, the command owlforceblid can immediately create a BLID-BOID match in your BrickSync local translation cache. You can then upload any missing item right away, with the command sync brickowl.

  17. How do I update BrickSync to the latest version?
  18. To update BrickSync, you just need to replace your existing executable file (the .exe on Windows) with the one found in the latest BrickSync package. Don't replace any other file, especially keep your existing data/ subdirectory intact.

    After replacing the executable, simply launch BrickSync again. Note that BrickSync will always be able to read files generated by previous versions.

  19. How do I make BrickSync retain empty BrickLink lots?
  20. BrickSync does not retain empty lots by default. To change this behavior, you need to change the configuration variable retainemptylots in the file data/bricksync.conf.txt:
    retainemptylots = 1;

    If you retain BrickLink lots, you might want to reuse matching BrickOwl lots as well. This is enabled through the brickowl.reuseempty configuration variable:
    brickowl.reuseempty = 1;

    After modifying data/bricksync.conf.txt, remember that you need to launch BrickSync again to read your new configuration.
    You can type help conf to print your current configuration. If variables are defined multiple times, only the last assignment takes effect.

  21. How can I update my prices?
  22. You can use the blmaster mode and update them on BrickLink. Another convenient option is to update all prices for matching lots from a BSX file. Consult the Command List page for the loadprices command, there's also loadnotes, loadmycost and loadall.

    Note that prices are synchronized but sale percentages are not, so that you can run different sales on each marketplace.

  23. What is a sync operation? What triggers a deep synchronization?
  24. A deep synchronization is an operation performed by BrickSync to make sure a remote service (BrickLink, BrickOwl or both) matches exactly the inventory being tracked locally by BrickSync. The slightest difference will be corrected to ensure a perfect match.

    The operation can be manually triggered by typing sync. For example, BrickSync may suggest to run a sync operation after a owlresolve command, to upload the newly resolved items to BrickOwl. The verify command also verifies synchronization but without performing the required changes.

    BrickSync may also automatically perform a deep synchronization, typically in order to detect and fix any inventory mismatch. This typically occurs when:
    - A networking error occurs, and BrickSync doesn't know if an update was received and processed by the server
    - An important inventory update fails, such as adjusting a lot's quantity

  25. How can I make some items available only on BrickOwl or BrickLink?
  26. You need to tag these items: insert the ~ character anywhere in the remarks (private notes) of these items, and BrickSync won't see them.

  27. Does BrickSync synchronize what's in the BrickLink stockrooms?
  28. No, BrickSync does not see or synchronize the content of the BrickLink stockrooms.

  29. I want to edit just a single item's quantity, remarks or such, what now?
  30. Please don't use the blmaster mode for this, it's overkill and consumes a lot of bandwidth. Instead, you can use commands such as setquantity, setremarks and so on. These commands require an item identifier, see the following question. Also see the Command List for more information.

  31. How can I quickly locate or identify an item?
  32. The find command searches through your inventory for items that match all the terms specified. It searches through all fields: name, color, remarks, quantity and so on. From the search results, you can use the LotID as argument for commands such as setquantity, which adjusts a lot's quantity. Examples:
    find "Brick 2 x 4" Black
    find 3001 "luish Gray"
    find B36 Red
    This is easily faster than searching your inventory by other means. There's no picture though.

  33. What about cancelled orders?
  34. BrikcSync does not put the inventory back for sale for cancelled orders. The correction has to be done manually. On BrickLink, you could use the blmaster mode while adding the items back. The add command can also be used to put the items back in stock, using the BSX file that was saved for the cancelled order. Examples:
    add data/orders/brickowl-12345678.bsx
    add data/orders/bricklink-12345678.bsx
    If you are confused about if items were added back twice, you can use sync to make sure both BrickLink and BrickOwl match the inventory tracked by BrickSync.

  35. I want to stay in blmaster mode permanently. Why not?
  36. BrickSync always tracks your store's true inventory, it knows how your inventory should be exactly in every detail. If an update to BrickLink or BrickOwl fails with ambiguous results, such as the connection being closed without receiving a reply from the server, we can not know if the update was received and processed by the server. Therefore, BrickSync must connect back, fetch the inventory and apply any correction necessary (a sync operation)

    If it were possible to edit the BrickLink inventory just when BrickSync needs to synchronize after failed updates, it would be ambiguous if a BrickLink inventory change came from an external source or from a failed API update. Therefore, for maximum robustness, BrickSync must stop processing orders when the blmaster is active. Due to the design of BrickLink's API, there is no other way.

  37. Can I trigger an immediate order check without typing check?
  38. Yes. If you use email monitoring software and want BrickSync to process orders immediately when receiving an email, you can send the SIGUSR1 signal to the bricksync process (Linux and OSX only). There's no equivalent mechanism available on Windows.

    This is not generally required, the software polls BrickLink and BrickOwl for new orders every couple minutes (unless autocheck is disabled). You can configure the polling intervals in the configuration file.

  39. How do I use BrickOwl's various grades of used condition?
  40. When uploading items in used condition, BrickSync uses a home-made natural language parser to read a lot's comments (public notes) and estimate its quality grade. It can understand compound statements and some 200 words of English. If you have recently updated some comments of your inventory and would like BrickSync to regrade lots in used condition, use the regradeused command. Some examples of comments and the grade given by the parser:
    No large scratches   (good)
    Few tiny scratches   (good)
    Many tiny scratches   (acceptable)
    Absolutely mint   (like new)
    Slightly faded   (acceptable)
    Not quite new   (good)
    starting to rub off   (acceptable)
    Heavy play wear   (acceptable)
    Chewed on   (acceptable)
    works perfectly   (like new)
    Excellent condition, but the glass is missing   (good)