Get the printable HTML of an order

GET /company/orders/@id/print

Returns HTML on success (JSON on failure or errors). You'll need a browser to convert the HTML to a PDF for printing. Please set the window size smaller than 300 pixels in the browser if you want to print on ticket printers.

Request

Authentication

This endpoint requires authentication.

Header Value
Authorization Set the value to Bearer + + access_token

URL parameters

Replace the @ keywords in the URL with their corresponding value.

A dictionary with fields

Field Type Description
id Int The ID of the order you want to get the printable HTML from

Example request 1 Simple order get HTML

GET /company/orders/86/print HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer cff3a0c9ded55e5ab16e00b0e7302957d7140d3aaf23108323eaec33b7cc09cf13264ec9b482c8c08ba46b0a4dc7a54f81a31139877d17c1a0c82a104623ff915020d4146a2a3792d1cea7bb56c7737b3f3f33b0f69e1e85be22a3b091bcc96cff1a82cc
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5

Example request 2 Simple order get HTML with permissions

GET /company/orders/87/print HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer cff3a0c9ded55e5ab16e00b0e7302957d7140d3aaf23108323eaec33b7cc09cf13264ec9b482c8c08ba46b0a4dc7a54f81a31139877d17c1a0c82a104623ff915020d4146a2a3792d1cea7bb56c7737b3f3f33b0f69e1e85be22a3b091bcc96cff1a82cc
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5

Example request 3 No permissions for order

GET /company/orders/88/print HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer cff3a0c9ded55e5ab16e00b0e7302957d7140d3aaf23108323eaec33b7cc09cf13264ec9b482c8c08ba46b0a4dc7a54f81a31139877d17c1a0c82a104623ff915020d4146a2a3792d1cea7bb56c7737b3f3f33b0f69e1e85be22a3b091bcc96cff1a82cc
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5

Response

Example response 1 Simple order get HTML

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 25864

