🚫
Estimator Offline
This service is temporarily unavailable.
🖨️
3D Print Estimator
Upload your model and get an instant price
1
Upload
2
Options
3
Price
4
Quote
01 — Upload Your Model
📐
Click to browse or drop your file
.stl · .obj · .3mf · up to 50MB
Reading file...
03 — Your Estimate
🗂️
3D preview
📏 × × mm 🔺 tris
Volume
cm³
Filament
grams
Print Time
est.
Price
per unit
Quantity:
1
04 — Request This Quote
🎉
Thanks! We'll be in touch soon.
Powered by QuoteMyPrint

⚙️ Supplier Dashboard

// Changes save instantly and update the customer view

Active Materials
Default Markup
Min. Order
📥 Submitted Quotes
Loading quotes…
Customer Widget Active
Disable to show an "offline" message to customers
Show Cost Breakdown to Customer
Let customers see the material vs. labor split
Customer Quote Mode
How customers interact after the price is shown
Customer sees the instant price, then an optional quote request form.
Enable 3D Model Preview
Show a rotating preview of the uploaded model
🏷️ Business Identity
Business Name
Tagline
Logo URL (optional)
Logo Emoji (if no URL)
Contact Email
Website URL
My 3D Print Shop
Fast. Precise. Affordable.
🔤 Typography
Widget Font
QuoteMyPrint
Fast. Precise. Affordable. — Aa Bb Cc 1 2 3
🎨 Color Theme
Accent Color
#00e5ff
Button Color
#7c3aed
Background
#0a0a0f
Card Background
#12121a
Text Color
#e8e8f0
Muted Text
#6b6b8a
Input Field Background
#1a1a26
Placeholder Text
#6b6b8a
👁️ Widget Display
Show Logo
Display logo / emoji in the widget header
Show Business Name
Display your shop name in the widget header
Show Tagline
Display your tagline beneath the shop name
🧱 Filament Materials
OnNameDensity$/kgChip Color
🎨 Print Colors per Material

Add selectable colors for each material. Customers will see swatches on the widget and the selected color will be applied to the 3D preview.

💰 Pricing Rules
Default Markup %
Labor Rate ($/hr)
$
Minimum Order Price
$
Rush Multiplier
×
Failure Buffer %

Adds extra material cost for failed prints

Electricity ($/kWh)
$
🖨️ Machine Depreciation

Automatically adds your printer's cost-per-hour to every quote based on purchase price and expected lifespan.

Printer Purchase Price
$
Expected Lifespan (hours)
Printer Wattage (W)
Depreciation Rate
$0.15/hr

Auto-calculated — added to labor cost

🏷️ Volume Discounts
Enable Volume Discounts
Automatically reduce price at quantity thresholds
Min QtyDiscount %Label shown to customer

Example: if a customer orders 10 units and you have a tier at qty 10 = 10% off, the unit price drops by 10% automatically. The customer sees the discount applied on the quote.

✨ Post-Processing Add-Ons

Customers can check off optional finishing services. Each adds a flat fee per unit to the total. Enable the ones you offer.

OfferService NameFee / unit
⚙️ Default Parameters
Default Layer Height
Default Infill %
Wall Loops
Nozzle Size
Print Speed (mm/s)
Default Supports
📦 Printer Build Volume
Models larger than these dimensions will be rejected at upload.
Max X (mm)
Max Y (mm)
Max Z (mm)
🔒 Lock Settings from Customer
Lock Layer Height
Customer cannot change layer height
Lock Infill
Customer cannot change infill density
Lock Supports
Customer cannot change support type
Allow Scale Adjustment
Customer can scale the model up/down
📋 Form Fields
Customer Name
Required — cannot be disabled
Email Address
Required — cannot be disabled
Phone Number
Quantity
Rush Order Option
Notes / Instructions
✉️ Messages & Delivery
Accept Button Label
Thank You Message
📨 Formspree Email Delivery
Get Free Endpoint ↗

Setup (2 min, free):
1. Go to formspree.io → create account
2. New form → set destination to your email
3. Copy endpoint URL → paste below
4. Save — done! Accepted quotes email you with the STL attached.

