{"id":1593,"date":"2025-04-03T11:29:10","date_gmt":"2025-04-03T10:29:10","guid":{"rendered":"https:\/\/www.steamship.pt\/?page_id=1593"},"modified":"2025-06-03T17:40:16","modified_gmt":"2025-06-03T16:40:16","slug":"track-trace-2","status":"publish","type":"page","link":"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/","title":{"rendered":"Track &amp; Trace"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"pt\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Track &#038; Trace<\/title>\n<\/head>\n<style>\n    body {\n        font-family: Arial, sans-serif;\n        background-color: #f4f4f4;\n        margin: 0;\n        padding: 0;\n    }\n\n    h1 {\n        text-align: center;\n        color: #333;\n        margin-top: 20px;\n    }\n\n    .container {\n        width: 90%; \/* Reduzida para se ajustar melhor a ecr\u00e3s pequenos *\/\n        max-width: 800px;\n        margin: 0 auto;\n        background-color: #fff;\n        padding: 20px;\n        border-radius: 12px;\n        border-left: 5px solid #468fc1;\n        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n    }\n\n    .intro-text {\n        text-align: center;\n        font-size: 18px;\n        color: #468fc1;\n        margin-bottom: 20px;\n    }\n\n    .search-box {\n        display: flex;\n        align-items: center;\n    }\n\n    input {\n        width: 80%;\n        padding: 10px;\n        margin: 10px 0;\n        border: 2px solid #ccc;\n        border-radius: 4px;\n        font-size: 16px;\n    }\n\n    button {\n        padding: 10px 20px;\n        margin-left: 10px;\n        border: 2px solid #468fc1;\n        background-color: #468fc1;\n        color: white;\n        cursor: pointer;\n        font-size: 16px;\n        border-radius: 8px;\n        transition: background-color 0.3s ease, transform 0.2s ease;\n    }\n\n    button:hover {\n        background-color: #3578b5;\n        transform: scale(1.05);\n    }\n\n    .contentor-info {\n        display: flex;\n    flex-wrap: wrap; \/* Permite que os elementos se reorganizem conforme o espa\u00e7o dispon\u00edvel *\/\n    justify-content: space-between;\n    }\n\n    .contentor-info div {\n        width: 48%; \/* Para caber dois por linha em ecr\u00e3s m\u00e9dios *\/\n        margin-bottom: 15px;\n    }\n\n    .contentor-info span {\n        color: #888;\n        font-size: 14px;\n        display: block;\n        margin-bottom: 5px;\n    }\n\n    .contentor-info strong {\n        font-size: 16px;\n        color: #000;\n    }\n\n    .contentor-info .details {\n        font-size: 14px;\n        color: #555;\n        display: block;\n        margin-top: 5px;\n    }\n\n    .modal {\n        position: fixed;\n        z-index: 1;\n        left: 0;\n        top: 0;\n        width: 100%;\n        height: 100%;\n        overflow: auto;\n        background-color: rgba(0, 0, 0, 0.4);\n        padding-top: 60px;\n        opacity: 0;\n        visibility: hidden;\n        transition: opacity 0.5s ease-in-out, visibility 0s 0.5s;\n    }\n\n    .modal.show {\n        opacity: 1;\n        visibility: visible;\n        transition: opacity 0.5s ease-in-out, visibility 0s 0s;\n    }\n\n    .modal-content {\n        background-color: #fff;\n        margin: 5% auto;\n        padding: 20px;\n        border-radius: 8px;\n        width: 95%;\n        max-width: 600px;\n        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);\n        transition: transform 0.3s ease-in-out;\n        max-height: 70vh;\n        overflow-y: auto;\n        position: relative;\n    }\n\n    .modal-header {\n        position: sticky;\n        top: 0;\n        background-color: #fff;\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        padding: 10px 15px;\n        z-index: 1001;\n        border-bottom: 2px solid #eee;\n        margin: 0;\n        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25); \n    }\n\n    .container-id {\n        font-size: 18px;\n        color: #333;\n        margin-left: 0;\n    }\n\n    .close {\n        font-size: 28px;\n        color: #aaa;\n        cursor: pointer;\n        font-weight: bold;\n        margin-right: 10px;\n    }\n\n    .close:hover,\n    .close:focus {\n        color: black;\n        text-decoration: none;\n    }\n\n    #errorMessage {\n        color: red;\n        text-align: center;\n        margin-top: 10px;\n    }\n\n    .event-step {\n        display: flex;\n        align-items: center;\n        margin: 30px 0;\n    }\n\n    .icon {\n        margin-right: 15px;\n    }\n\n    .event-details {\n        font-size: 16px;\n        color: #333;\n        font-weight: 300;\n        line-height: 1.6;\n    }\n\n    .event-details span {\n        font-size: 14px;\n        color: #888;\n    }\n\n    .event-details .event-action {\n        color: #888;\n    }\n\n    .event-date {\n        color: #888;\n        font-size: 16px;\n    }\n\n    .icon-check-past {\n        color: #27ae60;\n    }\n\n    .icon-check-middle {\n        color: #468fc1;\n    }\n\n    .icon-arrow-right {\n        color: #468fc1;\n    }\n\n    .icon-flag {\n        color: #f39c12;\n        margin-right: 10px;\n    }\n\n    .icon-loading {\n        color: #bdc3c7;\n        margin-right: 10px;\n    }\n\n    @keyframes moveRight {\n        0% {\n            transform: translateX(0);\n        }\n        50% {\n            transform: translateX(8px);\n        }\n        100% {\n            transform: translateX(0);\n        }\n    }\n\n    .icon-arrow-right {\n        display: inline-block;  \n        animation: moveRight 1s ease-in-out infinite;  \n    }\n\n    @media (max-width: 600px) {\n    .contentor-info div {\n        width: 100%;\n    }\n\n    .faq {\n        text-align: center;\n    }\n\n    .faq h2 {\n        font-size: 22px;\n        margin-bottom: 20px;\n    }\n\n    .faq-item h3 {\n        font-size: 18px;\n        margin-bottom: 10px;\n    }\n\n    .faq-item p {\n        font-size: 16px;\n        margin-bottom: 15px;\n    }\n}\n\n\n    .faq {\n        max-width: 800px;\n        margin: 40px auto;\n        background-color: #fff;\n        padding: 20px;\n        border-radius: 12px;\n        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n        text-align: center;\n    }\n\n    .faq h2 {\n        color: #468fc1;\n        font-size: 24px;\n        margin-bottom: 20px;\n    }\n\n    .faq-item {\n        margin-bottom: 20px;\n        padding: 15px;\n        border-radius: 8px;\n        background: #f4f4f4;\n        text-align: left;\n    }\n\n    .faq-item h3 {\n        font-size: 18px;\n        color: #333;\n        margin-bottom: 5px;\n    }\n\n    .faq-item p {\n        font-size: 16px;\n        color: #555;\n    }\n\n    .spinner {\n    border: 4px solid #f3f3f3;\n    border-top: 4px solid #468fc1;\n    border-radius: 50%;\n    width: 40px;\n    height: 40px;\n    animation: spin 1s linear infinite;\n    margin: 20px auto 10px auto;\n    display: none;\n    }\n     \n\n    @keyframes spin {\n        0% { transform: rotate(0deg); }\n        100% { transform: rotate(360deg); }\n    }\n\n<\/style>\n<body>\n\n    <h1>Siga o seu contentor<\/h1>\n    <div class=\"intro-text\">\n       Insira o n\u00famero de refer\u00eancia do seu contentor para obter o estado mais recente e a localiza\u00e7\u00e3o da sua carga.\n    <\/div>\n\n    <div class=\"container\">\n        <div class=\"search-box\">\n            <input type=\"text\" id=\"containerInput\" placeholder=\"Container num (e.g. EFHG1234567)\" \/>\n            <button onclick=\"trackContainer()\">Pesquisar<\/button>\n        <\/div>\n\n        <div style=\"text-align: center;\">\n            <div id=\"loadingSpinner\" class=\"spinner\" style=\"display: none;\"><\/div>\n        <\/div>\n\n        <div id=\"result\" style=\"display: none;\">\n            <div id=\"contentorDetails\"><\/div>\n            <button id=\"showDetailsBtn\">Mostrar Detalhes<\/button>\n        <\/div>\n\n        <div id=\"errorMessage\" class=\"error\"><\/div>\n    <\/div>\n<div class=\"faq\">\n    <h2>Perguntas Frequentes<\/h2>\n    <div class=\"faq-item\">\n        <h3>Como posso seguir o meu contentor?<\/h3>\n        <p>Insira o n\u00famero do contentor no campo de pesquisa e clique em &#8220;Pesquisar&#8221;.<\/p>\n    <\/div>\n    <div class=\"faq-item\">\n        <h3>E se o n\u00famero n\u00e3o for encontrado?<\/h3>\n        <p>Verifique se introduziu o c\u00f3digo corretamente. Caso contr\u00e1rio, poder\u00e1 haver um atraso na atualiza\u00e7\u00e3o.<\/p>\n    <\/div>\n<\/div>\n\n    <!-- Show Details Modal -->\n    <div id=\"myModal\" class=\"modal\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <span id=\"containerID\" class=\"container-id\"><\/span>  \n                <span class=\"close\" onclick=\"closeModal()\">&times;<\/span>\n            <\/div>\n            <div class=\"header-line\"><\/div>\n            <h2>Container Details<\/h2>\n            <div id=\"modalDetails\"><\/div>\n            <div id=\"eventsList\"><\/div>\n        <\/div>\n    <\/div>\n\n    <script>\nfunction trackContainer() {\n    const containerNumber = document.getElementById('containerInput').value.trim().toUpperCase();\n    const spinner = document.getElementById('loadingSpinner');\n\n    document.getElementById('errorMessage').innerHTML = ''; \n    document.getElementById('result').style.display = 'none'; \n    document.getElementById('contentorDetails').innerHTML = ''; \n    document.getElementById('modalDetails').innerHTML = ''; \n    document.getElementById('eventsList').innerHTML = ''; \n\n    spinner.style.display = 'inline-block';\n\n    if (!containerNumber) {\n        spinner.style.display = 'none';\n        document.getElementById('errorMessage').innerHTML = 'Por favor, insere o n\u00famero do contentor.';\n        return;\n    }\n\n    const containerRegex = \/^[A-Z]{4}\\d{7}$\/;\n    if (!containerRegex.test(containerNumber)) {\n        spinner.style.display = 'none';\n        document.getElementById('errorMessage').innerHTML = 'N\u00famero de contentor inv\u00e1lido. Verifica e tenta novamente.';\n        return;\n    }\n\n    const request = new XMLHttpRequest();\n    request.onreadystatechange = function() {\n        if (request.readyState == 4) {\n            spinner.style.display = 'none';\n            if (request.status == 200) {\n                const data = JSON.parse(request.responseText);\n\n                if (!data || !data.data || !data.data.containers || data.data.containers.length === 0) {\n                    document.getElementById('errorMessage').innerHTML = 'Contentor n\u00e3o encontrado. Verifica o n\u00famero e tenta outra vez.';\n                    return;\n                }\n\n                const container = data.data.containers[0];\n                const route = data.data.route;\n                const locations = data.data.locations;\n\n                const polLocation = locations.find(loc => loc.id === route.pol.location);\n                const podLocation = locations.find(loc => loc.id === route.pod.location);\n\n                const departureDate = route.pol?.date ? new Date(route.pol.date).toLocaleString('pt-PT') : 'Data indispon\u00edvel';\n                const arrivalDate = route.pod?.date ? new Date(route.pod.date).toLocaleString('pt-PT') : 'Data indispon\u00edvel';\n\n                const events = container.events || [];\n\n                \/\/ Ordenar eventos por data crescente\n                events.sort((a, b) => new Date(a.date) - new Date(b.date));\n\n                \/\/ Determinar o \u00faltimo evento cuja data j\u00e1 passou\n                let currentEventIndex = null;\n                const now = new Date();\n\n                for (let i = events.length - 1; i >= 0; i--) {\n                    const eventDate = new Date(events[i].date);\n                    if (eventDate <= now) {\n                        currentEventIndex = i;\n                        break;\n                    }\n                }\n\n                let lastStatus = 'Estado desconhecido';\n                if (currentEventIndex !== null) {\n                    const loc = locations.find(loc => loc.id === events[currentEventIndex].location);\n                    if (loc) {\n                        lastStatus = `${loc.name}, ${loc.country}`;\n                    }\n                }\n\n                const contentorDetails = `\n                    <div class=\"contentor-info\">\n                        <div>\n                            <span>Contentor:<\/span>\n                            <strong>${container.number || 'Indispon\u00edvel'}<\/strong>\n                            <span class=\"details\">${container.size_type || 'Indispon\u00edvel'}<\/span>\n                        <\/div>\n                        <div>\n                            <span>Partida:<\/span>\n                            <strong>${polLocation ? polLocation.name + ', ' + polLocation.country : 'Indispon\u00edvel'}<\/strong>\n                            <span class=\"details\">${departureDate}<\/span>\n                        <\/div>\n                        <div>\n                            <span>Destino:<\/span>\n                            <strong>${podLocation ? podLocation.name + ', ' + podLocation.country : 'Indispon\u00edvel'}<\/strong>\n                            <span class=\"details\">${arrivalDate}<\/span>\n                        <\/div>\n                        <div>\n                            <span>\u00daltimo estado conhecido:<\/span>\n                            <strong>${lastStatus}<\/strong>\n                            <span class=\"details\">${currentEventIndex !== null ? new Date(events[currentEventIndex].date).toLocaleString('pt-PT') : 'Data indispon\u00edvel'}<\/span>\n                        <\/div>\n                    <\/div>\n                `;\n\n                document.getElementById('contentorDetails').innerHTML = contentorDetails;\n                document.getElementById('result').style.display = 'block';\n                document.getElementById('containerID').textContent = container.number || 'Indispon\u00edvel';\n\n                document.getElementById('showDetailsBtn').onclick = function() {\n                    const modalDetails = document.getElementById('modalDetails');\n                    modalDetails.innerHTML = '';\n                    document.getElementById('myModal').classList.add('show');\n                    let eventsHTML = '';\n\n                    events.forEach((event, index) => {\n                        let transportIcon = '';\n\n                        switch (event.transport_type) {\n                            case 'VESSEL':\n                                transportIcon = '\ud83d\udea2';\n                                break;\n                            case 'TRUCK':\n                                transportIcon = '\ud83d\ude9a';\n                                break;\n                            case 'AIR':\n                                transportIcon = '\u2708\ufe0f';\n                                break;\n                            default:\n                                transportIcon = '\u2699\ufe0f';\n                        }\n\n                        const loc = locations.find(loc => loc.id === event.location);\n                        const locationName = loc ? loc.name : 'Local n\u00e3o dispon\u00edvel';\n                        const locationCountry = loc ? loc.country : 'Pa\u00eds n\u00e3o dispon\u00edvel';\n                        const terminal = event.facility || 'N\u00e3o especificado';\n\n                        eventsHTML += `\n                            <div class=\"event-step\">\n                                <div class=\"event-details\">\n                                    <strong>${locationName}, ${locationCountry}<\/strong><br>\n                                    <span>${terminal}<\/span><br>\n                                    <span class=\"event-action\">${event.description} ${transportIcon}<\/span><br>\n                                    <span>${new Date(event.date).toLocaleString('pt-PT')}<\/span>\n                                <\/div>\n                            <\/div>\n                        `;\n                    });\n\n                    modalDetails.innerHTML = eventsHTML;\n                };\n\n            } else {\n                document.getElementById('errorMessage').innerHTML = 'N\u00e3o foi poss\u00edvel obter os dados. Tenta novamente mais tarde.';\n            }\n        }\n    };\n\n    const workerUrl = `https:\/\/snowy-haze-494d.steamshipinformatica.workers.dev\/?container=${containerNumber}`;\n    request.open('GET', workerUrl, true);\n    request.send();\n        }\n    <\/script>\n    \n    \n\n\n<\/body>\n<\/html>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Track &#038; Trace Siga o seu contentor Insira o n\u00famero de refer\u00eancia do seu contentor para obter o estado mais recente e a localiza\u00e7\u00e3o da sua carga. Pesquisar Mostrar Detalhes Perguntas Frequentes Como posso seguir o meu contentor? Insira o n\u00famero do contentor no campo de pesquisa e clique em &#8220;Pesquisar&#8221;. E se o n\u00famero [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1593","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Track &amp; Trace - Steamship<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Track &amp; Trace - Steamship\" \/>\n<meta property=\"og:description\" content=\"Track &#038; Trace Siga o seu contentor Insira o n\u00famero de refer\u00eancia do seu contentor para obter o estado mais recente e a localiza\u00e7\u00e3o da sua carga. Pesquisar Mostrar Detalhes Perguntas Frequentes Como posso seguir o meu contentor? Insira o n\u00famero do contentor no campo de pesquisa e clique em &#8220;Pesquisar&#8221;. E se o n\u00famero [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Steamship\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/steamshiplda\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-03T16:40:16+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/\",\"url\":\"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/\",\"name\":\"Track &amp; Trace - Steamship\",\"isPartOf\":{\"@id\":\"https:\/\/www.steamship.pt\/#website\"},\"datePublished\":\"2025-04-03T10:29:10+00:00\",\"dateModified\":\"2025-06-03T16:40:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.steamship.pt\/pt-pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Track &amp; Trace\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.steamship.pt\/#website\",\"url\":\"https:\/\/www.steamship.pt\/\",\"name\":\"Steamship\",\"description\":\"Organiza\u00e7\u00e3o do Transporte, Lda.\",\"publisher\":{\"@id\":\"https:\/\/www.steamship.pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.steamship.pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.steamship.pt\/#organization\",\"name\":\"Steamship\",\"url\":\"https:\/\/www.steamship.pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.steamship.pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.steamship.pt\/wp-content\/uploads\/2022\/07\/logotipo.png\",\"contentUrl\":\"https:\/\/www.steamship.pt\/wp-content\/uploads\/2022\/07\/logotipo.png\",\"width\":370,\"height\":198,\"caption\":\"Steamship\"},\"image\":{\"@id\":\"https:\/\/www.steamship.pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/steamshiplda\/\",\"https:\/\/www.instagram.com\/steamshiplda\/\",\"https:\/\/www.linkedin.com\/company\/steamship-lda-\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Track &amp; Trace - Steamship","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/","og_locale":"pt_PT","og_type":"article","og_title":"Track &amp; Trace - Steamship","og_description":"Track &#038; Trace Siga o seu contentor Insira o n\u00famero de refer\u00eancia do seu contentor para obter o estado mais recente e a localiza\u00e7\u00e3o da sua carga. Pesquisar Mostrar Detalhes Perguntas Frequentes Como posso seguir o meu contentor? Insira o n\u00famero do contentor no campo de pesquisa e clique em &#8220;Pesquisar&#8221;. E se o n\u00famero [&hellip;]","og_url":"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/","og_site_name":"Steamship","article_publisher":"https:\/\/www.facebook.com\/steamshiplda\/","article_modified_time":"2025-06-03T16:40:16+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tempo estimado de leitura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/","url":"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/","name":"Track &amp; Trace - Steamship","isPartOf":{"@id":"https:\/\/www.steamship.pt\/#website"},"datePublished":"2025-04-03T10:29:10+00:00","dateModified":"2025-06-03T16:40:16+00:00","breadcrumb":{"@id":"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.steamship.pt\/pt-pt\/track-trace-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.steamship.pt\/pt-pt\/"},{"@type":"ListItem","position":2,"name":"Track &amp; Trace"}]},{"@type":"WebSite","@id":"https:\/\/www.steamship.pt\/#website","url":"https:\/\/www.steamship.pt\/","name":"Steamship","description":"Organiza\u00e7\u00e3o do Transporte, Lda.","publisher":{"@id":"https:\/\/www.steamship.pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.steamship.pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/www.steamship.pt\/#organization","name":"Steamship","url":"https:\/\/www.steamship.pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.steamship.pt\/#\/schema\/logo\/image\/","url":"https:\/\/www.steamship.pt\/wp-content\/uploads\/2022\/07\/logotipo.png","contentUrl":"https:\/\/www.steamship.pt\/wp-content\/uploads\/2022\/07\/logotipo.png","width":370,"height":198,"caption":"Steamship"},"image":{"@id":"https:\/\/www.steamship.pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/steamshiplda\/","https:\/\/www.instagram.com\/steamshiplda\/","https:\/\/www.linkedin.com\/company\/steamship-lda-\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/pages\/1593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/comments?post=1593"}],"version-history":[{"count":10,"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/pages\/1593\/revisions"}],"predecessor-version":[{"id":1651,"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/pages\/1593\/revisions\/1651"}],"wp:attachment":[{"href":"https:\/\/www.steamship.pt\/pt-pt\/wp-json\/wp\/v2\/media?parent=1593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}