<!DOCTYPE html>
<html>
<head>
    <title>3354 37 - Knead for Sweets</title>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <link rel="shortcut icon" href="https://bakeronline.be/assets/images">

    <!--Favicon information (use https://realfavicongenerator.net/) -->
        <link rel="apple-touch-icon" sizes="180x180" href="http://bakeronline.be/assets/images/bakeronline/favicon/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="http://bakeronline.be/assets/images/bakeronline/favicon/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="http://bakeronline.be/assets/images/bakeronline/favicon/favicon-16x16.png">
    <link rel="manifest" href="http://bakeronline.be/assets/images/bakeronline/favicon/site.webmanifest">
    <link rel="mask-icon" href="http://bakeronline.be/assets/images/bakeronline/favicon/safari-pinned-tab.svg" color="#FFB500">
    <link rel="shortcut icon" href="http://bakeronline.be/assets/images/bakeronline/favicon/favicon.ico">
    <meta name="msapplication-TileColor" content="#FFFFFF">
    <meta name="msapplication-config" content="http://bakeronline.be/assets/images/bakeronline/favicon/browserconfig.xml">
    <meta name="theme-color" content="#FFFFFF">
    <link rel="stylesheet" href="http://bakeronline.be/assets/themes/consumer-platform/bakeronline/style.css">

    <script type="text/javascript">
    var app = null;

    // Todo: rename to vueOnMounted
    var onMounted = [];
    var vueOnUpdate = [];

    var vueDataExtends = {};
    var vueDataExtend = function(object){
        Object.assign(vueDataExtends, object);
    };

    var vueMethodsExtends = {};
    var vueMethodsExtend = function(object) {
        Object.assign(vueMethodsExtends, object);
    };

    var vueComputedExtends = {};
    var vueComputedExtend = function(object) {
        Object.assign(vueComputedExtends, object);
    };

    function initReset() {
        onMounted = [];
        vueOnUpdate = [];
        vueDataExtends = {};
        vueMethodsExtends = {};
        vueComputedExtends = {};
    }

    function initData() {
        var userAgent = navigator.userAgent || navigator.vendor || window.opera;
        var android = /android/i.test(userAgent);
        var iOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;

        var data = {
            isiOS: iOS,
            isAndroid: android,
        };
        data = Object.assign(data, vueDataExtends);
        return data;
    };

        function initMethods() {
        var methods = {
            formatCurrency: function(price) {
                return formatCurrency(price);
            },
            preventBubbling: function(e) {
                if (e.stopPropagation) {
                    e.stopPropagation();
                }
            },
            log: console.log,
        };
        methods = Object.assign(methods, vueMethodsExtends);
        return methods;
    };

    function initComputed() {
        var computed = {
        };
        computed = Object.assign(computed, vueComputedExtends);
        return computed;
    };

    function initMounted() {
        for (var i = 0; i < onMounted.length; i++) {
            onMounted[i].bind(this)();
        }
        this.app = window.app;
    };

    function initUpdated() {
        for (var i = 0; i < vueOnUpdate.length; i++) {
            vueOnUpdate[i].bind(this)();
        }
    };

    function getCurrencyIso() {
        return 'EUR';
    }

    function getCurrencyInfo(iso) {
        var list = {"EUR":{"iso":"EUR","name":"Euro","symbol":"\u20ac"},"CRC":{"iso":"CRC","name":"Costa Rica Colon","symbol":"\u20a1"},"CLP":{"iso":"CLP","name":"Chilean Peso","symbol":"$"},"RON":{"iso":"RON","name":"Romanian leu","symbol":"RON"},"PLN":{"iso":"PLN","name":"Polish Zloty","symbol":"z\u0142"},"BRL":{"iso":"BRL","name":"Brazilian real","symbol":"R$"},"USD":{"iso":"USD","name":"US Dollar","symbol":"$"},"PHP":{"iso":"PHP","name":"Philippine peso","symbol":"\u20b1"},"MXN":{"iso":"MXN","name":"Mexican peso","symbol":"$"},"MYR":{"iso":"MYR","name":"Malaysian ringgit","symbol":"RM"},"CAD":{"iso":"CAD","name":"Canadian dollar","symbol":"$"},"ARS":{"iso":"ARS","name":"Argentine peso","symbol":"$"},"GBP":{"iso":"GBP","name":"Pound sterling","symbol":"\u00a3"},"SEK":{"iso":"SEK","name":"Swedish krona","symbol":"kr"},"MDL":{"iso":"MDL","name":"Moldovan leu","symbol":"L"},"HUF":{"iso":"HUF","name":"Hungarian forint","symbol":"Ft"}};
        return list[iso];
    }

    function formatCurrency(price) {
        var iso = getCurrencyIso();
        var formatted= new Intl.NumberFormat('en-BE', { style: 'currency', currency: iso }).format(price);
        // Force usage of currency symbol
        var currencyInfo = getCurrencyInfo(iso);
        return formatted.replace(new RegExp(iso, 'ig'), currencyInfo.symbol);
    };

    // Localtomorrow namespace
    var Localtomorrow = {};
    Localtomorrow.inWidget = false;
    Localtomorrow.sessionId = '';
    Localtomorrow.widgetLanguage = 'en';
    Localtomorrow.language = 'en';
    Localtomorrow.debug = true;
    Localtomorrow.urlPrefix  = '';
    Localtomorrow.authed = true;
    Localtomorrow.paths = {
        uploads: 'https://bakeronline.be/uploads',
    };

    Localtomorrow.allowCombinedCart = false;
            Localtomorrow.focusedShopUrl = 'knead-for-sweets-66010';

    Localtomorrow.WIDGET_VERSION = '1.0.11';

    Localtomorrow.product = {};
    Localtomorrow.product.PRICETYPES = {"UNIT":0,"PERSON":1,"KG":2,"CHOICES":3};

    Localtomorrow.months = {
         1: "2612",
         2: "2613",
         3: "2614",
         4: "2615",
         5: "2616",
         6: "2617",
         7: "2618",
         8: "2619",
         9: "2620",
         10: "2621",
         11: "2622",
         12: "2623",
    };

    Localtomorrow.translations = {
        2719: '2719',
        2274: '2274',
    };

    // Overwriteable by widget
    Localtomorrow.setLocation = function(location) {
        window.location = this.urlFormat(location);
    };

    // Overwriteable by widget
    Localtomorrow.pushState = function(state, title, url) {
        if(!history.pushState){
            this.setLocation(this.urlFormat(url));
            return false;
        }
        history.pushState(state, title, this.urlFormat(url));
        return true;
    };

    Localtomorrow.getScrollPosition = function() {
        return window.pageYOffset || document.documentElement.scrollTop
    };

    Localtomorrow.setScrollPosition = function(position, animated) {
        if (animated) {
            window.scrollTo( { 
                top: position,
                behavior: 'smooth' 
            });
            return;
        }
        return window.scrollTo(0, position);
    };

    Localtomorrow.urlFormat = function(url){
        if(Localtomorrow.urlPrefix && url[0] === '/' && !url.match(/^\/[a-z]{2}(-[a-z]{2})?\//)){
            url = Localtomorrow.urlPrefix + url;
        }
        return url;
    };

    // Define location attribute
    Object.defineProperty(Localtomorrow, 'location', {
      get: function() {
        return window.location;
      },
      set: function(location) {
        // Needs to be inside function because of dynamic overloading!
        Localtomorrow.setLocation(location);
      },
    });
    // use Localtomorrow.location = "url";

    // IE Object.assign polyfil
    if (typeof Object.assign != 'function') {
        // Must be writable: true, enumerable: false, configurable: true
        Object.defineProperty(Object, "assign", {
            value: function assign(target, varArgs) { // .length of function is 2
                'use strict';
                if (target == null) { // TypeError if undefined or null
                    throw new TypeError('Cannot convert undefined or null to object');
                }

                var to = Object(target);

                for (var index = 1; index < arguments.length; index++) {
                    var nextSource = arguments[index];

                    if (nextSource != null) { // Skip over if undefined or null
                        for (var nextKey in nextSource) {
                            // Avoid bugs when hasOwnProperty is shadowed
                            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
                                to[nextKey] = nextSource[nextKey];
                            }
                        }
                    }
                }
                return to;
            },
            writable: true,
            configurable: true
        });
    };

    // Cookie helpers
    Localtomorrow.setCookie = function(name,value,days) {
        var expires = "";
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days*24*60*60*1000));
            expires = "; expires=" + date.toUTCString();
        }
        document.cookie = name + "=" + (value || "")  + expires + "; path=/";
    };

    Localtomorrow.getCookie = function(name) {        
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    };

    Localtomorrow.eraseCookie = function(name) {   
        document.cookie = name+'=; Max-Age=-99999999; path=/';  
    };

    // Insert functions on the fly that should be reevaluated when the cookie policy is accepted
    Localtomorrow.waitingForCookieAccept = [];

    Localtomorrow.acceptCookiePolicy = function() {
        this.setCookie('cookie-policy-accepted', '1', 100); // 100 days

        for (var index = 0; index < Localtomorrow.waitingForCookieAccept.length; index++) {
            Localtomorrow.waitingForCookieAccept[index]();
        }
    };

    Localtomorrow.didAcceptCookiePolicy = function() {
                if(Localtomorrow.inWidget){
            return true;
        }
        var accepted = this.getCookie('cookie-policy-accepted');
        return accepted === '1';
    };

    Localtomorrow.trackCheckoutStep = function(number) {
        gtag('event', number == 1 ? 'begin_checkout' : 'checkout_progress', {
            "checkout_step": number,
        });
    };

    Localtomorrow.trackPurchase = function(id, store_name, price) {
        gtag('event', 'purchase', {
            "transaction_id": id,
            "affiliation": store_name,
            "value": price,
            "currency": "EUR",
        });
    };

    // Google Maps dynamic loading
    Localtomorrow.googleMapsLoaded = false;
    Localtomorrow.googleMapsLoadedComplete = false;
    Localtomorrow.googleMapsHandlers = [];
    Localtomorrow.googleMapsProcessedHandlers = [];

    Localtomorrow.loadGoogleMaps = function () {
        if (this.googleMapsLoaded) {
            return;
        }
        console.log('Loading google maps...');

        if (!this.didAcceptCookiePolicy()) {
            console.log('Delayed. Cookie policy not yet accepted.');
            Localtomorrow.waitingForCookieAccept.push(Localtomorrow.loadGoogleMaps.bind(this));
            return;
        }

        this.googleMapsLoaded = true;

        // Inject google maps
        var key = "AIzaSyDjP329a6xNqoL7IYxsXUMx7e-sLIQBTnk";
        var s = document.createElement('script');
                s.setAttribute('src', 'https://maps.googleapis.com/maps/api/js?key='+key+'&callback=initGoogleMaps');
                document.body.appendChild(s);
    };

    Localtomorrow.resetGoogleMaps = function (method) {
        // Enable loading again in the future
        for (var i = 0; i < this.googleMapsProcessedHandlers.length; i++) {
            if (this.googleMapsProcessedHandlers[i] === method) {
                this.googleMapsProcessedHandlers.splice(i, 1);
                break;
            }
        }

        // Stop handlers that will get called later
        for (var i = 0; i < this.googleMapsHandlers.length; i++) {
            if (this.googleMapsHandlers[i] === method) {
                this.googleMapsHandlers.splice(i, 1);
                break;
            }
        }
    }

    Localtomorrow.requestGoogleMaps = function (method) {
        for (var i = 0; i < this.googleMapsProcessedHandlers.length; i++) {
            if (this.googleMapsProcessedHandlers[i] === method) {
                console.log("Google maps method already executed");
                return;
            }
        }
        this.googleMapsProcessedHandlers.push(method);

        // Todo: check if method is already executed
        if (this.googleMapsLoadedComplete) {
            method();
            return;
        }

        this.googleMapsHandlers.push(method);

        if (!this.googleMapsLoaded) {
            this.loadGoogleMaps();
        }
    };

    // Method called by Google if loading succeeded
    var initGoogleMaps = function() {
        console.log('Google maps loaded');
        Localtomorrow.googleMapsLoadedComplete = true;
        for (var i = 0; i < Localtomorrow.googleMapsHandlers.length; i++) {
            Localtomorrow.googleMapsHandlers[i]();
        }
        Localtomorrow.googleMapsHandlers = [];
    };

    // Detect IE9
    var ie = (function(){

        var undef,
            v = 3,
            div = document.createElement('div'),
            all = div.getElementsByTagName('i');

        while (
            div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
            all[0]
        );

        return v > 4 ? v : undef;

    }());

    // Detect IE10
    var ie10 = false;
    /*@cc_on
        if (/^10/.test(@_jscript_version)) {
            ie10 = true;
        }
    @*/

    Localtomorrow.isIE9 = (ie <= 9);
    Localtomorrow.isIE10 = ie10;

    if (Localtomorrow.isIE9 || Localtomorrow.isIE10) {
        // Pagina wordt niet ondersteund
        Localtomorrow.setLocation("/old-browser");
    }

    Localtomorrow.postMessage = function(frame, obj) {
        frame.postMessage(obj, "*");
    };

    Localtomorrow.onReady = function(callback) {
        if (
            document.readyState === "complete" ||
            (document.readyState !== "loading" && !document.documentElement.doScroll)
        ) {
            callback();
        } else {
            document.addEventListener("DOMContentLoaded", callback);
        }
    }

    // Detect windows
    Localtomorrow.isDesktopWindows = false;
    if (window.navigator.userAgent.toLowerCase().indexOf('windows nt')!= -1) {
        Localtomorrow.isDesktopWindows = true;

        Localtomorrow.onReady(function(){
            Classlist.addClass(document.body, 'windows-desktop');
        });
    }

    Localtomorrow.isMobile = function(){
        var check = false;
        (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
        return check;
    };

    // iOS Safari fix
    document.addEventListener("touchstart", function() {}, false);

</script>    <script>
    Localtomorrow.googleAnalyticsLoaded = false;
    Localtomorrow.facebookPixelLoaded = false;

    // Global google analtyics code:
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());

    Localtomorrow.loadGoogleAnalytics = function () {
        if (this.googleAnalyticsLoaded) {
            return;
        }
        console.log('Loading google analytics...');

        if (!this.didAcceptCookiePolicy()) {
            console.log('Delayed. Cookie policy not yet accepted.');
            Localtomorrow.waitingForCookieAccept.push(Localtomorrow.loadGoogleAnalytics.bind(this));
            return;
        }

        this.googleAnalyticsLoaded = true;

                                    console.log('Google Analytics is not supported on this platform.');

    };

    Localtomorrow.loadFacebookPixel = function () {
        if (this.facebookPixelLoaded) {
            return;
        }

        console.log('Loading facebook analytics...');

        if (!this.didAcceptCookiePolicy()) {
            console.log('FB Pixel Delayed. Cookie policy not yet accepted.');
            Localtomorrow.waitingForCookieAccept.push(Localtomorrow.loadFacebookPixel.bind(this));
            return;
        }

        this.facebookPixelLoaded = true;

                    console.log('FB Pixel is not supported on this platform.');

    };