Formspree Endpoint URL

Without this, falls back to mailto: (no file attachment)

Notification Email (mailto fallback)
Reply-To Email
Attach STL File to Email
Requires Formspree endpoint
Include Print Settings in Email
Include Cost Breakdown in Email
ℹ️ About Embedding

This is a single HTML file — both views are built in. To embed on another site, host this file on any web server (Netlify, GitHub Pages, etc.) and use one of the snippets below.

The file URL is wherever you upload printquote-all-in-one.html.

🖼️ iFrame Embed
⚡ JS Floating Button
🔐 Supplier PIN

Set a PIN to lock the supplier dashboard. Anyone opening this file will see the customer view — only you can unlock the supplier tab with your PIN.

Current PIN (4 digits)
New PIN (4 digits)

Default PIN is 1234 — change it before sharing the file with anyone.

✉️ Status Email Templates

Customize the emails sent to your customers when their quote status changes. Use {name} for the customer's name, {shop} for your shop name, and {quote} for the quote number (e.g. #42). Leave blank to use the default message.

Reviewed
Sent when status is set to Reviewed
In Progress
Sent when status is set to In Progress
Rejected
Sent when status is set to Rejected
Shipped
Sent when status is set to Shipped
Invoice Sent
Sent when status is set to Invoice Sent
📖 QuoteMyPrint User Manual

Welcome to QuoteMyPrint! This manual covers every feature of your supplier dashboard. Use the search box below or click a section to jump straight to what you need.

📊 Overview
What is the Overview page?
The Overview page is your dashboard home screen. It shows a quick summary of your shop — how many materials are active, your default markup percentage, your minimum order value, and your widget URL. It also displays your full quotes table so you can manage incoming requests without switching pages.
What is the Widget URL?
Your widget URL is the public link your customers use to upload a file and get a quote. It looks like quotemyprint.com/?shop=yourshop. You can share this link directly, add it to your website as a button, or embed it as an iframe. Find it on the Overview page or the Embed page.
What do the stat cards on Overview show?
  • Active Materials — how many materials are currently visible to customers.
  • Default Markup — the percentage you add on top of raw material and machine costs.
  • Min. Order — the floor price below which no quote will go.
📥 Quotes
How does a customer submit a quote?
A customer visits your widget URL, uploads their 3D model file (.stl, .obj, or .3mf), selects a material and color, configures options like layer height and infill, then clicks Get Instant Quote. The system calculates an estimated price automatically. If you have a quote form enabled, the customer fills in their name, email, and any notes, then submits. You'll see the new quote appear in your Quotes table.
How do I view the details of a quote?
In the Quotes table, click anywhere on a quote row or the View button to expand the full details — customer name, email, phone, the 3D model file they uploaded, the material and color selected, infill, layer height, quantity, estimated price, and any notes they left.
How do I update a quote's status?
Open a quote and use the Status dropdown. Available statuses are:
  • New — just submitted, not yet reviewed.
  • Reviewed — you've looked at it and are considering it.
  • In Progress — you've accepted and have started printing.
  • Invoice Sent — you've invoiced the customer and are waiting on payment.
  • Shipped — the order has been sent to the customer.
  • Rejected — you're unable to fulfill this quote.
Changing the status automatically sends the customer a status-update email if you have email templates configured.
Can I set a custom price for a quote?
Yes. Open a quote and look for the Price Override field. Enter your actual price here to replace the system estimate. The customer will see your custom price in any follow-up communication.
How do I download the customer's uploaded file?
Inside the quote detail panel, there is a Download File link next to the filename. Clicking it downloads the original .stl, .obj, or .3mf the customer uploaded.
Can I filter quotes by status?
Yes — use the Filter dropdown above the quotes table to show only quotes matching a specific status (e.g., New, In Progress). Select All to see every quote.
New quotes won't appear automatically — click the 📥 Quotes nav button to refresh the list.
🎨 Branding
What is the Branding page for?
Branding lets you customize the look and feel of your customer-facing widget so it matches your shop's identity. You can change your shop name, tagline, logo, colors, fonts, and more. Changes are previewed live on the right side of the page before you save.
How do I change my shop name and tagline?
Under Shop Identity, enter your shop name in the Brand Name field. This appears as the heading in your widget. The Tagline is the subtitle beneath it — something like "Fast. Precise. Affordable." You can toggle whether each one is shown using the switches on the right.
How do I set a logo?
You can use an emoji logo (e.g., 🖨️) or paste a direct URL to a hosted image in the Logo URL field. If both are filled in, the image URL takes priority. Toggle Show Logo to hide it entirely if you prefer.
How do I customize colors?
The Colors section has color pickers for every part of the widget:
  • Accent — highlights, active states, links.
  • Button — the main call-to-action buttons.
  • Background — the page background.
  • Surface / Surface 2 — card and input backgrounds.
  • Text / Muted — primary and secondary text colors.
