Przejdź do głównej zawartości

63. Kalkulator marży i zysku

Kalkulator marży i zysku

Aplikacja webowa obliczająca marżę procentową, zysk w złotych, narzut i cenę sprzedaży na podstawie ceny zakupu. Historia obliczeń zapisywana do JSON.

  • Wzorów finansowych: marża = zysk/cena_sprzedaży, narzut = zysk/cena_zakupu
  • Walidacji liczb zmiennoprzecinkowych i zakresów
  • Obliczania ceny sprzedaży przy zadanej marży
  • Pracy z zaokrągleniami finansowymi

Obliczenia marży są w każdym sklepie, hurtowni i systemie ERP. Pomyłka w marży bezpośrednio przekłada się na stratę finansową. To podstawowe kompetencje dla programistów aplikacji e-commerce.

  1. Formularz: cena zakupu + cena sprzedaży (tryb A)
  2. Formularz: cena zakupu + docelowa marża % (tryb B — oblicza cenę sprzedaży)
  3. Wyświetlenie: zysk, marża%, narzut%
  4. Historia obliczeń (ostatnie 10) w JSON
  5. Interpretacja: „dobra” / „niska” / „ujemna” marża
{
"history": [
{
"id": 1,
"cost": 50.00,
"price": 80.00,
"profit": 30.00,
"margin_pct": 37.5,
"markup_pct": 60.0,
"created_at": "2026-02-10"
}
]
}
  • Formularz: cena zakupu i sprzedaży
  • Obliczenie zysku i marży %
  • Walidacja: cena > 0, sprzedaży >= zakupu
  • Wyświetlenie wyniku
Ocena: 3.0
<?php
function calculateMargin(float $cost, float $price): array {
if ($price <= 0) throw new InvalidArgumentException("Cena sprzedaży musi być > 0");
$profit = round($price - $cost, 2);
$margin = round($profit / $price * 100, 2); // marża: zysk/cena_sprzedaży
$markup = $cost > 0 ? round($profit / $cost * 100, 2) : 0; // narzut: zysk/cena_zakupu
return [
'cost' => $cost,
'price' => $price,
'profit' => $profit,
'margin_pct' => $margin,
'markup_pct' => $markup,
];
}
// Tryb odwrotny: oblicz cenę sprzedaży z marży
function priceFromMargin(float $cost, float $marginPct): float {
if ($marginPct >= 100) throw new InvalidArgumentException("Marża musi być < 100%");
return round($cost / (1 - $marginPct / 100), 2);
}
// Walidacja
$cost = filter_var($_POST['cost'] ?? '', FILTER_VALIDATE_FLOAT);
$price = filter_var($_POST['price'] ?? '', FILTER_VALIDATE_FLOAT);
if ($cost === false || $cost <= 0) $errors[] = "Cena zakupu musi być > 0";
if ($price === false || $price <= 0) $errors[] = "Cena sprzedaży musi być > 0";

Matematyka dla handlowców w PHP!

Zacznij od podstawowego obliczenia marży. Wzór jest prosty: (cena - koszt) / cena * 100. Reszta to UI.