</script>    <script src="https://bakeronline.be/assets_new/js/consumer-platform.js"></script>

    <style type="text/css" media="print">

        html{
            background-color: #FFFFFF; 
            margin: 0px;  /* this affects the margin on the html before sending to printer */
        }

        body{
            margin: 0; /* margin you want for the content */
        }
    </style>
</head>
<body>

    <div id="app">
        <main style="background:white;">
            <div class="container">

    <div class="text">
        <header>
            <h1
                            class="with-icon shop"
                        >
                Knead for Sweets
            </h1>
        </header>

        <table class="product">
    <colgroup>
        <col></col>
        <col></col>
        <col></col>
    </colgroup>

    <thead>
        <tr></tr>
        <tr>
            <td>2657</td>
            <td>2658</td>
            <td>2659</td>
        </tr>
    </thead>

    <tbody>
                    <tr>
                <td class="product-text">

                    <p>
                        <span class="small-display">
                            1

                            x
                        </span>
                        <a href="/docs/v1.5.0/knead-for-sweets-66010/product/556">Croûte Aardbei</a>

                            <span class="label">
                                6 persons
                            </span>

                                            </p>

                    <!-- Product opties + prijsopties -->
                                            <p class="option">
                            <span class="optionset">Extra baked?</span>
                            <span class="value">Yes please</span>
                                                    </p>

                </td>
                <td>
                    1

                                    </td>
                <td>€ 1!13</td>
            </tr>    
                    <tr>
                <td class="product-text">

                    <p>
                        <span class="small-display">
                            1
                                                                                        x 100 g

                            x
                        </span>
                        <a href="/docs/v1.5.0/knead-for-sweets-66010/product/557">Lang grof</a>

                                            </p>

                    <!-- Product opties + prijsopties -->
                                            <p class="option">
                            <span class="optionset">Do you want a bag?</span>
                            <span class="value">Yes</span>
                                                    </p>

                </td>
                <td>
                    1
                                                                x 100 g

                                    </td>
                <td>€ 15!58</td>
            </tr>    
                    <tr>
                <td class="product-text">

                    <p>
                        <span class="small-display">
                            1
                                                                                        x 100 g

                            x
                        </span>
                        <a href="/docs/v1.5.0/knead-for-sweets-66010/product/558">Wit carre brood groot</a>

                                            </p>

                    <!-- Product opties + prijsopties -->
                                            <p class="option">
                            <span class="optionset">Extra baked?</span>
                            <span class="value">No</span>
                                                    </p>
                                            <p class="option">
                            <span class="optionset">Do you want your bread sliced?</span>
                            <span class="value">Yes please</span>
                                                    </p>
                                            <p class="option">
                            <span class="optionset">Do you want a bag?</span>
                            <span class="value">Yes</span>
                                                    </p>

                </td>
                <td>
                    1
                                                                x 100 g

                                    </td>
                <td>€ 23!12</td>
            </tr>    
            </tbody>
