The plugin assigns the configured default Purchase Type when WooCommerce creates product line items during checkout. Administrators can view or change that value from the order edit screen. The value is internal order-item metadata and is hidden from customer-facing order details and emails.
Requirements: WordPress 6.0 or later, PHP 8.0 or later, WooCommerce 8.0 or later, and an installed and activated DK Base Plugin.
A new installation starts with these active types: Author, Bad, Proof, Sold, Sold Kindle, Sold MP3, Sold Audiobook, and Donation. Sold is the initial default.
Deactivating the plugin keeps its Purchase Type settings and order-item data. Uninstalling it removes the configured type list and default setting. Purchase Type values already stored on WooCommerce order items are retained.
The Existing Purchase Types table shows whether each type is active, whether it is the default, and how many stored Purchase Type values currently use that label. The Used count is not an order total: an order can contain multiple items with the same type.
Historical-data warning: Renaming a type changes the configured label and does not rewrite that label on existing order items. If historical orders must keep reporting under the same label, avoid renaming a type after it has been used; add a new type and deactivate the old one instead.
Select a type under Default Purchase Type and click Save Default. The default is assigned to each new checkout line item and is also used by the normalization tool. Keep the selected default active so it remains available when editing orders. The default type cannot be deleted or deactivated.
If an order item already uses an inactive type, that historical value remains visible and is marked inactive. It cannot be selected for a different item unless the type is reactivated.
Normalize Missing Purchase Types scans WooCommerce orders across registered order statuses and assigns the current default to product line items with missing or empty Purchase Type values. Existing nonempty values are left unchanged. It supports WooCommerce High-Performance Order Storage (HPOS).
The operation processes the entire order history in one request. On a large store, run it during a quiet period and wait for the request to finish rather than refreshing or submitting again. If there were no missing values to fill, a positive update-count notice will not appear.
Normalization does not replace an existing label, migrate renamed types, or reactivate inactive types. Changing the default affects future assignments and missing values filled by this tool; it does not reclassify previously labeled items.