/**
 * Получение из БД и подсчёт данных, необходимых для отображения страницы с информацией о товарах в корзине/
 */
function get_full_cart_data()
{
    $products = get_product_data_from_cart();
    // Общая стоимость товаров в корзине
    $total_cost = 0;
    // Общее количество товаров в корзине
    $total_quantity = 0;
    // В цикле обойдём массив с информацией о товарах
    foreach ($products as &$product) {
        // Количество данного товара, находящееся в корзине
        $product_quantity_at_cart = $_SESSION['cart'][$product['id']];
        // Суммарная стоимость за всё количество данного товара в корзине
        $product_price_at_cart = $product['price'] * $product_quantity_at_cart;
        // Добавим два значения в массив с информацией о конкретном товаре:
        // quantity_at_cart - общее количество единиц товара в корзине
        // total_price_at_cart - суммарная стоимость за всё количество данного товара в корзине
        $product['quantity_at_cart'] = $product_quantity_at_cart;
        $product['total_price_at_cart'] = $product_price_at_cart;
        // прибавим к суммарным переменным данные о каждом товаре
        $total_quantity += $product_quantity_at_cart;
        $total_cost += $product_price_at_cart;
    }
    // Вернём массив данных, которые могут быть переданы в шаблон
    return array('products' => $products, 'total_quantity' => $total_quantity, 'total_cost' => $total_cost);
}
<?php

if (strtolower($_SERVER['REQUEST_METHOD']) !== 'post') {
    exit;
}
if (!is_logged_in()) {
    add_notification('Оформление заказа доступно только авторизованным пользователям.');
    browser_redirect('signup');
    exit;
}
if (empty($_SESSION['cart'])) {
    add_notification('Ваша корзина пуста.');
    browser_redirect('homepage');
    exit;
}
$products = get_product_data_from_cart();
$overhead_quantity_products = array();
foreach ($products as &$product) {
    $product['quantity_at_cart'] = $_SESSION['cart'][$product['id']];
    if ($product['quantity_at_cart'] > $product['quantity']) {
        $overhead_quantity_products[] = $product['title'];
    }
}
unset($product);
if (!empty($overhead_quantity_products)) {
    $overhead_quantity_products = array_map(function ($product_title) {
        return '"' . $product_title . '"';
    }, $overhead_quantity_products);
    add_notification('Для товаров ' . implode(', ', $overhead_quantity_products) . ' недостаточен остаток.');
    browser_redirect('cart');
    exit;