Как скрыть msorder на странице msGetOrder?
Тоже столкнулся с данной проблемой и не нашел решение на просторах интернета.
Удалось решить проблему с помощью сниппета.
$mainPage = $modx->makeUrl(1);
$resource = $modx->resource;
$orderPage = $modx->makeUrl($resource->get('id')) . $get;
switch ($step) {
    case "clear":
        setcookie ("myOrder", "");
        break;
    case "check":
        if(!isset($_COOKIE["myOrder"])){
            setcookie ("myOrder", $value);
            $modx->sendRedirect($orderPage,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
        }
        if($_COOKIE["myOrder"] != $value){
            $modx->sendRedirect($mainPage,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
        }
        break;
}
Вставил в tpl msOrder (с режимом "clear") и в tpl msGetOrder (с режимом "check").
&step - режим работы
&value - что писать в cookie / с чем сравнивать (генерируем маску с использованием данных заказа, например, {$order.id}{$order.num}%{$order.cost})
&get - GET параметр заказа (?msorder={$order.id})

Логика работы:
1. На странице оформления заказа чистим печеньки myOrder.
2. На странице благодарности проверяем нет ли чего в печеньках. Если печеньки myOrder пусты, то записываем в них наше секретное значение. Если не пусты - сравниваем и либо оставляем пользователя на странице, либо перенаправляем на главную.

Может решение и костыльное, но самое главное, что работает. Другое в голову пока не пришло.
Посмотреть, что заказывали другие не получится. Попробуйте открыть в режиме инкогнито.