$newId, 'name' => sanitize($_POST['name']), 'description' => sanitize($_POST['description']), 'price' => (float)$_POST['price'], 'category' => sanitize($_POST['category']), 'image' => sanitize($_POST['image']) ]; // Handle stock - per size for apparel, general for merch if ($newProduct['category'] === 'apparel' && !empty($_POST['sizes'])) { $sizes = sanitize($_POST['sizes']); $newProduct['sizes'] = $sizes; // Store as comma-separated string // Initialize stock_by_size $sizeArray = array_map('trim', explode(',', $sizes)); $newProduct['stock_by_size'] = []; foreach ($sizeArray as $size) { $stockKey = 'stock_' . str_replace([' ', ','], '_', $size); $newProduct['stock_by_size'][$size] = isset($_POST[$stockKey]) ? (int)$_POST[$stockKey] : 0; } } else { $newProduct['stock'] = (int)$_POST['stock']; } $products[] = $newProduct; saveProducts($products); $message = 'Produkt erfolgreich hinzugefügt.'; $messageType = 'success'; } if (isset($_POST['update_product'])) { $productId = (int)$_POST['product_id']; foreach ($products as &$product) { if ($product['id'] == $productId) { $product['name'] = sanitize($_POST['name']); $product['description'] = sanitize($_POST['description']); $product['price'] = (float)$_POST['price']; $product['category'] = sanitize($_POST['category']); $product['image'] = sanitize($_POST['image']); // Update stock - per size for apparel, general for merch if ($product['category'] === 'apparel') { if (!empty($_POST['sizes'])) { $product['sizes'] = sanitize($_POST['sizes']); // Update stock_by_size $sizeArray = array_map('trim', explode(',', $product['sizes'])); if (!isset($product['stock_by_size']) || !is_array($product['stock_by_size'])) { $product['stock_by_size'] = []; } foreach ($sizeArray as $size) { $stockKey = 'stock_' . str_replace([' ', ','], '_', $size); $product['stock_by_size'][$size] = isset($_POST[$stockKey]) ? (int)$_POST[$stockKey] : (isset($product['stock_by_size'][$size]) ? $product['stock_by_size'][$size] : 0); } // Remove sizes that are no longer in the list $product['stock_by_size'] = array_intersect_key($product['stock_by_size'], array_flip($sizeArray)); unset($product['stock']); // Remove general stock for apparel } else { unset($product['sizes']); unset($product['stock_by_size']); } } else { $product['stock'] = (int)$_POST['stock']; unset($product['sizes']); unset($product['stock_by_size']); } break; } } saveProducts($products); $message = 'Produkt erfolgreich aktualisiert.'; $messageType = 'success'; } if (isset($_POST['delete_product'])) { $productId = (int)$_POST['product_id']; $products = array_filter($products, function($product) use ($productId) { return $product['id'] != $productId; }); $products = array_values($products); // Re-index saveProducts($products); $message = 'Produkt erfolgreich gelöscht.'; $messageType = 'success'; } } $products = getProducts(); $editingProduct = null; if (isset($_GET['edit'])) { $editingProduct = getProductById((int)$_GET['edit']); } include __DIR__ . '/../includes/header.php'; ?>

Produkte verwalten

Zurück zum Dashboard

Produkt bearbeiten

Abbrechen

Neues Produkt hinzufügen

Alle Produkte

Keine Produkte vorhanden.

ID Name Kategorie Preis Lagerbestand Aktionen
$stock) { $stockInfo[] = "$size: $stock"; } echo implode(', ', $stockInfo) ?: '0'; } else { echo isset($product['stock']) ? (int)$product['stock'] : 0; } ?> Bearbeiten