Implement comprehensive stock management integration (v1.1.0)

Added complete inventory tracking system for composable products:
- Stock validation during product selection and add-to-cart
- Automatic stock deduction on order completion/processing
- Automatic stock restoration on order cancellation/refund
- Stock status indicators with visual feedback (In stock, Low stock, Out of stock)
- Prevention of out-of-stock item selection
- Low stock warnings when 5 or fewer items remain
- Order notes documenting all stock changes

New files:
- includes/Stock_Manager.php: Core stock management logic

Modified files:
- includes/Cart_Handler.php: Integrated stock validation
- includes/Product_Selector.php: Added stock info to product data
- includes/Plugin.php: Added Stock_Manager to includes
- templates/product-selector.twig: Stock status display
- assets/css/frontend.css: Stock indicator styling
- languages/*.pot/*.po: 8 new translatable strings

Version bumped to 1.1.0 with updated CHANGELOG.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-31 16:41:53 +01:00
parent a581ef42e6
commit e9df6e4278
11 changed files with 489 additions and 5 deletions

View File

@@ -198,3 +198,35 @@ msgstr "Inserire i codici articolo dei prodotti separati da virgole."
#: includes/Admin/Product_Data.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "COD-1, COD-2, COD-3"
#: includes/Stock_Manager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" è esaurito e non può essere selezionato."
#: includes/Stock_Manager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Solo %2$d di \"%1$s\" sono disponibili in magazzino."
#: includes/Stock_Manager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Giacenza ridotta per \"%1$s\": -%2$d (rimanenti: %3$d)"
#: includes/Stock_Manager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Giacenza ripristinata per \"%1$s\": +%2$d (totale: %3$d)"
#: templates/product-selector.twig
msgid "Out of stock"
msgstr "Esaurito"
#: templates/product-selector.twig
msgid "Only"
msgstr "Solo"
#: templates/product-selector.twig
msgid "left"
msgstr "rimasti"
#: templates/product-selector.twig
msgid "In stock"
msgstr "Disponibile"