Amitry Price Configurator for WooCommerce

Description

Some products do not come in fixed sizes. Acrylic sheets are cut to order, fabric and cable are sold by the metre, substrate and gravel by the cubic metre, granulate and fasteners by weight. For those products a fixed price does not work, and the usual workaround is an enquiry form and a quote by email two days later.

Amitry Price Configurator replaces that step. Customers enter the size they need directly on the product page, see the price update as they type, and buy in the same visit.

The price you already entered in WooCommerce becomes the price per unit. Enter 45.00 on a product set to area mode and that is 45.00 per square metre. Sale prices, tax settings, coupons and shipping keep working the way they do for every other product in your shop.

How the price is worked out

The entered measurements are converted to the base unit and multiplied by your unit price. A matching tier discount is subtracted, selected surcharge options are added, and a minimum price is applied if you configured one. This runs on the server when the product is added to the cart and again on every cart total calculation, so the cart, the checkout and the order always agree with your product settings. Values typed in the browser are never trusted.

Typical use cases

  • Cut to size shops. Acrylic glass, plywood, MDF, mirrors, glass, worktops, priced per square metre with a cutting fee
  • Made to measure products. Blinds, privacy screens, tarpaulins, tablecloths, priced from width and length
  • Goods sold by the metre. Fabric, cable, rope, fencing, edge banding, guttering, priced per running metre
  • Materials sold by weight. Granulate, animal feed, fasteners, powder coating, priced per kilogram
  • Materials sold by volume. Substrate, gravel, bark mulch, insulation, priced per cubic metre
  • Print and signage. Banners, stickers, foils and posters priced by area, with finishing options as surcharges

Pricing features

  • Four calculation modes: length (per m), area (per m2), volume (per m3) and weight (per kg)
  • Input units per product: mm, cm or m for dimensions, g or kg for weight
  • Minimum, maximum, step and default value per input field, validated on the server
  • Minimum price per configured item, so small cuts still cover your handling
  • Surcharge options per product, for example a cutting fee or polished edges, shown as checkboxes
  • Tier discounts based on the quantity in the cart line or on the calculated measure
  • Optional unit price suffix next to the displayed price, for example “45.00 EUR / m2”, useful where unit pricing has to be shown, such as under the German Price Indication Ordinance (PAngV)

Made straightforward for your customers

  • Size presets per product, for example “50 x 120 cm”, shown as buttons above the fields. One click fills in the values, and custom measurements stay possible
  • Visible limits under each field, for example “100 to 2000 mm, in steps of 10”
  • Validation while typing instead of an error after submitting, with the add to cart button held back until the entry is valid
  • Fields are prefilled, so a real price is on screen when the page loads
  • A live breakdown of measure, discount and options under the total
  • A volume discount line, so larger orders show their own saving

For your shop

  • The chosen configuration appears in the cart, at the checkout, on the order page and in order emails
  • A machine readable snapshot is stored on the order line item, so a later product change does not rewrite what a customer bought
  • Compatible with High Performance Order Storage (HPOS) and with the Cart and Checkout Blocks through the Store API
  • No external requests, no tracking, no data leaves your site
  • Fully translatable, POT file included

For developers

The plugin exposes actions and filters for extensions: apconf_loaded, apconf_modes, apconf_product_config, apconf_calculation, apconf_measure, apconf_measure_labels, apconf_summary_rows, apconf_settings_schema, apconf_frontend_data, apconf_order_item_snapshot, apconf_before_fields, apconf_after_fields. The hook contract version is available as the APCONF_HOOK_VERSION constant.

Installation

  1. Install and activate WooCommerce.
  2. Upload the plugin files to the /wp-content/plugins/amitry-price-configurator/ directory, or install the plugin through the WordPress plugins screen.
  3. Activate the plugin through the Plugins screen.
  4. Edit a simple product and open the “Price Configurator” tab in the product data box.
  5. Enable the configurator, choose a calculation mode and set the input unit.
  6. Set the product price to your price per unit, for example the price per square metre, and save.

