prepare("SELECT p.*, COALESCE(cp.price, p.price_gross) as final_price, p.price_net as final_price_net FROM products p LEFT JOIN users u ON u.id = :user_id LEFT JOIN client_prices cp ON cp.product_id = p.id AND cp.client_id = u.client_id WHERE p.id = :product_id"); $stmt->execute(['user_id' => $_SESSION['user_id'], 'product_id' => $product_id]); $product = $stmt->fetch(PDO::FETCH_ASSOC); if (!$product) { header('Location: index.php'); exit; } // If client-specific price is used, re-calculate net price from it if (!empty($product['final_price']) && empty($product['final_price_net'])) { $product['final_price_net'] = round($product['final_price'] / 1.23, 2); } // Fetch product images $img_stmt = $pdo->prepare("SELECT * FROM product_images WHERE product_id = ? ORDER BY is_primary DESC, id ASC"); $img_stmt->execute([$product_id]); $product_images = $img_stmt->fetchAll(PDO::FETCH_ASSOC); $primary_image = $product_images[0] ?? null; } catch (PDOException $e) { die('Błąd połączenia z bazą danych: ' . $e->getMessage()); } $page_title = htmlspecialchars($product['name']); ?> <?php echo $page_title; ?> - ExtraB2B
← Wróć do listy produktów
<?= htmlspecialchars($product['name']) ?>
1): ?>

PLN /

Cena brutto

PLN netto

prepare("SELECT ak.name, pa.value FROM product_attributes pa JOIN attribute_keys ak ON pa.attribute_key_id = ak.id WHERE pa.product_id = ? AND pa.value IS NOT NULL AND pa.value != '' ORDER BY ak.name"); $attrs_stmt->execute([$product_id]); $product_attributes = $attrs_stmt->fetchAll(PDO::FETCH_ASSOC); if ($product_attributes) { echo ''; echo ''; foreach ($product_attributes as $attr) { echo ''; echo ''; echo ''; echo ''; } echo ''; echo '
' . htmlspecialchars($attr['name']) . '' . htmlspecialchars($attr['value']) . '
'; } else { echo '

Brak dodatkowych danych technicznych.

'; } ?>
prepare("SELECT * FROM product_documents WHERE product_id = ?"); $docs_stmt->execute([$product_id]); $product_documents = $docs_stmt->fetchAll(PDO::FETCH_ASSOC); if ($product_documents) { echo ''; } else { echo '

Brak dokumentów do pobrania.

'; } ?>