plugin-icon

Prodaxis Print Quote

מאת prodaxis·
An STL upload-and-quote tool that fetches a company's 3D-print options from the Prodaxis API gateway and returns an estimated price.
גרסה
1.15.0
עודכן לאחרונה
Jul 27, 2026

This plugin authenticates against the Prodaxis API gateway with a per-company API key and exposes the [prodaxis_print_quote] shortcode, which lets a visitor upload an STL model, choose a material, color and template, and get an estimated print price, time and filament length.

Because the gateway derives the company from the API key, one WordPress site quotes against exactly one company's print options: whichever key you configure under Settings -> Print Quote.

How it works

  1. Every request to the gateway is sent server-side with an X-API-Key header carrying the configured key. The gateway resolves the key to its company and scopes the response accordingly.
  2. It calls GET /print/options to read the company's materials, colors and templates.
  3. The result is cached (configurable lifetime) and used to populate the quote tool's material, color and template controls.

The API key never reaches the browser — all requests happen on the WordPress server.

External service

This plugin is an interface to the Prodaxis API gateway, a third-party service that holds your company's 3D-print materials and performs the price calculations. The plugin has no use without access to that service, and no data is sent anywhere until you configure the gateway URL and an API key under Settings -> Print Quote.

Once configured, when a visitor requests a quote the plugin sends the following to the gateway URL you configured, server-side (never from the visitor's browser):

  • the uploaded STL model,
  • the selected material, color and template,
  • your company API key, as the X-API-Key request header.

The gateway returns the estimated price, print time and filament length. The uploaded model and selections are transmitted to your configured gateway solely to produce the quote.

When a visitor places an order, the plugin additionally sends their order details (name, optional company, email, phone, shipping address or pickup locker code, the chosen delivery method and quantities) to the same gateway, server-side, to create the order and start the payment. Payment is collected by Stripe (https://stripe.com/): the visitor's browser is redirected to a Stripe-hosted checkout page operated on the merchant's Stripe account. No card data ever touches this plugin or your WordPress site. See Stripe's Privacy Policy: https://stripe.com/privacy

  • Service provider: Prodaxis — https://prodaxis.io/
  • Terms of Service: https://www.prodaxis.io/legal/terms
  • Privacy Policy: https://www.prodaxis.io/legal/privacy

InPost Geowidget (optional)

If you paste an InPost Geowidget token under Settings -> Print Quote, the quote widget also offers a map-based Paczkomat (parcel locker) picker. In that case the visitor's browser loads InPost's official Geowidget v5 assets from InPost's CDN:

  • https://geowidget.inpost.pl/inpost-geowidget.js
  • https://geowidget.inpost.pl/inpost-geowidget.css

These assets are loaded only when all of the following hold: the page contains the [prodaxis_print_quote] shortcode, you have configured a Geowidget token, and the shop offers a parcel-locker delivery method. The map itself initializes only after the visitor clicks the "Choose a Paczkomat on the map" button; it then talks to InPost's services to display pickup points, sending your Geowidget token (a browser-safe credential generated in the InPost Parcel Manager, https://manager.paczkomaty.pl) with those requests. If no token is configured, no InPost resource is ever requested and visitors type the locker code manually.

  • Service provider: InPost — https://inpost.pl/
  • Privacy Policy: https://inpost.pl/polityka-prywatnosci

Shortcode

[prodaxis_print_quote]

Renders an interactive quote-and-order tool. On wide containers it shows a split configurator (persistent 3D preview and live quote on the left, options on the right); on narrow containers (mobile, sidebars) it collapses into a guided card. A visitor:

  1. Uploads an STL model.
  2. Picks a material, then a color and quality template available for that material (the controls are built from the same /print/options catalog). The price is calculated automatically as soon as everything is selected, and recalculated whenever an option changes.
  3. Continues through a three-step flow (Configure -> Your details -> Payment) and either pays immediately via Stripe Checkout or places the order for payment by invoice, depending on the selected payment mode. When the shop offers delivery methods (courier, parcel locker or personal pickup), the visitor picks one on the details step; locker deliveries ask for the locker code instead of a shipping address (with an optional map-based Paczkomat picker when an InPost Geowidget token is configured), and the delivery charge (with any free-delivery threshold) is added to the order total.

The browser never talks to the gateway directly. The file and selections are sent to WordPress (admin-ajax), which proxies them server-side using the same cached service-account token:

  • POST /slicer/upload – uploads the STL and returns its print reference.
  • POST /print/calculate/async – starts the calculation and returns immediately with a calculationId (status IN_PROGRESS); slicing runs in the background.
  • GET /calculation/{id} – polled until the status becomes COMPLETED (with the price, print time and filament length) or FAILED.

Because slicing is asynchronous, the widget shows a "calculating" state and polls every couple of seconds, giving up after about three minutes.

Changing the material and recalculating reuses the already-uploaded file; choosing a different file re-uploads. Requests are protected with a WordPress nonce.

Optional attributes:

  • accent – hex accent color for the widget (default #0f4c81)
  • template_stylecards (default) or compact template selector
  • powered_by – brand shown in the footer line; omitted hides it

Example: [prodaxis_print_quote accent="#0f9d6b" template_style="compact"]

Notes

  • The WordPress server must be able to reach the API gateway URL. localhost works only when WordPress runs on the same machine as the gateway; inside a Docker container use http://host.docker.internal:8086 instead, since localhost there points at the container, not the host.
  • The API key is stored in the WordPress options table and sent as the X-API-Key header. It is scoped to one company and limited to the print read/quote operations the widget needs; if it leaks, regenerate it in the company dashboard (which immediately invalidates the old one).
  • STL upload size is bounded by two limits: PHP's upload_max_filesize / post_max_size on the WordPress server (raise these for large models) and the gateway's authoritative per-company limit, which is enforced server-side.

Third-party libraries

The print-quote widget's 3D preview is powered by Three.js (r185 / 0.185.0), bundled locally under assets/js/vendor/ so the widget needs no external requests:

  • three.module.min.js, STLLoader.js, OrbitControls.js — Three.js r185, MIT license, Copyright Three.js Authors. Source: https://github.com/mrdoob/three.js/tree/r185

These are loaded as ES modules: the viewer script imports the bundled build and its STLLoader / OrbitControls addons directly. The MIT license is GPL-compatible. Apart from the optional InPost Geowidget described above (which loads only when you configure its token), no other external scripts or services are loaded in the browser.

חינםבתוכניות בתשלום
בביצוע ההתקנה, אנחנו מקבלים את הסכמתך לתנאי השירות של WordPress.com ולתנאים של התוסף של הצד השלישי.
נבדקו עד
WordPress 7.0.2
תוסף זה זמין להורדה ולשימוש דרך שברשותך.