內容簡介
Prodaxis Print Quote 外掛可讓訪客上傳 STL 模型,選擇材料、顏色和模板,並獲得估算的列印價格、時間和耗材長度。此外掛透過 Prodaxis API 進行身份驗證,確保每個 WordPress 網站僅針對特定公司的列印選項進行報價。
【主要功能】
• 上傳 STL 模型以獲取報價
• 選擇材料、顏色和模板
• 獲得估算的列印價格和時間
• 透過 API 密鑰進行安全認證
• 伺服器端處理請求,保護 API 密鑰
外掛標籤
開發者團隊
原文外掛簡介
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
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.
It calls GET /print/options to read the company’s materials, colors and
templates.
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 and quantity)
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
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:
Uploads an STL model.
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.
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.
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_style – cards (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. No other external scripts or services are loaded in the browser.
