WooCommerce Custom Plugin for Weighted Products

Job ID: 39597919

Budget: $10 – $30 USD

Purpose
To develop a custom plugin for WordPress with WooCommerce that enables the sale and management of a new product type: Weighted Products (priced by weight, not quantity).

Core Functionality
1. New Product Type – "Weighted Product"
A new product type will be added in WooCommerce.

Type name: Weighted Product.

2. Product Settings – Weighted Product
When creating a new product of this type, the following options will appear in the product editor:

Select weight unit: grams / kilograms.

Set price per unit of weight: e.g., 100₪ per kg or 0.1₪ per gram.

Define minimum and maximum purchase weight.

Weight selection method:

Fixed increments (e.g., every 100g).

Or allow manual input (within the defined range).

Allowed weight deviation (%) – optional.

This defines how much the actual weight can differ from the selected weight (e.g., up to ±10%).
A message will be shown on the product page: “Final weight may vary up to X%.”

3. User Experience – Product Page
Display weight selector (in steps or free input).

Show dynamic pricing based on chosen weight.

Display allowed weight range and note about possible variation.

4. Checkout & Order Placement
At checkout:

The system calculates an estimated price (90%) of the total based on selected weight.

Customer places the order normally.

Order status is set to: Pending Weight Confirmation.

5. Admin Panel – Order Management
Store owner accesses the order in WooCommerce admin.

Can update the actual weight of each weighted product.

The system recalculates the final total based on updated weights.

All items in the order can be updated, and once confirmed – the order can be finalized.

6. Finalization & Payment
Once the order is approved by the store owner:

The customer is charged the final amount (via pre-authorized payment or charge request).

The order status is updated to: Completed.

The customer receives a final order summary, including:

Actual weight for each product.

Total amount charged.