}
    /*
     * Get the product specifications for the pack.
     */
    switch ($item['pack']) {
        case 'couple':
            $items[] = new Couple($item['qty'], "Boxer: {$item['size'][0]} / Tanktop: {$item['size'][1]}");
            break;
        case 'double':
            $items[] = new DoubleBoxer($item['qty'], "Sizes: " . implode(", ", $item['size']));
            break;
        case 'single':
            $items[] = new SingleBoxer($item['qty'], "Size: " . $item['size'][0]);
            break;
        case 'tank-top':
            $items[] = new TankTop($item['qty'], "Size: " . $item['size'][0]);
            break;
    }
}
/*
 * Do we have any items?
 */
if (count($items) < 1) {
    die(json_encode(array('error' => 'No products specified')));
}
try {
    $client = new Client('d73ee38be6aa9e7991ead5b00eb0d5fa');
    echo json_encode(array('redirectUrl' => $client->newOrder($items, $shippingOptions)));
} catch (ClientException $e) {
    die(json_encode(array('error' => $e->getMessage())));
}