A browser-based tool to batch-add Bill of Materials (BOM) to your MakerWorld 3D printing models.
Automatically adds a BOM (parts list) to all your MakerWorld lightbox/LED sign models. Perfect for:
- Adding required electronics parts (LED strips, connectors, etc.)
- Ensuring users know what components they need
- Saving hours of manual editing
- Fully Automated - Processes hundreds of models automatically
- Resumable - Stop anytime, progress is saved, resume later
- Safe - Preserves all existing data (images, settings, instances)
- Smart - Skips models that already have a BOM
- Rate Limited - Built-in delays to avoid API throttling
- Browser-Based - No installation, runs in your browser console
- A MakerWorld account with published models
- A modern web browser (Chrome, Firefox, Safari, Edge)
- Your models must be published (not drafts)
# Download the script
curl -O https://raw.githubusercontent.com/VIDGuide/maker-world-bulk-update/main/bom-batch-update-resumable.jsOr just download it directly and open in a text editor.
- Go to https://makerworld.com/en/my/models
- Make sure you're logged in
- Press F12 to open Developer Tools
- Click the Console tab
- Copy the entire contents of
bom-batch-update-resumable.js - Paste into the browser console
- Press Enter
The script will:
- Fetch all your models
- Filter to lightbox/LED models
- Skip models that already have BOMs
- Update each model with the BOM
- Publish the changes
By default, the script only processes 3 models for testing:
const TEST_LIMIT = 3; // Process first 3 modelsTo process ALL models, edit line 17:
const TEST_LIMIT = null; // Process all modelsTo change the parts being added, edit the STANDARD_BOM array (around line 20):
const STANDARD_BOM = [
{
"value": "UNI01410",
"label": "100x1mm (1PCS) - KA007",
"sku": "B-KA007",
// ... more fields
},
// Add more parts here
];The script automatically saves progress to your browser's localStorage:
- Safe to stop - Press Ctrl+C or close the browser anytime
- Auto-resume - Just run the script again, it picks up where it left off
- View progress - Check browser console for "Previously processed: X models"
To start over from scratch:
// In browser console:
clearBomProgress()
// Or:
localStorage.removeItem('bomUpdateProgress')- Fetch Models - Calls MakerWorld API to get all your published models
- Filter - Identifies lightbox/LED models by title and tags
- Skip Existing - Checks
bomsNeededflag to skip models with BOMs - Get Draft - Opens edit page to get draft ID
- Preserve Data - Fetches existing draft data (images, settings, etc.)
- Update BOM - Sends PUT request with new BOM + all existing data
- Publish - Submits the draft to publish changes
- Save Progress - Stores completed model IDs in localStorage
- Preserves Images - Fetches and preserves all existing images
- Preserves Settings - All model settings, tags, descriptions unchanged
- Preserves Instances - All print variants and plates preserved
- Idempotent - Safe to run multiple times on same model
- Rate Limited - 1 second between requests, 20 second pause every 20 models
- No External Dependencies - Pure JavaScript, no npm packages
- Speed - ~3-4 minutes for 200 models
- Rate Limiting - Built-in delays prevent API throttling
- Batch Processing - Processes in groups of 20 with pauses
- Your session may have expired
- Refresh the page and try again
- Make sure you're logged into MakerWorld
- This model may not have a draft created yet
- Manually open the edit page once, then re-run the script
- Check browser console for error messages
- Verify the model is published (not private)
- Some models may be in "verifying" state (normal, takes 5-15 min)
- This is normal! Progress is saved
- Just paste the script again to resume
- Check console for "Previously processed: X models"
======================================================================
MakerWorld BOM Batch Updater - RESUMABLE
======================================================================
Started: 3/31/2026, 12:00:00 PM
Previously processed: 0 models
βΉοΈ [12:00:01 PM] Fetching your published models...
βΉοΈ [12:00:02 PM] Fetched 50 models (total: 50/282)
βΉοΈ [12:00:03 PM] Fetched 50 models (total: 100/282)
...
Total models fetched: 282
Lightbox models: 200
Already have BOM: 3
Need to update: 197
Remaining to process: 197
======================================================================
Ready to update 197 models with:
- B-KA007: 100x1mm COB LED Strip (qty: 1)
- B-XC002: USB-A to 2 Pin 8mm Connector (qty: 1)
Estimated time: 3 minutes
π‘ Progress is saved automatically - safe to stop/restart!
β³ Starting in 3 seconds...
[1/197] Sky Racing Logo - LED Light Up Sign
Design ID: 2484645
Getting draft ID... β
7411703
Fetching existing data... β
Updating BOM... β
Publishing... β
Debug and discovery tools in the /utils folder:
discover-bom-items.js- π Capture BOM JSON from any part you addfind-bom-indicator.js- Find which models already have BOMscheck-bom-flags.js- Inspect BOM data structure
See utils/README.md for details.
Additional guides in the /docs folder:
ADDING_CUSTOM_BOM_ITEMS.md- How to find and add any Bambu partQUICKSTART.md- Quick start guideANALYSIS_SUMMARY.md- Technical analysis
Additional docs in the /docs folder:
QUICKSTART.md- Quick start guideANALYSIS_SUMMARY.md- Project analysis and technical details
This project is licensed under the MIT License - see the LICENSE file for details.
β You can:
- Use this script for personal or commercial purposes
- Modify and distribute it
- Use it in your own projects
β You must:
- Include the original copyright notice
- Include the license text
β You cannot:
- Hold the author liable for any issues
- Expect warranties or support
Contributions welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
- Improve documentation
This is an unofficial tool not affiliated with MakerWorld or Bambu Lab. Use at your own risk. Always test with a few models first before running on your entire collection.
The script is designed to be safe and preserve all existing data, but you should:
- Test with a small batch first
- Keep backups of important models
- Monitor the first few updates to ensure they work as expected
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- MakerWorld for the API
- The 3D printing community for inspiration
- All beta testers who helped refine this tool
If this script saved you time or helped your projects, consider buying me a coffee!
Your support helps me maintain and improve this tool for the community! β€οΈ
Happy Making! π¨