Click Reset to Defaults to restore the original dark theme at any time.
What is the Website URL field?
Enter your shop's main website address (e.g., www.myshop.com). This adds a ← Back to site button at the top of your widget so customers can easily return to your website after getting a quote.
How do I change the font?
Use the Font dropdown to choose from several options: Syne, Inter, Space Grotesk, Outfit, DM Sans, or Exo 2. The widget preview updates immediately so you can see how it looks.
Always click 💾 Save after making branding changes — the live preview is just a preview and won't persist until saved.
🧱 Materials
What are materials?
Materials are the filament types you offer for printing (e.g., PLA, ABS, PETG, TPU). Each material has its own density (used to calculate weight), cost per gram (used to calculate raw material cost), and an optional swatch color for the widget chip. Only enabled materials are shown to customers.
How do I enable or disable a material?
On the Materials page, each material has a toggle switch on the right. Turn it on to make it visible to customers, or off to hide it. Disabled materials won't appear in the widget and can't be selected for quotes.
How is material cost calculated?
The system uses your model's volume (in cubic millimeters) combined with the material's density (g/cm³) to calculate the weight in grams. That weight is multiplied by cost per gram to get the raw material cost. Your markup is then applied on top.
How do I add color swatches to a material?
On the Materials page, expand a material and look for the Colors section. Click + Add Color to add a swatch — give it a name (e.g., "Galaxy Black") and pick its hex color. Customers can then select from these colors when building their quote. The 3D preview in the widget will reflect the selected color.
What does the material chip color do?
The small colored dot on each material chip in the widget is the material's default preview color. It's used when no specific color swatch has been selected. You can set it when editing a material.
Your plan may limit the number of active materials and color swatches per material. Check your plan details if swatches aren't saving.
💰 Pricing Rules
How does the pricing calculation work?
The system builds up your price in layers:
  • Material cost = weight (g) × cost per gram
  • Electricity cost = print time (hrs) × wattage (kW) × cost per kWh
  • Machine depreciation = print time ÷ printer lifespan × printer cost
  • Labor cost = print time × labor rate per hour
  • Failure buffer = a percentage added to cover failed prints
  • Markup = a percentage added on top of all the above
  • Minimum order = the floor — if the total is below this, it rounds up
What is the Markup %?
Markup is your profit margin, added on top of all costs. A 20% markup means if your total cost is $10, the customer is quoted $12. Use the slider or type directly into the number field to set it.
What is the Labor Rate?
This is the dollar amount you charge per hour of print time for operator/setup labor. If a print takes 3 hours and your labor rate is $3/hr, that adds $9 to the cost. Set this to $0 if you don't want to charge for labor.
What is the Minimum Order?
This is the lowest price you'll quote for any single item, regardless of how small or fast the print is. If the calculated price is lower than this value, the quote will show your minimum order price instead.
What is the Rush Multiplier?
When a customer toggles Rush Order in the widget, the total price is multiplied by this value. A multiplier of 1.5 means rush orders cost 50% more. Set to 1.0 if you don't want to charge extra for rush jobs.
What is the Failure Buffer?
3D prints sometimes fail. The failure buffer adds a small percentage to every quote to cover the cost of reprints. A 5% buffer on a $10 quote adds $0.50 to help offset failed prints over time.
How do I set my electricity and machine depreciation costs?
Under Machine & Electricity:
  • Electricity ($/kWh) — your local electricity rate (check your utility bill). A typical US rate is around $0.12.
  • Printer Cost ($) — what you paid for your printer.
  • Printer Lifespan (hrs) — estimated total print hours before the printer wears out.
  • Printer Wattage (W) — how many watts your printer consumes while running.
