3DPrint Premium is essentially a WordPress/WooCommerce plugin, so the requirements are as follows:
Keep in mind that the plugin might demand a decent hosting (VPS) if you plan to upload large models. This is because unlike 3DPrint Lite it's important to recalculate the price on the server side before adding it to cart.
If you're going to use model processing features and API make sure your server is able to connect to srv1.wp3dprinting.com:80. Check the plugin's "System Status" page for additional information.
After you purchase the plugin you should receive 3dprint.zip file, which can be installed through the WP admin area or manually using an FTP client. When it's activated you get redirected to the 3DPrint settings page. Now you can create your first 3DPrint product as shown in this video.
Once the 3DPrint product is created you can use it directly on the product page or through a shortcode. The shortcode can be generated on 3DPrint->Shortcode Generator page.
When choosing the theme make sure it declares WooCommerce support. If you have layout issues on the product page try to use the shortcode generated through 3DPrint->Shortcode Generator with "Compatibility Mode" enabled.
It is quite possible that some theme might be incompatible with the plugin so some custom CSS coding may be required, but if you can't figure it out feel free to contact us.
Please refer to the FAQ page.
The plugin is open source and GPL licensed.
The plugin can run in 3 modes:
In this mode when the model is uploaded and the price is calculated the add-to-cart button appears. Notice the "..." button next to the dropdown which opens the extra options popup for showing the price request form if someting goes wrong (a model is too large, a model is irrepairable, etc)
Important: The 3DPrint product price is calculated in the shopping cart, so it's important to include the shopping cart page in the checkout process.
This option can be configured per product, so you can have a get-a-quote product and an add-to-cart product.
Please note that the minimum product price is set in the "Regular Price" field of product variations.
This page contains all options related to the frontend viewer. Here you can also switch to the fullscreen mode. The fullscreen mode can also be configured per product. If you don't need to show printers, materials or coatings on the frontend/shopping cart you can hide them with "Show Printers", "Show Materials", "Show Coatings" options. Moreover you can hide the standard WooCommerce product reviews section with the "Show Reviews" option.
Here you can configure the maximum size of a model and file extensions you allow your customers to upload. The plugin has no upload limit because it uses upload chunking. The chunk file size is configured on this page and it should not be larger than upload_max_filesize defined in php.ini.
Also there is a housekeeping feature which allows deleting files older than X number of days. This feature uses wp-cron and is scheduled to run once daily.
Here you should congifure the login which is used for getting plugin updates and using server-side features listed below (repair, optimize, etc). At the moment of writing the plugin updates are lifetime.
Try to repair uploaded models through Slic3r. Use with caution as it might mess up models.
Optimize the model orientation on the printing platform to improve the efficiency of 3D printing.
Reduce the number of polygons lowering the model quality and decreasing the file size.
The API is required to activate plugin's special features: infill calculation, support material calculation, print time calculation. If you enable the API the models uploaded by your clients will be sent to our servers for analysing and cached for 2 days. It requires purchasing the paid subscription. More information.
On this tab you can configure Ninja Forms 3.0+ integration (see FAQ and video tutorial ). This is useful for building custom price request forms: extra file uploads, multiple field types, conditional logic. More information is available in Ninja Forms documentation.
Important: If you change the form generated by 3DPrint keep in mind that the field key for the Message field should be named "message". The field key of the E-mail field should be called "email".
This can only be used in the "Get a Quote" mode. If you need to add extra fields in the "Add to Cart" mode consider installing Product Addons for Woocommerce.
Upon activation 3DPrint plugin creates special product attributes (Material, Printer, Coating, Post-processing, Model, Filename, Infill, Scale, Unit) which can be seen on "Products -> Attributes" page. If you damage or remove attributes by mistake you can always recreate them by deactivating/activating the plugin.
The material is the first thing a customer chooses on the frontend. The most common setup is to create a set of materials and clone them setting different colors for each. However you can create a single material per material type and use coatings as colors. Keep in mind that if you assigned materials to appropriate printers a compatible printer is chosen automatically. Therefore using printers as quality presets you can combine a material and a quality preset.
Important settings: Material Type, Material Density (required to calculate the model weight).
Can charge per: 1 cm3 of Bounding Box Volume, 1 cm3 of Material Volume, 1 cm3 of Support Material, fixed Support Material charge, 1 cm3 of Removed Material Volume (bounding box volume - material volume), 1 gram of Material, 1 gram of volumetric weight (higher value of actual and volumetric weight), Fixed Price, 1 Hour of print time, +% to total price.
You have an option to offer material selection before printer selection here.
At least one active material is required for the plugin to work.
Printers can play several roles: physical devices, printing technology indicators, quality presets.
The most straightforward use.
You can create several printers and name them like "FFF, SLA, Metal Printing" and use materials to calculate the price.
You can create a printer and clone it several times to offer different quality presets. Each printer can have different quality settings (layer height, infill, etc).
The most important settings: Printer Type, Build Tray Length/Width/Height, Minimum Model Side, Layer Height, Infill.
When the API is activated you can also click Advanced Options button and configure slicer settings and calculate the cost for energy consumption, depreciation and repairs.
Can charge per: 1 cm3 of Bounding Box Volume, 1 cm3 of Material Volume, 1 cm3 of Removed Material Volume (bounding box volume - material volume), 1 gram of Material, Fixed Price, 1 Hour of print time, +% to total price
You have an option to offer printer selection before material selection here.
At least one active printer is required for the plugin to work.
Coatings can be used as material colors or a paint job.
All coatings have the "Materials" dropdown menu where you can assign appropriate materials. By default the materials dropdown is empty which means that the coating is compatible with ALL materials.
If your coatings are optional you can set the first coating as "None". To remove the coating color click "clear".
Can charge per: cm2 of surface area, Fixed Price, +% to total price.
This controls how densely filled the insides of your print will be. For a solid part use 100%, for an empty (and fragile) part use 0%. A value around 20% is usually enough to create a sturdy model. When the API is disabled all models are considered 100% solid. To show infills on the frontend you need to check "Show Infills" checkbox on the Settings page, "Analyse API" tab. The infill is calculated only when the API subscription is enabled. However it still can be used without the subscription in the "Get a Quote" mode.
Please note that printers have the "Infills" dropdown where you can set available infills for the printer and the "Default Infill" field which is automatically set upon printer selection.
Post-processing section provides a set of checkboxes which may offer sanding, polishing, support removal, etc.
All post-processing methods have the "Materials" dropdown menu where you can assign appropriate materials. By default the materials dropdown is empty which means that the post-processing is compatible with ALL materials.
Can charge per: 1 cm3 of Bounding Box Volume, 1 cm3 of Material Volume, 1 cm3 of Support Material, cm2 of surface area, fixed Support Material charge, 1 cm3 of Removed Material Volume (bounding box volume - material volume), 1 gram of Material, 1 gram of volumetric weight (higher value of actual and volumetric weight), Fixed Price, 1 Hour of print time, +% to total price.
The attributes are created through the standard WooCommerce facility. Also you can set the attribute price on Products->Attributes page. The price can be flat or a percentage of the total, printing/material/coating price or material amount. It can also be a negative value. Video instructions on how to set up the price can be found here.
3DPrint plugin provides an option for customers to upload a model, choose a material and other parameters and hit the "Get a Quote" button. Once the button is pressed an email with the quote request is sent to the admin configured e-mail address. The price request can be seen in the admin area: 3DPrint -> Price Requests page. Additionally if you use Ninja Forms integration you can see it on the Ninja Forms form submissions page. Registered customers can see their price requests on the my-account page.
Once the price is set by the admin and sent to the customer the model can be added to cart by clicking the email's "buy now" link or through the "Price Requests" on the "my-account" page.
To enable the "Get a Quote" mode navigate to 3DPrint -> Settings -> Checkout/Pricing. Also this option can be configured per product
Here you can create templates for the price request e-mails sent to the admin and a customer. Please note that these templates work only for the 3DPrint price requests, not for the woocommerce order confirmation e-mails. Since v2.7.1.6 you can use HTML in the templates.
3DPrint has it's own discount system where you can set a % or a flat discount for a given number of 3DPrint products being purchased.
For example you need following discount rules:
10 products = 10% discount
100 produts = 25% discount
1000 products = 50% discount
The discount applies in the shopping cart.
3DPrint performs a bunch of server side operations such as: model repair, optimization, triangulation, conversion, analysis/slicing. 3D models get uploaded to our server and cached for 2 days. We don't view, copy or distribute uploaded files. However these operations are optional and it is possible to create a totally isolated system, so the 3D models never leave your website. The diagrams below describe the workflow in more details.
Some features may require a paid subscription. Additional information can be found here.
At the moment 3DPrint offers several slicing programs to choose from: Cura 15.04, Cura 3.4, Slic3r 1.2.9, PrusaSlicer 2.3.2 with Cura 3.4 being the fastest and PrusaSlicer the most accurate.
To access slicer parameters the "Advanced Options" button in printer's settings should be clicked.
Important settings: Layer Height, Infill, Print Speed, Support Material.
To get the most accurate results use PrusaSlicer 2.3.2, export the configuration file from PrusaSlicer and upload it into the Prusa Configuration File field.
For other slicers try to copy all settings from your desktop software keeping in mind the most important settings mentioned above.
Important: To be able to use the slicing feature it is required to purchase a monthly or annual subscription.
Configuring the price might be tricky and I'd suggest start with this 3D printing calculator
Keep in mind that materials, printers, coatings and post-processings can be configured to charge per: 1 cm3 of Bounding Box Volume, 1 cm3 of Material Volume, 1 cm3 of Support Material, fixed Support Material charge, 1 cm3 of Removed Material Volume (bounding box volume - material volume), 1 gram of Material, 1 gram of volumetric weight (higher value of actual and volumetric weight), Fixed Price, 1 Hour of print time, +% to total price.
Also printers have "Advanced Options" where you can configure electricity tariff, depreciation cost and repair cost.
Currently laser cutting printers DXF (2D), SVG, EPS and PDF (single page) files. Supported DXF entities: CIRCLE, ARC, LWPOLYLINE, LINE, POLYLINE, POINT, INSERT, SPLINE, ELLIPSE.
It's important to mention that in order to avoid possible confusion and problems it's better to create a separate 3DPrint product for laser cutting. Please check our FAQ for the "How do I assign a printer/material to a product?" question. When setting up a laser cutting product keep in mind that both a material and a printer should have a "laser cutting"/"laser cutting workpiece" type set in the admin. In advanced settings of the printer you can set the cutting speed and piercing time values, but they can be overriden by the corresponding settings of the material. Important: laser cutting workpieces have a thickness setting which defines the height of the model. Lastly make sure that all laser cutting workpieces are assigned to the laser cutting machine in the printer's settings.
To price it correctly you need to make the printer or material charge by hour or total cutting path (the API subscription should be enabled).
The demo is available here.
On the Shortcode Generator page you have an option to create a special shortcode which can be used to display the bulk upload form. DEMO.
The bulk upload form can be used in add-to-cart and get-a-quote mode. The mode is set in general settings of the plugin and can be overriden by product settings.
Also you can configure the plugin to group bulk price requests on the "Checkout/Pricing" tab.
The demo is available here.
Many visual frontend changes can be made with any "Custom CSS / Custom JS" plugin. This includes adjustments like font, background color, canvas width, removal of unwanted elements.
Example: if you need to hide the product name paste the following code into your "Custom CSS" plugin:
#product-15 .product_title { /* Hides the title for a product with ID 15 */ display: none; } #product-15 form.p3d-product-form { /* Adjusts the height of the right column */ padding-top: 0 !important; }Here is how to find the product ID
Keep in my mind that being a WooCommerce plugin 3DPrint supports several WooCommerce plugins such as Product Addons for Woocommerce which allows adding extra fields to the product page.
Additionally there is a template addon where you can adjust the frontend layout by editing PHP files directly.
3DPrint offers a few WP hooks such as:
/* Location: 3dprint/includes/3dprint-functions.php Can be used for additonal processing of a newly uploaded model. */ $output = apply_filters( '3dprint_upload', $output, $product_id, $printer_id, $material_id, $coating_id );
/* Location: 3dprint/includes/3dprint-model-functions.php Can be used for custom model format detection. */ $format = apply_filters( '3dprint_detect_model_format', $format );
/* Location: 3dprint/includes/3dprint-model-functions.php Can be used for getting custom model stats. */ $model_stats = apply_filters( '3dprint_get_model_stats', $model_stats, $filepath );
/* Location: 3dprint/includes/3dprint-model-functions.php Can be used for custom price calculation. */ $total = apply_filters( '3dprint_calculate_printing_cost', $total, $printer_id, $material_id, $coating_id, $product_info, $attributes );
/* Location: 3dprint/includes/3dprint-functions.php Fired after plugin activation. */ do_action( '3dprint_activate' );
/* Location: 3dprint/includes/3dprint-functions.php Fired after plugin dactivation. */ do_action( '3dprint_deactivate' );
/* Location: 3dprint/includes/3dprint-functions.php Fired before a model is sent to the 3dprint servers for processing. */ do_action('p3d_handle_process_begin');
/* Location: 3dprint/includes/3dprint-functions.php Fired before a model is sent to the 3dprint servers for analysing. */ do_action('p3d_handle_analyse_begin');
/* Location: 3dprint/includes/3dprint-admin-price-requests-edit.php Fired before a quote is e-mailed to a customer. */ do_action('3dprint_send_quote', $message);
/* Location: 3dprint/includes/3dprint-admin-price-requests-edit.php Fired after a quote is e-mailed to a customer. */ do_action('3dprint_after_send_quotes');
/* Location: 3dprint/woocommerce/single-product/add-to-cart/variable.php Fired after a quote request is e-mailed to the admin. */ do_action('3dprint_request_price');
/* Location: 3dprint/woocommerce/single-product/add-to-cart/variable.php Fired before the 3dprint product attributes (printer, material, coating) are displayed on the frontend. */ do_action('3dprint_before_displaying_materials');
/* Location: 3dprint/woocommerce/single-product/add-to-cart/variable.php Fired before the closing tag of the add-to-cart form on the product page. */ do_action( '3dprint_add_to_cart_form' );
Also there is a Javascript filter system which is very similar to the WordpPress one. The hooks are in 3dprint/includes/js/3dprint-frontend.js and start with "window.wp.hooks" code.
There is a barebones price calculation mod which can be downloaded here (can be installed just like a regular WordPress plugin ). Modify custom-price-mod.php to adjust the price in the shopping cart. Modify cpm.js to adjust the price on the product page. Keep in mind that JS files are cached by the browser, so you need to refresh the browser cache each time you edit cpm.js. Also if you have a cache plugin make sure to empty the cache each time you edit cpm.js.
If you need to add extra hooks to the code you can ask me using the contact form.
3DPrint is translation ready which means you can change any text of the plugin. The easiest to do this is to use Loco Translate plugin.
If your language does not exists click "New Language". If your language translation already exists click copy. Then select /languages/plugins/ as the translation location.
If use Loco Translate and can not find the source text try clicking the sync button.
When translating the product attributes (printer, material, coating, post-processing, etc) you may also need to adjust their names on the Products -> Attributes page.
Email templates can be translated on 3DPrint -> Email Templates page.
If something doesn't work as expected:
If you have troubles with the price calculation you can enable the "Price Debug Mode" on the Settings -> Price/Checkout page.