{"id":16380,"date":"2023-09-20T11:59:21","date_gmt":"2023-09-20T11:59:21","guid":{"rendered":"https:\/\/www.objectifhorlogerie.com\/cart-2\/"},"modified":"2026-11-05T10:22:26","modified_gmt":"2026-11-05T10:22:26","slug":"cart-2","status":"publish","type":"page","link":"https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/","title":{"rendered":"Cart"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"16380\" class=\"elementor elementor-16380 elementor-16090\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0be1054 e-flex e-con-boxed e-con e-parent\" data-id=\"0be1054\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b9695e3 elementor-widget__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-html\" data-id=\"b9695e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.oh-cart-steps {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  max-width: 600px;\n  margin: 0 auto 28px;\n  padding: 0;\n  list-style: none;\n  color: #3b3b3b;\n  font: 400 15px\/1.4 Roboto, sans-serif;\n}\n.oh-cart-steps li {\n  position: relative;\n  text-align: center;\n  list-style: none;\n  margin: 0;\n}\n.oh-cart-steps li:not(:last-child)::after {\n  content: \"\";\n  position: absolute;\n  top: 9px;\n  left: calc(50% + 16px);\n  width: calc(100% - 32px);\n  height: 2px;\n  background: #b7b7b7;\n}\n.oh-cart-steps li::before {\n  content: \"\";\n  display: block;\n  box-sizing: border-box;\n  width: 20px;\n  height: 20px;\n  margin: 0 auto 6px;\n  border: 2px solid #aaa;\n  border-radius: 50%;\n  background: #fff;\n}\n.oh-cart-steps li[aria-current=\"step\"] {\n  font-weight: 700;\n}\n.oh-cart-steps li[aria-current=\"step\"]::before {\n  background: #eebb1e;\n}\n<\/style>\n\n<ol class=\"oh-cart-steps\" lang=\"en\" aria-label=\"Checkout progress\">\n  <li aria-current=\"step\">Cart<\/li>\n  <li>Details<\/li>\n  <li>Payment<\/li>\n<\/ol>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4d099c04 e-flex e-con-boxed e-con e-parent\" data-id=\"4d099c04\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a366dca elementor-widget__width-inherit oh-panier elementor-widget elementor-widget-text-editor\" data-id=\"5a366dca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6c42d02 e-flex e-con-boxed e-con e-parent\" data-id=\"6c42d02\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53aca09 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"53aca09\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\/* Espacements du panier *\/\n.oh-panier {\n  margin-top: 0 !important;\n  padding-top: 0 !important;\n}\n.oh-panier .woocommerce {\n  margin-top: 0 !important;\n  padding-top: 0 !important;\n  color: #3b3b3b;\n  font: 400 15px\/1.5 Roboto, sans-serif;\n}\n.oh-panier .woocommerce .product-name a {\n  color: #3b3b3b;\n}\n\n\/* Etapes et phrase de reassurance *\/\n.oh-checkout-progress {\n  margin-top: 0 !important;\n  padding-top: 5px !important;\n  padding-bottom: 12px !important;\n}\n.oh-cart-steps {\n  margin-top: 0 !important;\n  margin-bottom: 10px !important;\n}\n.oh-cart-reassurance {\n  max-width: 650px;\n  margin: 0 auto 1px !important;\n  padding: 0 15px;\n  text-align: center;\n  color: #666;\n  font: 400 14px\/1.6 Roboto, Arial, sans-serif;\n}\n\n\/* Reduit les espaces propres aux widgets concernes *\/\n.elementor-widget-html:has(.oh-cart-steps) {\n  margin-top: 0 !important;\n  margin-bottom: 10px !important;\n}\n.elementor-widget-html:has(.oh-cart-steps) > .elementor-widget-container {\n  margin-top: 0 !important;\n  padding-top: 0 !important;\n}\n\n\/* Product : meme presentation que les infos de reservation *\/\n.oh-panier .woocommerce-cart-form:has(.oh-product-value) th.product-name {\n  visibility: hidden;\n}\n.oh-panier .woocommerce-cart-form td.product-name:has(.oh-product-value),\n.oh-panier .woocommerce-cart-form td.product-name:has(.oh-product-value) dl.variation {\n  text-align: left !important;\n}\n.oh-panier .woocommerce-cart-form td.product-name:has(.oh-product-value)::before {\n  display: none !important;\n}\n.oh-panier .woocommerce-cart-form dl.variation dt.oh-product-term,\n.oh-panier .woocommerce-cart-form dl.variation dd.oh-product-value {\n  display: block;\n  float: none;\n  clear: both;\n  text-align: left;\n}\n.oh-panier .woocommerce-cart-form dt.oh-product-term {\n  font-weight: 700;\n}\n.oh-panier .woocommerce-cart-form dd.oh-product-value a {\n  float: none !important;\n  text-align: left !important;\n}\n\n\/* Photo du produit *\/\n.oh-panier .woocommerce table.cart .product-thumbnail {\n  display: table-cell !important;\n  width: 84px;\n  vertical-align: top;\n}\n.oh-panier .woocommerce table.cart .product-thumbnail img {\n  display: block !important;\n  width: 72px !important;\n  height: 72px !important;\n  max-width: none;\n  object-fit: cover;\n  border-radius: 4px;\n}\n\n\/* Recapitulatif et boutons *\/\n.oh-panier .woocommerce .cart_totals {\n  float: none;\n  width: 100%;\n  box-sizing: border-box;\n  background: #fff8df;\n  padding: 24px;\n  border-radius: 6px;\n}\n.oh-panier .woocommerce .cart_totals h2 {\n  font: 500 24px\/1.3 Oswald, sans-serif;\n  margin: 0 0 16px;\n}\n.oh-panier .woocommerce a.checkout-button,\n.oh-panier .woocommerce .oh-promo-row button {\n  background: #eebb1e;\n  color: #212121;\n  font: 700 16px\/1.4 Oswald, sans-serif;\n  border-radius: 6px;\n}\n.oh-panier .woocommerce a.checkout-button {\n  margin-bottom: 0;\n}\n.oh-panier .woocommerce a.checkout-button:hover,\n.oh-panier .woocommerce .oh-promo-row button:hover {\n  background: #d09c17;\n  color: #212121;\n}\n\n\/* Volet promo *\/\n.oh-panier .woocommerce .oh-promo {\n  margin: 14px 0;\n  border-block: 1px solid #d8d3c2;\n  text-align: left;\n  font: 400 15px\/1.4 Roboto, sans-serif;\n}\n.oh-panier .oh-promo summary {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 12px;\n  padding: 10px 0;\n  cursor: pointer;\n  list-style: none;\n}\n.oh-panier .oh-promo summary::-webkit-details-marker {\n  display: none;\n}\n.oh-panier .oh-promo summary::after {\n  content: \"\";\n  flex: 0 0 7px;\n  height: 7px;\n  margin-right: 4px;\n  border-right: 2px solid currentColor;\n  border-bottom: 2px solid currentColor;\n  transform: rotate(45deg);\n}\n.oh-panier .oh-promo[open] summary::after {\n  transform: rotate(225deg);\n}\n.oh-panier .oh-promo-row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  padding-bottom: 12px;\n}\n.oh-panier .oh-promo-row input {\n  flex: 1 1 130px;\n  min-width: 0;\n  box-sizing: border-box;\n  padding: 1px;\n  border: 1px solid #ccc;\n  border-radius: 6px;\n}\n.oh-panier .woocommerce-cart-form .coupon.oh-promo-original {\n  display: none !important;\n}\n\n\/* Ordinateur *\/\n@media (min-width: 1024px) {\n  .oh-panier .woocommerce:has(> .woocommerce-cart-form) {\n    display: grid;\n    grid-template-columns: minmax(0, 2fr) minmax(270px, 1fr);\n    gap: 24px;\n    align-items: start;\n  }\n  .oh-panier .woocommerce > :not(.woocommerce-cart-form):not(.cart-collaterals) {\n    grid-column: 1 \/ -1;\n  }\n  .oh-panier .woocommerce-cart-form,\n  .oh-panier .cart-collaterals {\n    min-width: 0;\n  }\n}\n\n\/* Mobile *\/\n@media (max-width: 768px) {\n  .oh-panier .woocommerce table.cart th.product-thumbnail {\n    display: none !important;\n  }\n  .oh-panier .woocommerce table.cart td.product-thumbnail {\n    display: block !important;\n    width: auto;\n    text-align: left !important;\n  }\n  .oh-panier .woocommerce table.cart td.product-thumbnail::before {\n    display: none;\n  }\n  .oh-panier .woocommerce .cart_totals {\n    padding: 18px;\n  }\n  .oh-cart-reassurance {\n    font-size: 13px;\n    margin-bottom: 12px !important;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  function addReassurance() {\n    document.querySelectorAll('.oh-cart-steps').forEach(function (steps) {\n      let message = steps.nextElementSibling;\n\n      if (!message || !message.classList.contains('oh-cart-reassurance')) {\n        message = document.createElement('p');\n        message.className = 'oh-cart-reassurance';\n        steps.after(message);\n      }\n\n      message.lang = 'en';\n      message.innerHTML =\n  'Your watchmaking experience is almost booked.<br>' +\n  'Review your details before proceeding to secure payment.';\n    });\n  }\n\n  function init() {\n    addReassurance();\n\n    document.querySelectorAll('.oh-panier').forEach(function (root) {\n      if (root.dataset.ohCartReady) return;\n      root.dataset.ohCartReady = '1';\n\n      function alignProduct() {\n        root.querySelectorAll('.woocommerce-cart-form td.product-name')\n          .forEach(function (cell) {\n            const date = Array.from(cell.querySelectorAll('dt'))\n              .find(function (term) {\n                return \/^reservation\\s+date\\s*:?$\/i.test(\n                  term.textContent.trim()\n                );\n              });\n\n            const list = date?.closest('dl');\n            const dateValue = date?.nextElementSibling;\n\n            if (\n              !list ||\n              !dateValue ||\n              dateValue.tagName !== 'DD' ||\n              list.querySelector('.oh-product-value')\n            ) return;\n\n            let info = list;\n            while (info.parentElement && info.parentElement !== cell) {\n              info = info.parentElement;\n            }\n            if (info.parentElement !== cell) return;\n\n            const before = [];\n            for (\n              let node = cell.firstChild;\n              node && node !== info;\n              node = node.nextSibling\n            ) {\n              before.push(node);\n            }\n\n            let name = before.find(function (node) {\n              return node.nodeType === 1 &&\n                (node.matches('a[href]') ||\n                 node.querySelector('a[href]')) &&\n                node.textContent.trim();\n            });\n\n            if (!name) {\n              name = before.find(function (node) {\n                return node.nodeType === 3 && node.textContent.trim();\n              });\n            }\n            if (!name) return;\n\n            const term = date.cloneNode(false);\n            const value = dateValue.cloneNode(false);\n            term.removeAttribute('id');\n            value.removeAttribute('id');\n            term.classList.add('oh-product-term');\n            value.classList.add('oh-product-value');\n            term.textContent = 'Product:';\n\n            if (dateValue.firstElementChild?.tagName === 'P') {\n              const line = document.createElement('p');\n              line.appendChild(name);\n              value.appendChild(line);\n            } else {\n              value.appendChild(name);\n            }\n\n            date.before(term, value);\n          });\n      }\n\n      function addPromo() {\n        const cart = root.querySelector('.woocommerce-cart-form');\n        const totals = root.querySelector('.cart_totals');\n        const original = cart?.querySelector('.coupon');\n        const input = original?.querySelector('[name=\"coupon_code\"]');\n        const apply = original?.querySelector('[name=\"apply_coupon\"]');\n        const checkout = totals?.querySelector('a.checkout-button');\n        const existing = totals?.querySelector('.oh-promo');\n\n        if (!input || !apply || !checkout) {\n          existing?.remove();\n          original?.classList.remove('oh-promo-original');\n          return;\n        }\n\n        if (existing?.ohSource === input) return;\n        existing?.remove();\n\n        const block = document.createElement('details');\n        block.className = 'oh-promo';\n        block.ohSource = input;\n        block.innerHTML = `\n          <summary>Have a promo code?<\/summary>\n          <div class=\"oh-promo-row\">\n            <input type=\"text\"\n              aria-label=\"Coupon code\"\n              placeholder=\"Coupon code\">\n            <button type=\"button\" class=\"button\">Apply coupon<\/button>\n          <\/div>`;\n\n        const field = block.querySelector('input');\n        field.value = input.value;\n\n        function submitCoupon() {\n          const code = field.value.trim();\n          if (!code) {\n            field.focus();\n            return;\n          }\n          input.value = code;\n          apply.click();\n        }\n\n        block.querySelector('button')\n          .addEventListener('click', submitCoupon);\n\n        field.addEventListener('keydown', function (event) {\n          if (event.key === 'Enter') {\n            event.preventDefault();\n            submitCoupon();\n          }\n        });\n\n        checkout.before(block);\n        original.classList.add('oh-promo-original');\n      }\n\n      function refresh() {\n        alignProduct();\n        addPromo();\n      }\n\n      refresh();\n\n      new MutationObserver(refresh).observe(root, {\n        childList: true,\n        subtree: true\n      });\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1ff8ba8 e-flex e-con-boxed e-con e-parent\" data-id=\"1ff8ba8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5bbee28 e-con-full e-flex e-con e-child\" data-id=\"5bbee28\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b51f855 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"b51f855\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- TrustBox widget - Carousel -->\n<div class=\"trustpilot-widget\" data-locale=\"en-US\" data-template-id=\"53aa8912dec7e10d38f59f36\" data-businessunit-id=\"675f2b7d4a42bb5131e060ee\" data-style-height=\"140px\" data-style-width=\"100%\" data-token=\"7aa81902-d4da-496f-9f19-26ff96cc71a0\" data-stars=\"4,5\" data-review-languages=\"en\">\n  <a href=\"https:\/\/www.trustpilot.com\/review\/www.objectifhorlogerie.com\" target=\"_blank\" rel=\"noopener\">Trustpilot<\/a>\n<\/div>\n<!-- End TrustBox widget -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Cart Details Payment Trustpilot<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-16380","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cart - Objectif Horlogerie : le sp\u00e9cialiste des cours et stages en horlogerie<\/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.objectifhorlogerie.com\/en\/cart-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cart - Objectif Horlogerie : le sp\u00e9cialiste des cours et stages en horlogerie\" \/>\n<meta property=\"og:description\" content=\"Cart Details Payment Trustpilot\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Objectif Horlogerie : le sp\u00e9cialiste des cours et stages en horlogerie\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-05T10:22:26+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cart - Objectif Horlogerie : le sp\u00e9cialiste des cours et stages en horlogerie","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.objectifhorlogerie.com\/en\/cart-2\/","og_locale":"en_US","og_type":"article","og_title":"Cart - Objectif Horlogerie : le sp\u00e9cialiste des cours et stages en horlogerie","og_description":"Cart Details Payment Trustpilot","og_url":"https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/","og_site_name":"Objectif Horlogerie : le sp\u00e9cialiste des cours et stages en horlogerie","article_modified_time":"2026-11-05T10:22:26+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/","url":"https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/","name":"Cart - Objectif Horlogerie : le sp\u00e9cialiste des cours et stages en horlogerie","isPartOf":{"@id":"https:\/\/www.objectifhorlogerie.com\/en\/#website"},"datePublished":"2023-09-20T11:59:21+00:00","dateModified":"2026-11-05T10:22:26+00:00","breadcrumb":{"@id":"https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.objectifhorlogerie.com\/en\/cart-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.objectifhorlogerie.com\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Cart"}]},{"@type":"WebSite","@id":"https:\/\/www.objectifhorlogerie.com\/en\/#website","url":"https:\/\/www.objectifhorlogerie.com\/en\/","name":"%%title%% : Objectif Horlogerie","description":"Depuis plus de 10 ans, la r\u00e9f\u00e9rence des initiations \u00e0 l&#039;horlogerie pour tous.","publisher":{"@id":"https:\/\/www.objectifhorlogerie.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.objectifhorlogerie.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.objectifhorlogerie.com\/en\/#organization","name":"%%title%% : Objectif Horlogerie","url":"https:\/\/www.objectifhorlogerie.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.objectifhorlogerie.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.objectifhorlogerie.com\/wp-content\/uploads\/2023\/09\/cropped-logo-oh.png","contentUrl":"https:\/\/www.objectifhorlogerie.com\/wp-content\/uploads\/2023\/09\/cropped-logo-oh.png","width":928,"height":321,"caption":"%%title%% : Objectif Horlogerie"},"image":{"@id":"https:\/\/www.objectifhorlogerie.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/pages\/16380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/comments?post=16380"}],"version-history":[{"count":28,"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/pages\/16380\/revisions"}],"predecessor-version":[{"id":34473,"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/pages\/16380\/revisions\/34473"}],"wp:attachment":[{"href":"https:\/\/www.objectifhorlogerie.com\/en\/wp-json\/wp\/v2\/media?parent=16380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}