</table>
<table class="product">
    <colgroup class="foot">
        <col></col>
        <col></col>
    </colgroup>

    <tfoot>

                    <tr>
                <td colspan="2">4115</td>
                <td>3</td>
            </tr>

        <tr>
            <td colspan="2">2659</td>
            <td>€ 39!83</td>
        </tr>
    </tfoot>

</table>
                    <h2>4112</h2>

        <table class="list">
            <tbody>
                                    <tr>
                        <td>2631</td>
                        <td>Sunday 17 March 2024 2139 11:12</td>
                    </tr>

                <tr>
                    <td>2624</td>
                    <td>37</td>
                </tr>

                <tr>
                    <td>2643</td>
                    <td>1955: 7215</td>
                </tr>   
            </tbody>
        </table>      

                    <h2>1433</h2>

            <table class="list">
                <tbody>
                    <tr>
                        <td>3621</td>
                        <td>Hamza Hubert</td>
                    </tr>

                    <tr>
                        <td>1435</td>
                        <td>alexis.geerts3731021@example.org</td>
                    </tr>

                    <tr>
                        <td>1436</td>
                        <td>+32479567345</td>
                    </tr>
                </tbody>
            </table>

            </div>
</div>
        </main>
    </div>

    </body>
</html>

Example response 2 Simple order get HTML with permissions

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 26641

