Item
1) New Focus for Basic, Plus, and Max Ecommerce Plans
data-doc-id="none"
The Basic, Plus, and Max ecommerce plans have been restructured to better align with current customer needs. Several features have been moved down across plan tiers, expanding the value of the Basic and Plus plans, while the Max plan is temporarily withdrawn from the available plan options.
Plan pricing remains unchanged and no new plans have been introduced. See the updated plan overview at webinone.com/new-pricing.
What changed
Basic plan: The following features, previously available only from the Plus plan, are now included in the Basic plan:
Attributes
Inventory Management
Gift Vouchers
Discount Codes
Plus plan: The following features, previously available only on the Max plan, are now included in the Plus plan:
Wholesale Pricing
Custom Order Statuses
Shipping options (Shipping Integrations)
Max plan: The Max plan has been temporarily removed from the list of plans available when creating a new site. New sites are now created on Content Pro and Ecommerce Plus plans.
2) Decimal Number Support for Custom Properties
data-doc-id="2139"
A new Decimal Number custom property type has been added, allowing fractional values to be stored and processed in module items. Previously, the Number custom property supported integer values only; Decimal Number extends this capability to decimal values such as 1.5, 0.75, or 10.25.
The existing Number property remains unchanged and continues to support integer values only.
Key capabilities
Flexible decimal input: Decimal values can be entered using either a dot (.) or a comma (,) as the decimal separator. After saving, the value is automatically normalized and displayed according to the configured country/locale format, consistent with the behavior of system product fields such as Weight, Width, Height, and Depth.
Admin panel support: The new Decimal Number type is available when creating or editing custom properties in the admin panel.
Open API support: Open API endpoints accept and return decimal values for properties of type Decimal Number.
Import / Export support: Decimal values are fully supported when importing and exporting module item data.
Frontend item forms: Create and edit (draft) item forms rendered on the frontend support decimal input for Decimal Number properties using a standard numeric input:
<div>
<label>{Name}</label>
<input type="number" name="prop_{Name}" step="0.01" value="">
</div>
3) Advanced Cleanup Rules Builder with Structured Condition System
data-doc-id="3542"
The Data Cleanup Rules functionality (both Auto Cleanup and Manual Cleanup) has been redesigned to use a flexible, structured condition builder. Fixed presets such as "Created more than 30 days ago" or "Last login for 90 days" have been replaced with a universal system that allows administrators to combine condition types and parameters dynamically.
This removes hardcoded time intervals, unifies the condition structure across all entities, and makes cleanup configuration scalable for future condition types.
New condition structure
Each condition group is now composed of:
Condition Type – the attribute being evaluated (e.g., Creation date, Last updated, Status)
Condition – the comparison operator (e.g., Older than, Within last, Has order)
Dynamic parameters – value, period, multiselect options, or date range, depending on the selected type
Logic rules
AND is applied between different Condition Types
OR is applied within multiselect values of a single Condition
Records with an active recurring subscription remain protected and cannot be removed
Manual Cleanup – Specific period
Manual Cleanup additionally supports a Specific period option for date-based conditions (Creation date, Last updated, Last login), providing a date range picker (from – to). This option is not available in Auto Cleanup.
Exceptions
Exceptions have been migrated to the same structured model. The previous "Items and records with active recurring subscriptions" exception has been removed and replaced with a permanent system note: Contacts with active recurring subscriptions are always protected and cannot be removed. The same logical condition cannot be selected simultaneously in Conditions and Exceptions.
4) Open API Support for CRM Contact Billing Fields
data-doc-id="3260"
The CRM Contacts Open API endpoints now support billing address fields in both request and response payloads, allowing external systems to read and update contact billing details through the API in line with the data already available in the admin panel.
The following endpoints have been updated:
GET /api/v2/admin/contacts
POST /api/v2/admin/contacts
GET /api/v2/admin/contacts/{id}
PUT /api/v2/admin/contacts/{id}
The newly supported fields are:
BillingAddress
BillingCity
BillingState
BillingZipCode
BillingCountry
5) Order Customer Snapshot and Independence from Contacts
data-doc-id="2351"
Orders are now self-contained and no longer depend on the existence of their associated contact. When an order is created, a customer snapshot (email, first name, last name, billing address) is saved directly on the order, alongside the existing shipping snapshot. If the contact is later deleted, the order remains intact and displays safely-masked customer data.
Contact deletion behavior
The MemberId field on orders is now nullable and is automatically set to NULL when the related contact is deleted. The order itself, including its snapshot, is preserved.
For orders with a deleted contact, standard API and UI responses return masked values:
Email – a***@gmail.com
First / Last name – J***n / S***w (three asterisks between the first and last character)
Billing and Shipping address – fully masked as ***
Standard order endpoints never return the original snapshot values.
New admin permission – Can View Customer Snapshot Data
A new permission ‘Can View Customer Snapshot Data’ has been added to the admin role configuration for orders, after the existing ‘Can View’ permission.
Enabled – the ‘Reveal Data’ button is shown on the order and the admin can disclose the original snapshot values.
Disabled – the button is hidden and the data-reveal endpoint returns 403 Forbidden.
List, detail, and search behavior
Orders are listed regardless of whether the related contact still exists. If the contact exists, current contact data is shown; otherwise the masked snapshot is shown.
The order detail page remains fully functional when MemberId is NULL.
In the Trash, orders with deleted contacts are shown using the masked snapshot, and data reveal is not available.
The order list now exposes two search fields per customer attribute (live contact data and snapshot data). With the ‘Can View Customer Snapshot Data’ permission, search runs across both (OR); without it, only live contact data is searched.
Export
Snapshot fields for deleted contacts are always exported in masked form, regardless of the exporting user's permissions. Revealing original values through export is not allowed.
Open API
A dedicated GET endpoint has been introduced for retrieving an order's customer snapshot.
A new Open API scope CrmOrdersSnapshot - read has been added; the snapshot endpoint is accessible only to clients with this scope.
Restoring orders from Trash
If the original contact still exists, the order is re-linked to that contact. If the contact has been deleted but a snapshot is available, the order is restored with MemberId = NULL and continues to use the snapshot. Deleted contacts and related entities are not recreated.
6) Orders Trash Management with Restore and Retention
data-doc-id="2351"
A new Trash section has been added to the Orders area of the admin panel. Deleted orders are now temporarily stored in the Trash, where administrators can restore them or remove them permanently. This prevents accidental data loss and provides a controlled retention window for deleted records.
Access
A button has been added in the Orders section to open the Trash as a separate screen. From the Trash, administrators can return to the main Orders list at any time.
Trash list view
The Trash displays the list of deleted orders with standard pagination and search. The following are intentionally not available in the Trash:
Order details page navigation
Create order button
Import button
Export button
Available actions
Two per-order actions are available:
Restore – returns the order to the main Orders list and restores it to an active state.
Delete permanently – removes the order and all related data (payments, order lines, and other dependent records) with no possibility of recovery.
A global Delete all action is also available, which permanently clears all orders from the Trash.
All permanent deletion actions require explicit confirmation.
Retention
Orders are stored in the Trash for up to 90 days. After this period, they are automatically and permanently deleted, along with all related entities. The retention countdown starts from the moment the order is moved to the Trash; a dedicated field on the order entity stores the move-to-trash date and time used for this calculation.
Open API
The Trash management endpoints have been added to the Open API specification and documented in Swagger.
7) VAT Invoice Number Generation for Orders Without Gaps
data-doc-id="2351"
A dedicated ‘VAT Invoice Number’ has been introduced for orders, providing a strictly sequential, gap-free numbering stream that complies with EU VAT requirements. The existing ‘Invoice Number’ continues to operate unchanged as an external reference for payment system integrations.
Behavior
VATInvoiceNumber is generated only after an order has been successfully paid.
It uses its own sequential numbering with no gaps and is immutable once assigned. Attempting to regenerate the VAT invoice number for an order returns an error.
InvoiceNumber continues to serve as the external payment reference, with its existing logic unchanged.
VATInvoiceNumber is treated as the legally significant invoice number.
The sequence counter is initialized to the maximum existing value to ensure no duplicates are produced for newly generated VAT invoice numbers.
8) Self-service site transferring (portal - not available now) in process
data-doc-id="new"
A new ‘Transfer Sites’ section has been introduced in the WebinOne Portal, allowing partners with the Reseller role to transfer one or more sites to another partner account. The functionality covers the entire flow — from creating a transfer request, through receiver confirmation and Stripe payment, to scheduled execution and post-transfer history.
Key capabilities
Transfer Sites section A dedicated menu item with Outgoing, Incoming, and History tabs is available to portal owners. A badge highlights active requests that require attention.
Transfer request A request can include one or more sites and is created through a guided wizard covering site selection, receiver, fee payer, subscription handling (Keep / Cancel), and transfer time (Immediately / Off-hours). Unfinished requests are saved as Draft and can be resumed at any time. The receiver can accept, decline, or modify the request through a limited Change Request flow.
Payment Each transfer is charged at a fixed rate of $100 per site, paid by either the sender or the receiver via Stripe Checkout, depending on the selected Fee Payer.
Transfer execution Sites are transferred sequentially after payment. Off-hours transfers run within the 00:00–06:00 window in the data center's local time to minimize downtime. Aggregated and per-site progress is displayed on the request detail page.
Status history & notifications Every request maintains an immutable chronological log of status transitions, available from the request page. Email notifications are sent to the sender and receiver at all key events (request created, accepted, updated, declined, completed).
Constraints
A site can participate in only one active transfer request at a time.
Transfers are allowed only within the same data center region.
A request expires automatically after 7 days without confirmation.
Once paid, a request can no longer be edited.
Bug fixes
Portal
Added SVG image support in portal branding.
Admin panel
Fixed a duplicate Workflows entry in the admin role permissions list.
Email and notifications
Fixed an issue where file links in emails contained an extra //, resulting in URLs such as //_form_submissions/12345/.
Modules
Fixed an issue where applying a template from the item list via Apply Template updated only the frontend output but not the OSE.
Custom properties are now exported in alphabetical order in module item exports.
Added support for bulk-moving custom properties using CTRL / CMD selection.
Fixed an issue where admin users could not see editable fields on the module item details page.
WYSIWYG editor
Fixed an issue where files uploaded via the WYSIWYG editor were placed in the root of File Manager instead of the selected folder.
Fixed an issue where links and configured indentation were lost when switching between WYSIWYG and code view.
File Manager
Fixed an issue where files could be created without a file extension.