ver. 0.323: fix import zdjęć, trwałe usuwanie produktów, fix API upload path

- IntegrationsRepository: refactor importu zdjęć — walidacja HTTP, curl timeouty, logi, czytelny komunikat
- ProductRepository: saveCustomFields tylko gdy klucz istnieje (partial API update), delete() czyści custom_fields
- ProductArchiveController: przycisk i metoda delete_permanent() do trwałego usunięcia z archiwum
- ProductsApiController: fix ścieżki upload (api.php działa z rootu projektu)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 21:05:23 +01:00
parent c44f59894e
commit 3b2d156e84
7 changed files with 135 additions and 11 deletions

View File

@@ -338,7 +338,8 @@ class ProductsApiController
$safeName = 'image_' . md5((string)microtime(true)) . '.jpg';
}
$baseDir = '../upload/product_images/product_' . $productId;
// api.php działa z rootu projektu (nie z admin/), więc ścieżka bez ../
$baseDir = 'upload/product_images/product_' . $productId;
if (!is_dir($baseDir) && !mkdir($baseDir, 0775, true) && !is_dir($baseDir)) {
ApiRouter::sendError('INTERNAL_ERROR', 'Failed to create target directory', 500);
return;