Documentation – 3D Print Calculator for WooCommerce (Yee3DPrint)


Welcome to the official documentation and user guide for 3D Print Calculator (plugin name Yee3DPrint – 3D Print Calculator, by add-ons.org). The plugin turns a WooCommerce store into a 3D-printing service: customers upload a model, inspect it in an interactive 3D preview, choose material, printer, print quality, coating, post-processing and infill, see an instant price and pay through the normal WooCommerce checkout. Shops that prefer manual quoting can switch the same configurator to an estimate-and-request or request-price mode. This guide covers installation, the sample catalog, every settings tab, the five option catalogs and their pricing rules, the customer journey step by step, the four checkout behaviours, quotes and orders, cloud PrusaSlicer analysis, CNC/DXF cutting, privacy and FAQ.

Video tutorial

1. Installation & System Requirements

  1. Install and activate WooCommerce. The plugin requires it and shows “Checkout requires WooCommerce.” on the storefront without it.
  2. Go to Plugins → Add New Plugin → Upload Plugin, upload the plugin ZIP, click Install Now, then Activate.
  3. A new top-level menu Yee3DPrint appears with Settings, Quotes, Materials, Printers, Coatings, Post-processings and Infills. Every screen needs the manage_woocommerce capability (Administrator or Shop Manager).
  4. Configure WooCommerce payment methods, shipping and taxes. Test with a test-mode gateway before accepting real payments.

Requirements: WordPress 6.5 or higher, PHP 7.4 or higher, WooCommerce. PHP ZipArchive is needed for 3MF uploads. The customer’s browser needs WebGL, WebAssembly (for STEP files) and Web Workers. Network-wide multisite activation is blocked; activate the plugin per site. Activation creates no catalog entries: use the Sample data tab or add your own options.

2. Quick Start with Sample Data

Open Yee3DPrint → Settings → Sample data. The tab shows a table with the number of options in each catalog and two cards: 3D printing and CNC cutting. Click Create 3D sample data to get a complete, editable starter catalog in one click.

The Sample data tab of Yee3DPrint Settings with the catalog counts table and the Create 3D sample data and Create CNC sample data buttons
The Sample data tab before any catalog option exists.

The 3D sample set creates five material groups (ABS, ASA, PETG, PLA, RESIN) with 31 colour variants priced at 1 per cm³ of material volume, one Default Printer (FFF, 250 × 250 × 250 mm, Standard Quality 0.2 mm and High Quality 0.16 mm), five coatings, five post-processings (Raw, Polished, Dyeing, Polish + Dyeing, Chemical smoothing) and eleven infills (0 to 100 %). Everything except the materials is priced at an explicit 0, which means free. The CNC set adds a Default Laser Cutter and two cutting materials (Plywood 3 mm, Acrylic 3 mm) priced at 1 per cm of cutting path.

The Sample data tab after creating the samples, showing option counts and Move to Trash buttons
After creation the counts are filled in and each card offers a “Move … samples to Trash” button.
  • Sample options are marked, so the trash buttons remove only them and keep catalog entries you created yourself.
  • Running Create again does not duplicate anything; it only refreshes sample materials you have not edited.
  • Edit the sample prices and printer specifications before taking paid orders.

3. Settings Reference

All settings live under Yee3DPrint → Settings in eight tabs. Click Save settings at the bottom of a tab to store it.

3.1 Print options

The Print options tab with display mode selects for Materials, Printers, Coatings, Post-processings and Infills, Main color, Show demo, Demo model, Multi-step and First print option
Print options: how each catalog is displayed, the accent colour, the demo model and the step layout.

The Configuration type switch (3D printing / CNC cutting) only changes which settings are shown here; the uploaded file decides which configurator the customer sees. The CNC view hides Coatings and Infills because they do not apply to cutting.