<!DOCTYPE html>
<html>
<head>
    <title>3354 38 - Slow Dough</title>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <link rel="shortcut icon" href="https://bakeronline.be/assets/images">

    <!--Favicon information (use https://realfavicongenerator.net/) -->
        <link rel="apple-touch-icon" sizes="180x180" href="http://bakeronline.be/assets/images/bakeronline/favicon/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="http://bakeronline.be/assets/images/bakeronline/favicon/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="http://bakeronline.be/assets/images/bakeronline/favicon/favicon-16x16.png">
    <link rel="manifest" href="http://bakeronline.be/assets/images/bakeronline/favicon/site.webmanifest">
    <link rel="mask-icon" href="http://bakeronline.be/assets/images/bakeronline/favicon/safari-pinned-tab.svg" color="#FFB500">
    <link rel="shortcut icon" href="http://bakeronline.be/assets/images/bakeronline/favicon/favicon.ico">
    <meta name="msapplication-TileColor" content="#FFFFFF">
    <meta name="msapplication-config" content="http://bakeronline.be/assets/images/bakeronline/favicon/browserconfig.xml">
    <meta name="theme-color" content="#FFFFFF">
    <link rel="stylesheet" href="http://bakeronline.be/assets/themes/consumer-platform/bakeronline/style.css">

    <script type="text/javascript">
    var app = null;

    // Todo: rename to vueOnMounted
    var onMounted = [];
    var vueOnUpdate = [];

    var vueDataExtends = {};
    var vueDataExtend = function(object){
        Object.assign(vueDataExtends, object);
    };

    var vueMethodsExtends = {};
    var vueMethodsExtend = function(object) {
        Object.assign(vueMethodsExtends, object);
    };

    var vueComputedExtends = {};
    var vueComputedExtend = function(object) {
        Object.assign(vueComputedExtends, object);
    };

    function initReset() {
        onMounted = [];
        vueOnUpdate = [];
        vueDataExtends = {};
        vueMethodsExtends = {};
        vueComputedExtends = {};
    }

    function initData() {
        var userAgent = navigator.userAgent || navigator.vendor || window.opera;
        var android = /android/i.test(userAgent);
        var iOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;

        var data = {
            isiOS: iOS,
            isAndroid: android,
        };
        data = Object.assign(data, vueDataExtends);
        return data;
    };

        function initMethods() {
        var methods = {
            formatCurrency: function(price) {
                return formatCurrency(price);
            },
            preventBubbling: function(e) {
                if (e.stopPropagation) {
                    e.stopPropagation();
                }
            },
            log: console.log,
        };
        methods = Object.assign(methods, vueMethodsExtends);
        return methods;
    };

    function initComputed() {
        var computed = {
        };
        computed = Object.assign(computed, vueComputedExtends);
        return computed;
    };

    function initMounted() {
        for (var i = 0; i < onMounted.length; i++) {
            onMounted[i].bind(this)();
        }
        this.app = window.app;
    };

    function initUpdated() {
        for (var i = 0; i < vueOnUpdate.length; i++) {
            vueOnUpdate[i].bind(this)();
        }
    };

    function getCurrencyIso() {
        return 'EUR';
    }

    function getCurrencyInfo(iso) {
        var list = {"EUR":{"iso":"EUR","name":"Euro","symbol":"\u20ac"},"CRC":{"iso":"CRC","name":"Costa Rica Colon","symbol":"\u20a1"},"CLP":{"iso":"CLP","name":"Chilean Peso","symbol":"$"},"RON":{"iso":"RON","name":"Romanian leu","symbol":"RON"},"PLN":{"iso":"PLN","name":"Polish Zloty","symbol":"z\u0142"},"BRL":{"iso":"BRL","name":"Brazilian real","symbol":"R$"},"USD":{"iso":"USD","name":"US Dollar","symbol":"$"},"PHP":{"iso":"PHP","name":"Philippine peso","symbol":"\u20b1"},"MXN":{"iso":"MXN","name":"Mexican peso","symbol":"$"},"MYR":{"iso":"MYR","name":"Malaysian ringgit","symbol":"RM"},"CAD":{"iso":"CAD","name":"Canadian dollar","symbol":"$"},"ARS":{"iso":"ARS","name":"Argentine peso","symbol":"$"},"GBP":{"iso":"GBP","name":"Pound sterling","symbol":"\u00a3"},"SEK":{"iso":"SEK","name":"Swedish krona","symbol":"kr"},"MDL":{"iso":"MDL","name":"Moldovan leu","symbol":"L"},"HUF":{"iso":"HUF","name":"Hungarian forint","symbol":"Ft"}};
        return list[iso];
    }

    function formatCurrency(price) {
        var iso = getCurrencyIso();
        var formatted= new Intl.NumberFormat('en-BE', { style: 'currency', currency: iso }).format(price);
        // Force usage of currency symbol
        var currencyInfo = getCurrencyInfo(iso);
        return formatted.replace(new RegExp(iso, 'ig'), currencyInfo.symbol);
    };

    // Localtomorrow namespace
    var Localtomorrow = {};
    Localtomorrow.inWidget = false;
    Localtomorrow.sessionId = '';
    Localtomorrow.widgetLanguage = 'en';
    Localtomorrow.language = 'en';
    Localtomorrow.debug = true;
    Localtomorrow.urlPrefix  = '';
    Localtomorrow.authed = true;
    Localtomorrow.paths = {
        uploads: 'https://bakeronline.be/uploads',
    };

    Localtomorrow.allowCombinedCart = false;
            Localtomorrow.focusedShopUrl = 'slow-dough-54099';

    Localtomorrow.WIDGET_VERSION = '1.0.11';

    Localtomorrow.product = {};
    Localtomorrow.product.PRICETYPES = {"UNIT":0,"PERSON":1,"KG":2,"CHOICES":3};

    Localtomorrow.months = {
         1: "2612",
         2: "2613",
         3: "2614",
         4: "2615",
         5: "2616",
         6: "2617",
         7: "2618",
         8: "2619",
         9: "2620",
         10: "2621",
         11: "2622",
         12: "2623",
    };

    Localtomorrow.translations = {
        2719: '2719',
        2274: '2274',
    };

    // Overwriteable by widget
    Localtomorrow.setLocation = function(location) {
        window.location = this.urlFormat(location);
    };

    // Overwriteable by widget
    Localtomorrow.pushState = function(state, title, url) {
        if(!history.pushState){
            this.setLocation(this.urlFormat(url));
            return false;
        }
        history.pushState(state, title, this.urlFormat(url));
        return true;
    };

    Localtomorrow.getScrollPosition = function() {
        return window.pageYOffset || document.documentElement.scrollTop
    };

    Localtomorrow.setScrollPosition = function(position, animated) {
        if (animated) {
            window.scrollTo( { 
                top: position,
                behavior: 'smooth' 
            });
            return;
        }
        return window.scrollTo(0, position);
    };

    Localtomorrow.urlFormat = function(url){
        if(Localtomorrow.urlPrefix && url[0] === '/' && !url.match(/^\/[a-z]{2}(-[a-z]{2})?\//)){
            url = Localtomorrow.urlPrefix + url;
        }
        return url;
    };

    // Define location attribute
    Object.defineProperty(Localtomorrow, 'location', {
      get: function() {
        return window.location;
      },
      set: function(location) {
        // Needs to be inside function because of dynamic overloading!
        Localtomorrow.setLocation(location);
      },
    });
    // use Localtomorrow.location = "url";

    // IE Object.assign polyfil
    if (typeof Object.assign != 'function') {
        // Must be writable: true, enumerable: false, configurable: true
        Object.defineProperty(Object, "assign", {
            value: function assign(target, varArgs) { // .length of function is 2
                'use strict';
                if (target == null) { // TypeError if undefined or null
                    throw new TypeError('Cannot convert undefined or null to object');
                }

                var to = Object(target);

                for (var index = 1; index < arguments.length; index++) {
                    var nextSource = arguments[index];

                    if (nextSource != null) { // Skip over if undefined or null
                        for (var nextKey in nextSource) {
                            // Avoid bugs when hasOwnProperty is shadowed
                            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
                                to[nextKey] = nextSource[nextKey];
                            }
                        }
                    }
                }
                return to;
            },
            writable: true,
            configurable: true
        });
    };

    // Cookie helpers
    Localtomorrow.setCookie = function(name,value,days) {
        var expires = "";
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days*24*60*60*1000));
            expires = "; expires=" + date.toUTCString();
        }
        document.cookie = name + "=" + (value || "")  + expires + "; path=/";
    };

    Localtomorrow.getCookie = function(name) {        
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    };

    Localtomorrow.eraseCookie = function(name) {   
        document.cookie = name+'=; Max-Age=-99999999; path=/';  
    };

    // Insert functions on the fly that should be reevaluated when the cookie policy is accepted
    Localtomorrow.waitingForCookieAccept = [];

    Localtomorrow.acceptCookiePolicy = function() {
        this.setCookie('cookie-policy-accepted', '1', 100); // 100 days

        for (var index = 0; index < Localtomorrow.waitingForCookieAccept.length; index++) {
            Localtomorrow.waitingForCookieAccept[index]();
        }
    };

    Localtomorrow.didAcceptCookiePolicy = function() {
                if(Localtomorrow.inWidget){
            return true;
        }
        var accepted = this.getCookie('cookie-policy-accepted');
        return accepted === '1';
    };

    Localtomorrow.trackCheckoutStep = function(number) {
        gtag('event', number == 1 ? 'begin_checkout' : 'checkout_progress', {
            "checkout_step": number,
        });
    };

    Localtomorrow.trackPurchase = function(id, store_name, price) {
        gtag('event', 'purchase', {
            "transaction_id": id,
            "affiliation": store_name,
            "value": price,
            "currency": "EUR",
        });
    };

    // Google Maps dynamic loading
    Localtomorrow.googleMapsLoaded = false;
    Localtomorrow.googleMapsLoadedComplete = false;
    Localtomorrow.googleMapsHandlers = [];
    Localtomorrow.googleMapsProcessedHandlers = [];

    Localtomorrow.loadGoogleMaps = function () {
        if (this.googleMapsLoaded) {
            return;
        }
        console.log('Loading google maps...');

        if (!this.didAcceptCookiePolicy()) {
            console.log('Delayed. Cookie policy not yet accepted.');
            Localtomorrow.waitingForCookieAccept.push(Localtomorrow.loadGoogleMaps.bind(this));
            return;
        }

        this.googleMapsLoaded = true;

        // Inject google maps
        var key = "AIzaSyDjP329a6xNqoL7IYxsXUMx7e-sLIQBTnk";
        var s = document.createElement('script');
                s.setAttribute('src', 'https://maps.googleapis.com/maps/api/js?key='+key+'&callback=initGoogleMaps');
                document.body.appendChild(s);
    };

    Localtomorrow.resetGoogleMaps = function (method) {
        // Enable loading again in the future
        for (var i = 0; i < this.googleMapsProcessedHandlers.length; i++) {
            if (this.googleMapsProcessedHandlers[i] === method) {
                this.googleMapsProcessedHandlers.splice(i, 1);
                break;
            }
        }

        // Stop handlers that will get called later
        for (var i = 0; i < this.googleMapsHandlers.length; i++) {
            if (this.googleMapsHandlers[i] === method) {
                this.googleMapsHandlers.splice(i, 1);
                break;
            }
        }
    }

    Localtomorrow.requestGoogleMaps = function (method) {
        for (var i = 0; i < this.googleMapsProcessedHandlers.length; i++) {
            if (this.googleMapsProcessedHandlers[i] === method) {
                console.log("Google maps method already executed");
                return;
            }
        }
        this.googleMapsProcessedHandlers.push(method);

        // Todo: check if method is already executed
        if (this.googleMapsLoadedComplete) {
            method();
            return;
        }

        this.googleMapsHandlers.push(method);

        if (!this.googleMapsLoaded) {
            this.loadGoogleMaps();
        }
    };

    // Method called by Google if loading succeeded
    var initGoogleMaps = function() {
        console.log('Google maps loaded');
        Localtomorrow.googleMapsLoadedComplete = true;
        for (var i = 0; i < Localtomorrow.googleMapsHandlers.length; i++) {
            Localtomorrow.googleMapsHandlers[i]();
        }
        Localtomorrow.googleMapsHandlers = [];
    };

    // Detect IE9
    var ie = (function(){

        var undef,
            v = 3,
            div = document.createElement('div'),
            all = div.getElementsByTagName('i');

        while (
            div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
            all[0]
        );

        return v > 4 ? v : undef;

    }());

    // Detect IE10
    var ie10 = false;
    /*@cc_on
        if (/^10/.test(@_jscript_version)) {
            ie10 = true;
        }
    @*/

    Localtomorrow.isIE9 = (ie <= 9);
    Localtomorrow.isIE10 = ie10;

    if (Localtomorrow.isIE9 || Localtomorrow.isIE10) {
        // Pagina wordt niet ondersteund
        Localtomorrow.setLocation("/old-browser");
    }

    Localtomorrow.postMessage = function(frame, obj) {
        frame.postMessage(obj, "*");
    };

    Localtomorrow.onReady = function(callback) {
        if (
            document.readyState === "complete" ||
            (document.readyState !== "loading" && !document.documentElement.doScroll)
        ) {
            callback();
        } else {
            document.addEventListener("DOMContentLoaded", callback);
        }
    }

    // Detect windows
    Localtomorrow.isDesktopWindows = false;
    if (window.navigator.userAgent.toLowerCase().indexOf('windows nt')!= -1) {
        Localtomorrow.isDesktopWindows = true;

        Localtomorrow.onReady(function(){
            Classlist.addClass(document.body, 'windows-desktop');
        });
    }

    Localtomorrow.isMobile = function(){
        var check = false;
        (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
        return check;
    };

    // iOS Safari fix
    document.addEventListener("touchstart", function() {}, false);

</script>    <script>
    Localtomorrow.googleAnalyticsLoaded = false;
    Localtomorrow.facebookPixelLoaded = false;

    // Global google analtyics code:
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());

    Localtomorrow.loadGoogleAnalytics = function () {
        if (this.googleAnalyticsLoaded) {
            return;
        }
        console.log('Loading google analytics...');

        if (!this.didAcceptCookiePolicy()) {
            console.log('Delayed. Cookie policy not yet accepted.');
            Localtomorrow.waitingForCookieAccept.push(Localtomorrow.loadGoogleAnalytics.bind(this));
            return;
        }

        this.googleAnalyticsLoaded = true;

                                    console.log('Google Analytics is not supported on this platform.');

    };

    Localtomorrow.loadFacebookPixel = function () {
        if (this.facebookPixelLoaded) {
            return;
        }

        console.log('Loading facebook analytics...');

        if (!this.didAcceptCookiePolicy()) {
            console.log('FB Pixel Delayed. Cookie policy not yet accepted.');
            Localtomorrow.waitingForCookieAccept.push(Localtomorrow.loadFacebookPixel.bind(this));
            return;
        }

        this.facebookPixelLoaded = true;

                    console.log('FB Pixel is not supported on this platform.');

    };
