{"id":335452,"date":"2026-07-06T19:03:40","date_gmt":"2026-07-06T19:03:40","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dedanix-expiry-batch-recall-for-woocommerce\/"},"modified":"2026-07-31T21:34:03","modified_gmt":"2026-07-31T21:34:03","slug":"dedanix-expiry-batch-recall-for-woocommerce","status":"closed","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/dedanix-expiry-batch-recall-for-woocommerce\/","author":23522019,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.5","stable_tag":"1.1.5","tested":"7.0.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"DeDanix Expiry, Batch & Recall for WooCommerce","header_author":"DeDanix","header_description":"Track WooCommerce product expiry dates, prevent expired sales, and prepare for batch and recall workflows.","assets_banners_color":"1b2337","last_updated":"2026-07-31 21:34:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/dedanix.com\/expiry-batch-recall\/","header_author_uri":"https:\/\/dedanix.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":206,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"dedanix","date":"2026-07-06 19:03:32"},"1.1.3":{"tag":"1.1.3","author":"dedanix","date":"2026-07-29 14:59:13"},"1.1.4":{"tag":"1.1.4","author":"dedanix","date":"2026-07-31 15:07:31"},"1.1.5":{"tag":"1.1.5","author":"dedanix","date":"2026-07-31 21:34:03"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3598238,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3598238,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3598238,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3598238,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.6","1.1.3","1.1.4","1.1.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3630154,"resolution":"1","location":"assets","locale":"","width":1920,"height":911},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3630154,"resolution":"2","location":"assets","locale":"","width":1905,"height":904},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3630154,"resolution":"3","location":"assets","locale":"","width":1920,"height":911},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3630154,"resolution":"4","location":"assets","locale":"","width":1920,"height":911},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3630154,"resolution":"5","location":"assets","locale":"","width":1920,"height":911}},"screenshots":{"1":"DeDanix Expiry Hub overview with risk counts, expired-product export, and recent expiry activity.","2":"Product catalog search with clear expiry status for each product.","3":"Unified CSV import and export workspace with preview and apply modes.","4":"Rules for sales protection, alerts, and storefront display.","5":"Expiry activity history recorded from Hub changes and CSV imports."}},"plugin_section":[],"plugin_tags":[56513,6601,270383,185249,286],"plugin_category":[45],"plugin_contributors":[269337],"plugin_business_model":[],"class_list":["post-335452","plugin","type-plugin","status-closed","hentry","plugin_tags-expiry-date","plugin_tags-inventory","plugin_tags-product-recall","plugin_tags-stock-control","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-dedanix","plugin_committers-dedanix"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/dedanix-expiry-batch-recall-for-woocommerce_1b2337.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/dedanix-expiry-batch-recall-for-woocommerce\/assets\/screenshot-1.png?rev=3630154","caption":"DeDanix Expiry Hub overview with risk counts, expired-product export, and recent expiry activity."},{"src":"https:\/\/ps.w.org\/dedanix-expiry-batch-recall-for-woocommerce\/assets\/screenshot-2.png?rev=3630154","caption":"Product catalog search with clear expiry status for each product."},{"src":"https:\/\/ps.w.org\/dedanix-expiry-batch-recall-for-woocommerce\/assets\/screenshot-3.png?rev=3630154","caption":"Unified CSV import and export workspace with preview and apply modes."},{"src":"https:\/\/ps.w.org\/dedanix-expiry-batch-recall-for-woocommerce\/assets\/screenshot-4.png?rev=3630154","caption":"Rules for sales protection, alerts, and storefront display."},{"src":"https:\/\/ps.w.org\/dedanix-expiry-batch-recall-for-woocommerce\/assets\/screenshot-5.png?rev=3630154","caption":"Expiry activity history recorded from Hub changes and CSV imports."}],"raw_content":"<!--section=description-->\n<p>DeDanix Expiry, Batch &amp; Recall for WooCommerce helps stores keep expiry dates visible, searchable, and actionable inside WooCommerce.<\/p>\n\n<p>WooCommerce can manage stock at the product level, but many stores also need to know when products expire. Food shops, supplement stores, cosmetics sellers, natural product stores, light pharmacy catalogs, chemical supplies, spare parts, tickets, licenses, and other time-sensitive products can all benefit from a simple expiry control layer.<\/p>\n\n<p>This Free edition focuses on product and variation expiry dates:<\/p>\n\n<ul>\n<li>Manage expiry dates for WooCommerce products and variations from the dedicated DeDanix Expiry Hub.<\/li>\n<li>Search by product name, SKU, barcode, or QR code without using WooCommerce product edit screens.<\/li>\n<li>Review expired, expiring soon, valid, or missing-date products from one operational workspace.<\/li>\n<li>Import expiry dates by CSV using SKU or product ID.<\/li>\n<li>Export all expiry records or focused expired-product reports in a spreadsheet-ready CSV.<\/li>\n<li>Review recent expiry-date changes from the Hub.<\/li>\n<li>Prevent customers from purchasing expired products.<\/li>\n<li>Optionally mark expired products out of stock or move them to draft.<\/li>\n<li>Send daily admin alerts for expired and soon-to-expire products.<\/li>\n<li>Optionally show expiry dates on product pages.<\/li>\n<\/ul>\n\n<h4>Built for a clear Free workflow<\/h4>\n\n<p>Use the plugin in three simple steps:<\/p>\n\n<ol>\n<li>Open DeDanix Expiry and find a product by name, SKU, barcode, or QR code.<\/li>\n<li>Set expiry dates for the product or its variations, or import them from CSV.<\/li>\n<li>Decide what happens when a product expires.<\/li>\n<\/ol>\n\n<h4>CSV expiry import<\/h4>\n\n<p>The Free importer supports a lightweight product-level CSV workflow:<\/p>\n\n<ul>\n<li>Download the CSV template.<\/li>\n<li>Add SKU or product ID. The export uses the same columns, so it can be used as a starting point for a later import.<\/li>\n<li>Add expiry date in YYYY-MM-DD format.<\/li>\n<li>Preview the file before applying changes.<\/li>\n<li>Apply valid rows when the preview looks correct.<\/li>\n<\/ul>\n\n<h4>Batch and recall direction<\/h4>\n\n<p>The product is designed with a future batch and recall workflow in mind. A future commercial add-on is planned for multiple batches per product, FEFO allocation, stock by batch, order-level batch traceability, recall lookup, customer recall emails, CSV export, dashboard reports, and bulk inventory import\/export.<\/p>\n\n<p>The Free plugin does not claim to be an ERP. It is a focused WooCommerce expiry layer that stays lightweight and practical.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the plugin folder or install the ZIP from Plugins &gt; Add New.<\/li>\n<li>Activate DeDanix Expiry, Batch &amp; Recall for WooCommerce.<\/li>\n<li>Open DeDanix Expiry from the WordPress menu or visit the private Expiry Hub URL.<\/li>\n<li>Search for a product and set its expiry date or its variation expiry dates.<\/li>\n<li>Use Import in the Expiry Hub to preview or apply expiry dates from CSV.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20free%20plugin%20manage%20multiple%20batches%20per%20product%3F\"><h3>Does the Free plugin manage multiple batches per product?<\/h3><\/dt>\n<dd><p>No. Free tracks one expiry date per product or variation. Multiple batches, FEFO allocation, batch stock, and recall workflows are planned for a separate commercial add-on.<\/p><\/dd>\n<dt id=\"can%20expired%20products%20be%20blocked%20automatically%3F\"><h3>Can expired products be blocked automatically?<\/h3><\/dt>\n<dd><p>Yes. Free can prevent purchases of expired products. During the daily expiry check, it can also mark expired products out of stock or move products to draft, depending on your settings.<\/p><\/dd>\n<dt id=\"can%20i%20show%20expiry%20dates%20to%20customers%3F\"><h3>Can I show expiry dates to customers?<\/h3><\/dt>\n<dd><p>Yes. Frontend display is optional. You can enable it from the Rules section in the DeDanix Expiry Hub.<\/p><\/dd>\n<dt id=\"can%20i%20import%20expiry%20dates%3F\"><h3>Can I import expiry dates?<\/h3><\/dt>\n<dd><p>Yes. Free includes a simple CSV importer for product-level expiry dates. Use SKU or product ID plus expiry_date in YYYY-MM-DD format. The Free importer is intentionally limited to simple expiry dates and does not import batches.<\/p><\/dd>\n<dt id=\"does%20this%20replace%20an%20erp%20or%20warehouse%20system%3F\"><h3>Does this replace an ERP or warehouse system?<\/h3><\/dt>\n<dd><p>No. The plugin is designed as a focused WooCommerce expiry layer, not a full ERP or warehouse management system.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20variable%20products%3F\"><h3>Does it work with variable products?<\/h3><\/dt>\n<dd><p>Yes. You can add expiry dates to individual variations. Product-level expiry dates are also supported.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20woocommerce%20is%20not%20active%3F\"><h3>What happens if WooCommerce is not active?<\/h3><\/dt>\n<dd><p>The plugin shows an admin notice and does not boot its WooCommerce features until WooCommerce is active.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Confirmed when the product index has refreshed after an applied CSV import.<\/li>\n<li>Improved the import result so catalog changes are clear immediately after applying expiry dates.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Added CSV export for all expiry records and focused expired-product reports.<\/li>\n<li>Added a lightweight expiry change history for Hub edits and applied CSV imports.<\/li>\n<li>Refined the Hub import workspace for a consistent import\/export workflow.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Improved the Rules layout so paired controls remain aligned when a setting includes helper text.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Added a WordPress Dashboard button to the Expiry Hub header for direct return to the backend.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Made product-index rebuilding resumable in small batches for large catalogs and activation flows.<\/li>\n<li>Made barcode and QR searches resolve variation SKUs to their parent product workspace.<\/li>\n<li>Protected the private Hub URL from reserved paths and existing public page collisions.<\/li>\n<li>Kept the Hub index synchronized when WooCommerce products are trashed or restored.<\/li>\n<li>Added per-product edit permission checks to CSV imports.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New standalone DeDanix Expiry Hub with product search, barcode and QR camera scanning, and quick editing for product and variation expiry dates.<\/li>\n<li>Added a private configurable Expiry Hub URL and an indexed product catalog for fast daily operations.<\/li>\n<li>Moved expiry import and operational rules into the hub, reducing reliance on WooCommerce product edit screens.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Initial development scaffold.<\/li>\n<li>Product and variation expiry date fields.<\/li>\n<li>Product list column and filters.<\/li>\n<li>Expiry dashboard and settings.<\/li>\n<li>Simple CSV expiry import with preview\/apply modes.<\/li>\n<li>Expired purchase blocking.<\/li>\n<li>Daily expiry action and admin email foundation.<\/li>\n<li>Initial POT file for translations.<\/li>\n<\/ul>","raw_excerpt":"Prevent expired WooCommerce sales, track product expiry dates, and prepare your store for batch and recall workflows.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/335452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=335452"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dedanix"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=335452"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=335452"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=335452"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=335452"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=335452"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=335452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}