Kalkulator transportowy
Aplikacja PHP obliczająca koszty wysyłki paczki na podstawie wagi (kg), odległości (km) i wybranego kuriera. Stałe stawki kurierów w tablicy PHP, historia obliczeń w JSON.
Kalkulator transportowy
Aplikacja PHP obliczająca koszty wysyłki paczki na podstawie wagi (kg), odległości (km) i wybranego kuriera. Stałe stawki kurierów w tablicy PHP, historia obliczeń w JSON.
Kalkulatory wysyłki są w każdym sklepie internetowym. Integracja z API kurierów (InPost, DPD, DHL) to codzienność dla PHP developera e-commerce.
{ "couriers": { "InPost": {"base": 8.99, "per_kg": 1.50, "max_weight": 30}, "DPD": {"base": 12.50, "per_kg": 2.00, "max_weight": 31.5}, "DHL": {"base": 15.00, "per_kg": 1.80, "max_weight": 70} }, "history": [ { "id": 1, "weight": 5.5, "distance": 250, "cheapest": "InPost", "price": 17.24, "created_at": "2026-02-10" } ]}<?php$couriers = [ 'InPost' => ['base' => 8.99, 'per_kg' => 1.50, 'max_weight' => 30], 'DPD' => ['base' => 12.50, 'per_kg' => 2.00, 'max_weight' => 31.5], 'DHL' => ['base' => 15.00, 'per_kg' => 1.80, 'max_weight' => 70],];
function calculateShipping(float $weight, array $couriers): array { $results = []; foreach ($couriers as $name => $rates) { if ($weight > $rates['max_weight']) { $results[$name] = ['price' => null, 'error' => 'Zbyt ciężka paczka']; continue; } $price = round($rates['base'] + $weight * $rates['per_kg'], 2); $results[$name] = ['price' => $price, 'error' => null]; } return $results;}
// Walidacja wagi$weight = filter_var($_POST['weight'] ?? '', FILTER_VALIDATE_FLOAT, [ 'options' => ['min_range' => 0.1, 'max_range' => 70]]);if ($weight === false) { $errors[] = "Waga musi być liczbą w zakresie 0.1–70 kg";}
// Waga objętościowafunction volumetricWeight(float $l, float $w, float $h): float { return round(($l * $w * $h) / 5000, 2); // standardowy przelicznik}Kalkulator jak w sklepie!
Zacznij od obliczania ceny dla jednego kuriera. Potem rozszerz na wszystkich i dodaj wyróżnienie najtańszego.