SettingOptionsDefault
Materials displayDisable — hide on frontend · Grouped select with colors · Radio list · Color palette by groupColor palette by group
Printers displaysame four modesGrouped select with colors
Coatings displaysame four modesColor palette by group
Post-processings displayDisable · Checkboxes (multiple choices) · Radio list · DropdownCheckboxes
Infills displayDisable · Selectable list · DropdownDropdown
Main colorcolour picker used for buttons, selected options, progress bars and active steps#247354
Show demoshow the “Explore the Demo” card so customers can load a sample modelon
Demo modelupload your own STL/OBJ/3MF/STEP/STP demo (bundled 10 mm cube when empty)bundled cube
Multi-stepshow one print option step at a timeoff
Step styleStandard steps (Back/Next buttons) or Accordion stepsStandard steps
First print optionMaterials first or Printers firstMaterials first

Display modes explained: Color palette by group shows one row of colour swatches per group with the current choice in a label; Grouped select with colors is a custom dropdown with swatches or photos grouped by group name; Radio list lists the options under group headings; Checkboxes (post-processings only) allows several choices; Dropdown is a plain select; Selectable list (infills only) is a styled radio list. Disable hides the catalog, removes it from the required choices and excludes it from the price.

3.2 Model preview

The Model preview tab with scene colour pickers, light position grids and checkboxes for ground, grid, fog, axes, build box, stats, units, scale, auto rotation and shadow
Model preview: scene colours, lights, helpers and camera behaviour of the 3D viewer.
  • Scene colors: Background, Ground, Grid, Build box and Fog.
  • Light sources: two 3 × 3 grids place the top and bottom lights; the centre square is directly above or below the model.
  • Helpers: Show ground, Show grid, Show fog, Show XYZ axes (corner orientation widget), Show build volume box, Show Model Stats, Show File units, Show Scale controls.
  • Motion and camera: Auto rotation with speed (1–10) and direction, Fit camera on resize, Auto scale oversized models, Fit camera on scale change.
  • Model shadow with a Shadow direction (Front left, Front right, Back left, Back right).

3.3 Uploads and limits

The Uploads and limits tab with accepted model format checkboxes, additional extensions, default file unit, maximum file size, retention and fallback build volume
Uploads and limits: accepted formats, size limit, default unit and retention.
  • Accepted model formats: STL, OBJ, 3MF, STEP, STP and DXF are previewed and priced. DWG, IGS, IGES, AMF, PLY, GLB, GLTF, FBX, 3DS, SKP, BLEND, 3DM, X3D, OFF and DAE can be accepted for manual quote only. STL stays enabled when every box is cleared.
  • Additional file extensions: a comma-separated list (up to 20) of extra extensions accepted for manual quotes; executable and web extensions are blocked.
  • Default file unit: Millimeters, Centimeters or Inches. It is the source unit assumed for STL, OBJ and DXF files; 3MF and STEP always load as millimetres.
  • Maximum file size: 1–20 MB (default 10), also capped by the server’s PHP upload limit.
  • File retention: 7–3650 days (default 90). Files linked to active orders are kept.
  • Fallback build volume: used for the “larger than the build volume” warning when no printer is selected.

3.4 Cloud PrusaSlicer analysis

The Cloud PrusaSlicer analysis tab with the Enable checkbox and the purchase code field
Cloud analysis: enable the publisher-hosted PrusaSlicer service and enter a purchase code.

Enable PrusaSlicer analysis on the publisher service to get support-material volume, print time and sliced weight for every configuration, and to price materials per hour or per cm³ of support. Enter your purchase code to unlock the licensed quota; the plugin verifies it with add-ons.org before saving and shows the current usage (“X / Y calls used”) once enabled. See section 10 for details and limits.

3.5 Checkout

The Checkout tab with the Checkout behavior select
Checkout: choose how the configurator ends, from direct checkout to a pure price request.

Checkout behavior has four modes: Calculate price and add to checkout (default), Calculate price and add to cart and checkout, Give an estimate and request price and Request price. They are described in section 8.

3.6 Request price