The system uses these to add a tiny depreciation cost to each print hour, spreading the cost of the printer across its lifetime.
The pricing preview at the bottom of the Pricing page shows a live estimate so you can see how your settings affect a typical quote.
🏷️ Volume Discounts
What are volume discounts?
Volume discounts automatically reduce the per-unit price when a customer orders a larger quantity. For example, you might offer 5% off for 5+ units and 15% off for 25+ units. This encourages bulk orders and is shown clearly to customers in the quote breakdown.
How do I set up discount tiers?
On the Discounts page, each tier has a Minimum Qty and a Discount %. You can add as many tiers as you like with the + Add Tier button. The system automatically applies the highest matching tier based on the customer's quantity.
How do I turn volume discounts on or off?
Use the Enable Volume Discounts toggle at the top of the Discounts page. When disabled, all quotes are calculated at full price regardless of quantity.
How do customers see the discount?
When a customer adjusts the quantity in the widget, the price breakdown automatically shows the discount being applied (e.g., "5% volume discount — saving $2.50"). The final total reflects the discounted price.
✨ Post-Processing Add-Ons
What are post-processing add-ons?
Post-processing services are optional extras customers can add to their quote — things like sanding, painting, priming, or assembly. Each add-on has a flat fee that gets added to the total. You decide which ones to offer and how much to charge.
How do I enable a post-processing service?
On the Post-Process page, toggle the switch next to each service to make it visible to customers. Disabled services are hidden from the widget entirely. You can also edit the fee for each service.
Can I add custom post-processing services?
Yes — click + Add Service at the bottom of the list to create a custom entry. Give it a name and set a fee. Customers will see it as a checkbox option when configuring their quote.
How are post-processing fees applied to the total?
Each selected add-on fee is added per item. So if a customer orders 3 units and selects sanding ($5), the sanding fee adds $15 to the total (3 × $5).
⚙️ Print Settings
What are Default Parameters?
These are the print settings that are pre-selected for every new customer quote. They include:
  • Layer Height — affects print quality and speed. 0.2mm is a great all-around default.
  • Infill % — how solid the inside of the print is. 20% is standard for most parts.
  • Wall Loops — how many perimeter shells the print has. 3 is typical.
  • Nozzle Size — your printer's nozzle diameter. 0.4mm is the most common.
  • Print Speed — in mm/s. Lower = higher quality, higher = faster. 60mm/s is a safe default.
  • Default Supports — whether to include support structures by default.
What is the Printer Build Volume?
This sets the maximum size (in mm) your printer can handle. If a customer uploads a model that is larger than your build volume in any dimension (X, Y, or Z), the system will automatically reject it and show them an error explaining the model is too big. The default is 256 × 256 × 256mm — update this to match your actual printer.
What do the Lock Settings options do?
Locking a setting prevents customers from changing it in the widget:
  • Lock Layer Height — customers can't change the layer height; they get your default.
  • Lock Infill — customers must use your default infill density.
  • Lock Supports — customers can't change the support type.
This is useful if you run a streamlined operation where you always print at the same settings.
What does Allow Scale Adjustment do?
When enabled, customers can use a Scale % slider in the widget to resize their model (e.g., print it at 50% size or 150% size). The price automatically updates to reflect the new size. If you want to control exact sizing yourself, turn this off.
📋 Quote Form
What are the Quote Mode options?
You can control what customers see after they calculate a price:
  • Price + Form — shows the estimated price and then the contact form. This is the recommended mode for most shops.
  • Price Only — shows just the estimate with no form. Good if you just want to give instant quotes without collecting info.
  • Form Only — hides the price and only shows the contact form. Useful if you want to review every request manually before quoting.