</script>    <script src="https://bakeronline.be/assets_new/js/consumer-platform.js"></script>

    <style type="text/css" media="print">

        html{
            background-color: #FFFFFF; 
            margin: 0px;  /* this affects the margin on the html before sending to printer */
        }

        body{
            margin: 0; /* margin you want for the content */
        }
    </style>
</head>
<body>

    <div id="app">
        <main style="background:white;">
            <div class="container">

    <div class="text">
        <header>
            <h1
                            class="with-icon delivery"
                        >
                Slow Dough
            </h1>
        </header>

        <table class="product">
    <colgroup>
        <col></col>
        <col></col>
        <col></col>
    </colgroup>

    <thead>
        <tr></tr>
        <tr>
            <td>2657</td>
            <td>2658</td>
            <td>2659</td>
        </tr>
    </thead>

    <tbody>
                    <tr>
                <td class="product-text">

                    <p>
                        <span class="small-display">
                            1
                                                                                        x 100 g

                            x
                        </span>
                        <a href="/docs/v1.5.0/slow-dough-54099/product/559">Ambachtelijk wit</a>

                                            </p>

                    <!-- Product opties + prijsopties -->
                                            <p class="option">
                            <span class="optionset">Please select an option</span>
                            <span class="value">Yes please</span>
                                                    </p>
                                            <p class="option">
                            <span class="optionset">Do you want your bread sliced?</span>
                            <span class="value">Yes please</span>
                                                    </p>
                                            <p class="option">
                            <span class="optionset">Extra baked?</span>
                            <span class="value">Yes</span>
                                                    </p>
                                            <p class="option">
                            <span class="optionset">Do you want your bread sliced?</span>
                            <span class="value">No thank you</span>
                                                    </p>

                </td>
                <td>
                    1
                                                                x 100 g

                                    </td>
                <td>€ 19!92</td>
            </tr>    
                    <tr>
                <td class="product-text">

                    <p>
                        <span class="small-display">
                            1
                                                                                        x 100 g

                            x
                        </span>
                        <a href="/docs/v1.5.0/slow-dough-54099/product/560">Vloer</a>

                                            </p>

                    <!-- Product opties + prijsopties -->
                                            <p class="option">
                            <span class="optionset">Please select an option</span>
                            <span class="value">Yes please</span>
                                                    </p>
                                            <p class="option">
                            <span class="optionset">Please select an option</span>
                            <span class="value">No thank you</span>
                                                    </p>

                </td>
                <td>
                    1
                                                                x 100 g

                                    </td>
                <td>€ 22!05</td>
            </tr>    
                    <tr>
                <td class="product-text">

                    <p>
                        <span class="small-display">
                            1

                            x
                        </span>
                        <a href="/docs/v1.5.0/slow-dough-54099/product/561">Hoeve pistolet</a>

                                            </p>

                    <!-- Product opties + prijsopties -->
                                            <p class="option">
                            <span class="optionset">Extra baked?</span>
                            <span class="value">No</span>
                                                    </p>

                </td>
                <td>
                    1

                                    </td>
                <td>€ 86!93</td>
            </tr>    
            </tbody>