FAQ

How do I sell a product by the square metre in WooCommerce?

Set the product price to your price per square metre, then open the “Price Configurator” tab, enable the configurator and choose the area mode. Customers enter width and length on the product page and the price follows. Choose mm, cm or m as the input unit depending on how your customers think about the product.

How do I sell fabric, cable or other goods by the metre?

Use the length mode and set the product price to your price per running metre. Give the length field a minimum, a maximum and a step, for example from 50 cm in steps of 10 cm, so customers can only order lengths you can actually cut.

Can I offer cut to size products with a cutting fee?

Yes. The measurement based price covers the material, and a surcharge option adds a fixed amount per item for the cut, polished edges, drilled holes or any other service. Surcharges appear as checkboxes under the measurement fields and are listed separately in the cart and on the order.

Can I charge by weight?

Yes. The weight mode prices the item per kilogram, and customers can enter grams or kilograms depending on the product setting.

Do customers have to measure everything themselves?

No. Each product can define size presets, which appear as buttons above the input fields. One click fills in the values and updates the price, which suits the majority who want a common size, while anyone with an unusual requirement can still type their own measurements.

Can I show a price per unit next to the product price?

Yes. The unit price suffix appends the pricing unit to the displayed price, for example “45.00 EUR / m2”. Shops that have to display unit pricing, for instance under the German Price Indication Ordinance (PAngV), can switch it on per product.

Can I give a discount for larger orders?

Yes. Tier discounts reduce the measurement based part of the price from a threshold upwards. The threshold can be the quantity in the cart line or the calculated measure itself, so you can discount from ten pieces or from five square metres. The configured tiers are shown to customers under the price.

Which product types are supported?

Simple products. Variable products are not supported yet.

Does it work with the Cart and Checkout Blocks?

Yes. Prices are set on the server during cart total calculation and the configuration summary uses the standard item data filter. The Store API, which powers the blocks, uses both.

How are taxes handled?

The product price is the price per unit on the same basis as all your other WooCommerce prices, so your tax settings apply unchanged. The minimum price and the surcharge options are treated on the same basis as entered product prices.

Can a customer manipulate the price from the browser?

No. The values sent from the product page are sanitized and checked against the minimum, maximum and step you configured, and the price is then calculated on the server from your stored product settings. The figure shown in the browser is a preview only.

Why does the price preview sometimes differ from the cart by a cent?

The preview on the product page is a display estimate calculated in the browser. The binding price is always recalculated on the server and rounded by WooCommerce.

Can I extend the plugin from my own code?

Yes. The plugin exposes a documented set of actions and filters, including a filter over the whole calculation result, over the configuration of each product and over the summary rows written to the cart and the order.

What happens to my data if I delete the plugin?

Deleting the plugin removes the plugin settings and the per product configuration. Order data is kept, because it documents what customers actually bought.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Amitry Price Configurator for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.1

  • New: a worked example in the product data tab. It takes the calculation mode, the input unit, the product price and your default values and shows what a customer would actually pay, updating as you type, so a per unit price is never set by guesswork.
  • New: values that had to be adjusted while saving are listed at the top of the product data tab instead of being changed silently. This covers a minimum larger than a maximum, a default or preset that does not fit the limits or the step, and two tier rows sharing a threshold.
  • Improved: the column headers of the input field and preset tables now carry the active input unit, for example “Min (mm)”, and the tier table shows whether its threshold is a piece count or a measure.
  • Improved: a comma is accepted as the decimal separator alongside a point, in the browser and on the server, so an entry like 1,5 is no longer rejected.
  • Improved: when the add to cart button is held back, the reason is now stated under the price instead of leaving a disabled button unexplained.
  • Improved: documentation. The description now covers the situations the plugin is built for, and the FAQ answers the questions shop owners actually ask.

1.0.0

  • Initial release.