The Request price tab with Required/Optional/Hidden selects for Full name, Company, Phone and Notes, plus shop and customer email settings
Request price: contact fields of the request form and the notification emails.
  • Customer fields: Full name (required by default), Company (hidden), Phone (optional) and Notes (optional) can each be Required, Optional or Hidden. Email is always required.
  • Email the shop when a price request is saved (on by default) with a recipient, a subject (default “New 3D price request #{quote_id}”) and a plain-text body. Placeholders: {quote_id}, {customer_name}, {company}, {email}, {phone}, {request_details}, {review_url}. Reply-To is the customer’s address.
  • Email the customer after a price request is saved (off by default) with its own subject and body.
  • The tab is available in every checkout mode, because an unpriced option can turn any configuration into a price request.

3.7 Pricing guide

The read-only Pricing guide tab with the price formula, a rule table per catalog and a worked example
Pricing guide: a built-in reminder of the formula and a worked example.

A read-only summary of the formula Estimated subtotal = (sum of selected option prices per piece × quantity) + one-time setup fees, with links to every catalog and a worked example.

4. The Option Catalogs

Each option is a post of its own type with a Print option settings box. The Order value (Post Attributes) sets the display order on the storefront. Printers, Coatings, Post-processings and Infills must be published and Enabled to appear; Materials are controlled by their own Enabled setting. Every type has a Compatible materials (or printers/coatings) list: an empty list allows all, and a restriction set on either side is enforced in both directions.

4.1 Materials

The Materials list with Color, Title, Group, Type, Price, Status and Material Groups columns
Materials: colour swatch, group, type, price basis and status at a glance.

Materials are organised in Material Groups (a hierarchical taxonomy: ABS, PLA, RESIN…). The editor has five tabs.

The General tab of a material: Enabled, Material type, Model Source, Model, Prefix display name with group, Material photo URL
Material → General: type (Filament, Resin, Laser cutting, Other), slicer profile source and photo.
The Pricing tab of a material with Base price and its basis, Minimum material charge, Material setup fee and the Extra prices repeater
Material → Pricing: base price per unit of measure, minimum charge, setup fee and up to 20 extra price rows.

Base price is an amount multiplied by a basis: Fixed Price, 1 cm³ of material volume, 1 cm³ of Bounding Box Volume, 1 cm² of surface area, 1 cm² of Bounding Box XY, 1 cm³ of Support Material Volume, Support Material Removal Fixed Charge, 1 cm³ of Removed Material Volume, 1 cm of Laser Cutting Total Path, 1 gram, 1 gram of volumetric weight, or 1 Hour (requires cloud analysis). Extra prices add rows with the same bases plus +% to total price. A Minimum material charge per piece and a Material setup fee once per uploaded model complete the rule.

The Technical Specs tab of a material: density, volumetric weight divisor, layer height override, filament spool fields with Calculate buttons
Material → Technical Specs: density (needed for per-gram pricing) and the spool calculator that fills in the price per cm³ or per gram.
The Compatibility tab of a material with Compatible printers and Compatible coatings checkbox lists
Material → Compatibility: restrict which printers and coatings can be combined with this material.
The Preview and Appearance tab of a material with Preview color, Surface appearance, Preview glow and Preview transparency
Material → Preview & Appearance: how the model looks in the 3D viewer when this material is selected.

How a material charge is calculated

  1. Base = Base price × measure of the chosen basis (a Fixed basis uses 1).
  2. Extras = sum of every extra row (amount × its measure).
  3. Percentage rows multiply the subtotal: subtotal × (1 + Σ % / 100).
  4. Minimum: the per-piece charge is the greater of the result and the Minimum material charge.
  5. The Material setup fee is added once per uploaded model, not per piece.
MeasureMeaningNeeds
Material volumesolid mesh volume in cm³closed mesh
Bounding Box Volume / XYX × Y × Z in cm³, or X × Y in cm²—
Surface areamesh surface in cm²—
Gram / volumetric weightvolume × density; volumetric weight = max(weight, box volume ÷ divisor)Density > 0
Removed materialbox volume − solid volume (machining)—
Support volume / support fixed charge / hourfrom the cloud slicer: support cm³, 1 when support exists, print hoursCloud analysis
Laser cutting total pathcm of DXF layers set to CutDXF file

4.2 Printers

The Printers list with Technology, Build Volume, Setup Fee, Price and Status columns
Printers: technology, build volume and fees.
The General tab of a printer: Enabled, Technology, Group name and Photo URL
Printer → General: technology (FFF/FDM, SLA Resin, SLS, Laser Cutting, Other) and group.
The Build Volume and Specs tab of a printer: platform shape, build size, nozzle, layer height, print quality choices, minimum side thickness, speeds and support
Printer → Build Volume & Specs: platform, nozzle, default layer height and the Print Quality choices offered to customers.
The Pricing and Setup tab of a printer: base price per piece, setup fee, minimum charge and laser engraving price
Printer → Pricing & Setup: a per-piece price, a per-model setup fee and, for laser cutters, the engraving rate.

Print Quality choices are name + layer height rows (0.05–1 mm). When a printer has two or more, a Print Quality step appears on the storefront; a single quality is applied automatically. If exactly one non-laser printer is selectable, the Printer step is hidden and that printer is chosen automatically. The build volume drives the “Larger than the configured build volume” warning.

4.3 Coatings, Post-processings and Infills

The Coatings list with Color, Title, Group, Finish, Price and Status columns
Coatings: an optional single choice whose colour and finish replace the material look in the preview.
The coating editor with General, Pricing, Appearance and Color, and Compatible Materials tabs
Coating editor: price, preview colour, surface finish, glow and transparency.
The Post-processings list with Title, Group, Support Removal, Price and Status columns
Post-processings: optional, and several can be selected when displayed as checkboxes.
The Infills list with Title, Density, Pattern, Price and Status columns
Infills: required for 3D printing; percentage and pattern feed the cloud analysis.
The Material Groups taxonomy screen
Material Groups: the taxonomy that groups materials in palettes and selects.

5. How the Price Is Calculated

Unit price = Material charge + Printer price + Coating price + Σ Post-processing prices + Infill price (DXF jobs add laser engraving). Setup = Material setup fee + Printer setup fee, added once per uploaded model. The WooCommerce line is unit price × quantity, and the setup is a separate taxable fee named “Setup fee (filename)”. Print Quality never changes the price. The server recalculates the whole price on submission and every time WooCommerce recalculates the cart, so prices cannot be manipulated in the browser.

When a configuration becomes a price request instead of a checkout: the selected material ends with a per-piece price of 0, a non-material option has a blank or invalid price, the whole configuration totals 0, or a DXF drawing has engraved layers on a machine without an engraving rate. Explicitly configured zero-price printers, coatings, post-processings and infills are free options and do not block checkout. A cart item whose file expired or whose pricing now needs a quote is removed with the notice “A configured model in your cart has expired or now requires a price request. Please upload it again.”

6. Adding the Configurator to a Page

Insert the Yee3DPrint block (Widgets category, keywords “3d print”, “3d upload”) in the block editor, or add the shortcode to any page:

[[yeekit_3d]]

Both render the same configurator. The shortcode accepts one optional attribute, quote="ID", which lets shop managers open a stored quote in a “Review 3D model” preview.

7. The Customer Journey

Step 1: Upload a model or load the demo

The empty configurator: Start with your model drop zone, Choose model or drawing button, Explore the Demo card, file units and scale controls
The configurator before upload. Customers can drop a file, pick one, or click the demo cube.

The header reads “Configure your 3D print” with an FDM PRINTING badge (it switches to laser cutting for DXF files). Customers drag a file onto the viewport or click Choose model or drawing; the accepted formats and the size limit are listed below. With Show demo on, the Explore the Demo card loads the bundled 1 × 1 × 1 cm cube. Progress messages read “Reading model file”, “Building 3D preview…” and “Model ready. Choose your print options.”

Step 2: Inspect the 3D preview

The configurator with the demo cube rendered in the 3D viewer, the axis widget, Reset view and Remove buttons, file units, scale and Model Stats
The model in the viewer. Drag to orbit, scroll to zoom, arrow keys to pan.
  • Reset view returns the camera; Remove clears the model and all selections.
  • File units (mm / cm / in) tell the plugin how to read STL, OBJ and DXF dimensions. Choose the unit before uploading; afterwards it only changes how sizes are displayed.
  • Scale (%) from 1 to 1000, and editable X / Y / Z sizes that apply a uniform scale.
  • Model Stats: Material Volume, Support Material Volume, Box Volume, Surface Area, Model Weight, Model Dimensions, Number of Polygons and Print Time. Values that need the cloud slicer show “Not available” when it is disabled.
  • A warning appears when the model is larger than the selected printer’s build volume.

Step 3: Choose the print options

The Print configuration panel with a material chosen in the colour palette, Print Quality radios, Coatings palette, Post-processing checkboxes, Infills dropdown and the Your print summary
Options chosen: material palette, print quality, coating, post-processings and infill, with the live price below.

The Print configuration panel unlocks once a model is loaded. Steps unlock in order (Materials first or Printers first). After the first choice the other lists are filtered by compatibility, laser materials are hidden for 3D models, and the price panel updates live. The selected material’s colour and finish are applied to the model in the viewer; a coating overrides it.

Step 4: Quantity, notes and price

The Your print section with Quantity, Notes, the price breakdown per option, the Priced options subtotal, the consent checkbox and the Calculate price and add to checkout button
Your print: quantity (1–999), notes, the per-option breakdown, the subtotal, the consent checkbox and the action button.

The breakdown lists every option with a price (free options are listed without an amount), the quality, the one-time setup fee and the Estimated subtotal. The customer must tick “I agree to send this model and print configuration to the shop” before the action button becomes active.

Step 5: Checkout

The WooCommerce checkout page with the Custom 3D Print line, its model file, dimensions and option rows
WooCommerce checkout: the model is a “Custom 3D Print” line with file name, dimensions and every chosen option.
The WooCommerce Order received page with the Custom 3D Print line and a Download original 3D model link
Order received: the customer can download the original model from the order page and from My Account.

8. Checkout Behaviours

ModeWhat the customer seesResult
Calculate price and add to checkoutone button, “Calculate price and add to checkout”file uploaded, cart line created, redirect to Checkout
Calculate price and add to cart and checkout“Add to cart” (stays on the page, shows “Model added to cart.” with a View cart link) and “Checkout”cart line created; Checkout redirects
Give an estimate and request pricethe estimated subtotal, a “Request price” button and a contact forma quote is saved; emails are sent; no cart item
Request priceno prices at all, the contact form onlya quote is saved; emails are sent; prices never reach the browser
The Your print panel in cart-and-checkout mode with separate Add to cart and Checkout buttons
Cart and checkout mode: two buttons instead of one.
The Your print panel in estimate-and-request mode with an estimated subtotal and a Request price button
Estimate and request mode: the price is shown as an estimate and the shop confirms it.
The contact form Your contact details with Full name, Email address, Phone and the Send price request button
The price request form. Its fields follow the Request price settings.
The confirmation message Price request sent after submitting the form
After submission: “Price request #ID sent. The shop can review your model and contact details.”
The Your print panel in Request price mode without any price information
Request price mode: the configurator collects the configuration and contact details without showing prices.

In the two checkout modes the plugin falls back to the request form automatically whenever the configuration needs a quote (section 5). Files in formats that cannot be previewed (DWG, custom extensions) use a fixed manual CAD quote form with name, email, phone, quantity and notes.

9. Quotes and Orders

The Quotes and Orders list with thumbnail, date, customer, status, WooCommerce order and total columns
Yee3DPrint → Quotes: every uploaded model with its thumbnail, customer, status and linked order.

Every submission, whether it ends in an order or a request, creates a private quote record with a thumbnail of the view the customer chose. The list can be searched by file name or quote ID and shows the WooCommerce order status when an order exists.

A quote detail page with the model thumbnail, Model Stats table, Download original model button, print options table and customer and order box
Quote detail: model stats, the chosen options with prices, the customer and a link to the WooCommerce order.

The detail page shows the stats, the options and prices, the customer, the request type, whether the shop and customer emails were sent, and a Download original model button. A “Delete file” form removes only the stored file and keeps the record.

The WooCommerce order edit screen with the Yee3DPrint Model and print configuration meta box
WooCommerce order: a “Yee3DPrint — Model and print configuration” box with the options, dimensions, stats, quantity, notes and download link.
A quote detail page for a price request showing the request type and contact details
A saved price request with the customer’s contact details and the estimated subtotal.
  • Hidden product: a virtual product “Custom 3D Print” carries every model into the cart; it is hidden from the catalog and cannot be bought without a valid upload.
  • Order emails include a “Model and configuration” table; the My Account order page offers “Download original 3D model”.
  • Download endpoint: admin-post.php?action=yeekit_download&quote=ID, available to shop managers and the logged-in owner of the linked order only.
  • Retention: a daily cleanup deletes files older than the retention period, except files of orders that are not completed, cancelled, refunded or failed. Quote metadata is kept.

10. Cloud PrusaSlicer Analysis

When enabled, the browser sends a binary STL of the scaled model to your site, which forwards it with the printer, quality, infill and material settings to the publisher-hosted PrusaSlicer service. The result (material volume, support volume, print time and weight) fills the Model Stats with the status “Estimated from PrusaSlicer toolpaths” and powers the per-hour and per-support-volume material rules. Results are cached per configuration.

  • FFF/FDM printers only, up to 300,000 polygons and a 12 MB STL.
  • Registration happens automatically on save and requires a public HTTPS site; localhost or HTTP sites cannot be verified.
  • Without a purchase code each site has 50 successful test analyses in total; a valid code grants 5,000 analyses per UTC month shared across sites using that code.
  • When the service is disabled, Model Stats shows “Cloud analysis is not enabled for this shop.”, support and hour rules are unavailable, and no model copy leaves your server.

11. CNC and Laser Cutting (DXF)

Uploading a DXF drawing switches the configurator to laser cutting: the header becomes “Configure your laser cutting”, the drawing is previewed in 2D, and a Cutting operations list lets the customer set each layer to Cut, Engrave or Ignore. Only Laser cutting materials and machines are offered; infill, coating and print quality steps are hidden. Pricing uses the material’s cutting-path rules plus the machine’s engraving rate. Supported entities are LINE, CIRCLE, ARC, ELLIPSE, LWPOLYLINE and SPLINE in ASCII DXF files up to 5 MB. Drawings that cannot be measured fall back to the manual quote form.

12. Privacy, Data and Uninstall

  • Original model files are stored in a private database table, never in the Media Library, and are streamed only to shop managers and the order owner.
  • Quotes are private posts; WordPress privacy tools get an exporter and an eraser. Quotes linked to an order are kept for the shop to review.
  • Deactivation sets the hidden product to Draft. Uninstall keeps all data unless YEEKIT_DELETE_DATA is defined as true; WooCommerce orders are never deleted.

13. Frequently Asked Questions (FAQ)

Does the price depend on the model’s volume or print time?

It can. Set the material base price per cm³, per gram, per cm² or per hour, and add extra rows for support material or print hours. Volume, area and weight are measured from the uploaded mesh; support and time need cloud PrusaSlicer analysis.

Which file formats can customers upload?

STL, OBJ, 3MF, STEP and STP are previewed in 3D and priced; DXF is previewed in 2D for cutting. DWG and other CAD formats can be accepted for manual quotes only.

Does the preview guarantee printability?

No. Dimensions, build-volume warnings and stats are estimates. Review the model in the quote screen before production.

Why does a valid model fail to preview?

The browser decoder has a 45-second timeout, a two-million-triangle limit and bounded 3MF archives (256 entries, 64 MB unpacked). Device memory also matters.

Why does the configurator show a request form instead of checkout?

An option in the configuration has no usable price (a material at 0, a blank option price, or a total of 0). Give every option a price, or set 0 on the free ones, and the checkout buttons return.

Can I offer the same model in several materials or colours?

Yes. Each colour is a material entry; group them with Material Groups and use the Color palette by group display.

Can customers order several models at once?

Yes. Each upload becomes its own line in the WooCommerce cart.

Does the plugin store the customer’s file forever?

No. Files are deleted after the retention period (90 days by default) unless they belong to an active order.

Does it work with the WooCommerce block checkout and HPOS?

Yes. The plugin declares compatibility with both; the order box appears on the HPOS and the legacy order screens.

Can I use it without WooCommerce?

No. Pricing and checkout rely on WooCommerce. The configurator shows “Checkout requires WooCommerce.” when it is missing.