</table>
<table class="product">
    <colgroup class="foot">
        <col></col>
        <col></col>
    </colgroup>

    <tfoot>

                    <tr>
                <td colspan="2">4115</td>
                <td>3</td>
            </tr>

        <tr>
            <td colspan="2">2659</td>
            <td>€ 128!90</td>
        </tr>
    </tfoot>

</table>
                    <h2>4111</h2>

        <table class="list">
            <tbody>
                                    <tr>
                        <td>2628</td>
                        <td>Friday 23 November 2018, 13:49 - 14:04</td>
                    </tr>
                    <tr>
                        <td>2629</td>

                                                    <td>Sint-Denijslaan 96, 9000 Ghent (1903)</td>
                                            </tr>
                    <tr>
                        <td>3613 - 3614</td>
                        <td class="raw-text description"></td>
                    </tr>

                <tr>
                    <td>2624</td>
                    <td>38</td>
                </tr>

                <tr>
                    <td>2643</td>
                    <td>1955: 7211</td>
                </tr>   
            </tbody>
        </table>      

                    <h2>1433</h2>

            <table class="list">
                <tbody>
                    <tr>
                        <td>3621</td>
                        <td>Arthur Stevens</td>
                    </tr>

                    <tr>
                        <td>1435</td>
                        <td>roland.robbe1426133@example.com</td>
                    </tr>

                    <tr>
                        <td>1436</td>
                        <td>+32479567345</td>
                    </tr>
                </tbody>
            </table>

            </div>
</div>
        </main>
    </div>

    </body>
</html>

Example response 3 No permissions for order

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
Content-Length: 96

{
    "code": "access_denied",
    "message": "You don't have permission to access this order"
}
1.5.0 stable