How do I control which fields appear on the form?
Use the toggles in the Form Fields section. Name and email are always required. You can optionally enable Phone Number, Quantity, Rush Order, and Notes / Special Instructions.
How do I customize the submit button text?
Change the Button Label field to whatever text you want the submit button to say, e.g., "Request a Quote" or "Send My Order". Default is "Accept Quote & Submit".
How do I customize the thank you message?
The Thank You Message field controls what customers see after they successfully submit a quote. Make it friendly and let them know what to expect next, e.g., "Thanks! We'll review your files and get back to you within 24 hours."
How do I get notified when a new quote comes in?
Enter your email in the Notify Email field. Every time a customer submits a quote, a notification email will be sent to that address with the full quote details. This is separate from the customer confirmation email.
What is Formspree and do I need it?
Formspree is an optional third-party service that handles email sending. If you have a Formspree account, paste your form endpoint URL in the Formspree URL field to route quote submissions through it. If you leave it blank, QuoteMyPrint's built-in email system is used instead — most shops don't need Formspree.
What does "Attach STL to Email" do?
When enabled, the customer's uploaded 3D file is attached to the notification email sent to you. This lets you open it in your slicer right away without logging into the dashboard first.
🔗 Embed & Sharing
What is the Embed page?
The Embed page gives you a ready-to-copy iframe code snippet and your direct widget URL. Use either to add the quote tool to your existing website.
How do I add the widget to my website?
Copy the iframe code from the Embed page and paste it into your website's HTML wherever you want the widget to appear. The widget is responsive and works inside any container.
  • Shopify — go to Online Store → Pages (or Themes → Edit Code) and paste the iframe into a custom HTML section.
  • WordPress — use a Custom HTML block in the page editor and paste the code.
  • Squarespace / Wix — add a Code Block / HTML embed element and paste the iframe.
  • Any other site — paste directly into the HTML where you want it.
Can I just share a link instead of embedding?
Absolutely. Your widget URL (e.g., quotemyprint.com/?shop=yourshop) works as a standalone page. Share it in emails, social media bios, business cards — anywhere. Customers can use it on any device.
The widget auto-resizes its height when embedded. For best results, give the iframe a fixed width (e.g., 480px) and set height="auto" or use the postMessage resize that the widget sends automatically.
🔐 Security & PIN
What is the Supplier PIN?
The Supplier PIN protects your settings dashboard when the widget is embedded on a public page. When someone navigates to ?view=supplier, they'll be asked for the PIN before seeing any settings. This prevents customers from accidentally (or intentionally) accessing your dashboard.
How do I change my PIN?
Go to Security in the sidebar. Enter your new PIN in the New PIN field and click Save. Use a PIN that's easy for you to remember but not obvious to others. The default PIN is 1234 — change this as soon as possible!
Do I need the PIN when using the full login?
No. When you log in through quotemyprint.com/login with your email and password, you are fully authenticated and the PIN screen is bypassed. The PIN is only used when accessing the supplier view through a shared embed URL.
✉️ Status Email Templates
What are status email templates?
Every time you change a quote's status, QuoteMyPrint can automatically send your customer an email letting them know. Status email templates let you customize what those emails say for each status: Reviewed, In Progress, Invoice Sent, Shipped, and Rejected.
What variables can I use in templates?
You can use these placeholders anywhere in your template text:
  • {name} — replaced with the customer's name.
  • {shop} — replaced with your shop name.
  • {quote} — replaced with the quote number (e.g., #42).
Example: "Hi {name}, your order {quote} is now in progress at {shop}!"
What happens if I leave a template blank?
If a template is left blank, the system uses a built-in default message for that status. You can see the default text as placeholder text inside each text area — it gives you an idea of what to write.
Do I need to set up anything for emails to send?
No special setup is required. As long as the customer provided an email address when submitting their quote, the status email will be sent automatically when you update the status. Just make sure your templates are saved.
Write warm, personal emails — customers appreciate knowing exactly where their order stands. Mention your shop name and set expectations for the next step.
Still need help?
We're happy to walk you through anything.
Email us at anthony@threedeeprince.com and we'll get back to you quickly.
✅ Settings saved!