Install
Add an instant quote widget to your website
One script tag, on the page where you want the quote form. It works on any site where you can paste HTML — no plugin, no app, no build step.
Before you paste anything
If you are a developer doing this for a print shop, your client has to do three things first. None of them are yours, and none of them wait on us:
- Create a 3Dash account and start a trial — 14 days, no card.
- Finish store setup: upload one G-code from their own slicer so we can read their printer profile, then price the materials they sell and tick the colours they stock. Until that is in, the widget loads and says what is missing rather than quoting.
- Create a publishable key on their account page and send it to you. It is shown once.
If you are the shop, that is your own checklist. Either way, once you have the key the integration is the one line below and nothing else.
The snippet
Paste this where you want the widget to appear, with the publishable key in data-shop. It starts pk_live_ — that is the only kind there is, and it works from the first day of the free trial.
<!-- 3Dash quote widget --> <script src="https://business.3dash.in/q.js" data-shop="pk_live_your_key_here" async></script>
That is the whole integration. The widget renders in place, sizes itself to its content, and needs nothing else from your page.
What it does to your page
Worth knowing before you paste anything third-party into a site you depend on:
- It creates one iframe and nothing else. Your CSS cannot reach into it and its CSS cannot reach into yours — no theme conflicts in either direction.
- It sets no global styles, touches nothing outside its own container, and does not hijack scrolling.
- It never throws into your page. If the widget fails, the rest of your site keeps working.
- It loads lazily and asynchronously, so it does not block your page rendering.
- Pasting it twice with the same key renders one widget, not two. A duplicated paste is a no-op rather than two configurators quoting independently.
Placing it somewhere specific
By default the widget appears exactly where the script tag sits. If your platform only lets you inject scripts into the page header, put an empty container where you want it and point the script at it:
<div id="quote-here"></div> <script src="https://business.3dash.in/q.js" data-shop="pk_live_your_key_here" data-target="#quote-here" async></script>
data-target takes any CSS selector. If it matches nothing, the widget falls back to rendering where the script tag is.
All attributes
| Attribute | Required | What it does |
|---|---|---|
data-shop | Yes | Your publishable key, pk_live_…. It is what tells the widget which shop it is quoting for. Without it the widget does nothing and logs a console warning — it will not render a broken form to your customer. |
data-target | No | CSS selector for the container to render into. Defaults to where the script tag sits. |
data-material | No | Pre-selects a material, e.g. pla. Useful on a page that is already about one material. |
data-machine | No | Pre-selects one of your machines. |
data-theme | No | Widget skin. An unknown value renders the default rather than failing, so a typo here is cosmetic. |
data-lang | No | Interface language. |
data-plan | No | Reserved; leave it off unless support tells you otherwise. |
None of these can change a price. Anything that affects money is resolved on our server against your rate card. An attribute added to the snippet by someone editing your theme cannot quote your work cheaper.
Your publishable key is meant to be public
It sits in your page source and that is by design — the widget runs in your customer's browser, so there is nowhere to hide it. Nothing it can do costs you money or reveals your rates: prices are computed on our server, and a quote response carries amounts only, never the per-gram or hourly figures behind them.
You do not need to configure anything for the widget to work. The snippet works on whatever page you paste it into, on any domain, as soon as you have a key.
Being straight about what the allowlist does. Your dashboard has an Allowed origins list, and it governs calls your own pages make directly to our API with a publishable key. It does not restrict the widget: the widget runs in an iframe served from 3dash.in, so our origin is what reaches us — the same value whether the snippet is on your site or on a copy of it. So treat the allowlist as protection for your own API calls, not as copy protection for the snippet.
Do not confuse the publishable key with your secret key, which starts sk_. That one is server-side only, must never appear in a page, and is for the API. If a secret key ever reaches us from a browser we refuse the request and tell you to roll it.
Platform notes
The snippet is plain HTML, so anywhere you can add an HTML block will work. What differs is where each platform hides that box.
WordPress
Edit the page, add a Custom HTML block, paste the snippet. In the classic editor, switch to the Text tab rather than Visual — the visual editor strips script tags. No plugin is required, and you should be sceptical of any that claims to be.
If your host or a security plugin blocks inline script tags in post content, use the header-injection route with data-target instead.
Shopify
Add a Custom Liquid section to the page in the theme editor and paste the snippet there. That keeps it inside the page layout without editing theme files. If you would rather edit the theme directly, the snippet goes in the template for the page you want it on.
Squarespace
Add a Code block to the page and paste the snippet. Code blocks are on paid plans only.
Wix
Use Embed a widget / Embed HTML and paste the snippet.
Height needs attention on Wix. Wix puts your embedded code inside its own fixed-size iframe. Our widget resizes itself, but it cannot resize the box Wix put around it, so a short box will clip or scroll the quote form. Drag the embed element tall enough for the whole flow — around 900 px is a sensible starting point — and check it on a phone. If you can use Wix's site-wide Custom Code with a data-target container instead, that avoids the nesting entirely.
Plain HTML, or anything else
Paste it in the page. There is nothing platform-specific about it.
Checking it worked
- Load the page in a normal browser window. The widget should appear within a second or two.
- Upload a small STL and confirm you get a price.
- Open your browser's developer console and look for any line starting
[3Dash]. The only one we emit is the missing-key warning, and it tells you exactly what to fix. - Check it on a phone. The widget grows to fit its content rather than scrolling internally, which is the behaviour you want everywhere except inside a fixed-height Wix box.
If the widget does not appear at all, the usual causes are a missing or mistyped data-shop, or an editor that stripped the script tag. If it appears but cannot price anything, the shop setup is incomplete — the widget needs at least one printer profile and a priced material, and it will say which is missing rather than invent a number.
That last one is not something you can fix from the page. It is the shop's own setup, under Manage your store on their account — so if you are the developer, that message means the install is correct and your client has a step left, not that you have done anything wrong.
Next
Drive the widget yourself before installing it. If you would rather build your own front end, the same quoting engine is available as a REST API.