{"id":233299,"date":"2026-05-15T12:16:56","date_gmt":"2026-05-15T10:16:56","guid":{"rendered":"https:\/\/deinperfectday.de\/anbieter-shop-anbindung-shopify\/"},"modified":"2026-05-15T12:16:56","modified_gmt":"2026-05-15T10:16:56","slug":"anbieter-shop-anbindung-shopify","status":"publish","type":"page","link":"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung-shopify\/","title":{"rendered":"LP Shop-Anbindung \u2014 Shopify"},"content":{"rendered":"<div class=\"pd-scope\">        <div class=\"pd-scope\">\n        <header id=\"site-header\">\n          <div class=\"container nav\">\n            <a href=\"https:\/\/deinperfectday.de\/en\/\" class=\"logo logo-image\" aria-label=\"Perfect Day Homepage\">\n              <img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"Perfect Day \u2014 Enjoy your experience\" width=\"220\" height=\"50\" fetchpriority=\"high\" decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/logo-dunkel.png\">\n            <\/a>\n\n            <button\n              type=\"button\"\n              class=\"mega-toggle\"\n              id=\"megaToggle\"\n              aria-expanded=\"false\"\n              aria-controls=\"mega-menu\"\n              aria-label=\"Open main menu\">\n              <span class=\"mega-toggle-text\">menu<\/span>\n              <span class=\"mega-toggle-icon\" aria-hidden=\"true\">\n                <svg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 7h16M4 12h16M4 17h16\"\/><\/svg>\n              <\/span>\n            <\/button>\n\n            <div class=\"nav-cta\">\n              <a class=\"btn btn-ghost\" href=\"https:\/\/plattform.deinperfectday.de\/\">Register<\/a>\n              <a class=\"btn btn-primary\" href=\"https:\/\/deinperfectday.de\/en\/anbieter-werden\/\">Become a provider now <span class=\"arrow\" aria-hidden=\"true\">\u2192<\/span><\/a>\n            <\/div>\n          <\/div>\n\n          <!-- ============== MEGA MENU DRAWER ============== -->\n          <div class=\"mega-menu\" id=\"mega-menu\" hidden role=\"dialog\" aria-modal=\"false\" aria-label=\"Main Menu\">\n            <div class=\"container mega-grid\">\n\n              <!-- Spalte 1: F\u00fcr Anbieter -->\n              <div class=\"mega-col\">\n                <h3 class=\"mega-col-title\">For providers<\/h3>\n                <ul class=\"mega-list\">\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/stadtgutscheine\/\">\n                        <strong>City vouchers<\/strong>\n                        <span>Multi-provider vouchers, partial redemption, remaining balance automatically credited.<\/span>\n                      <\/a>\n                    <\/li>\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/online-ticketing\/\">\n                        <strong>Online ticketing<\/strong>\n                        <span>\u20ac0.49 per ticket. No booking fee for your guests.<\/span>\n                      <\/a>\n                    <\/li>\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/gutscheinbuecher\/\">\n                        <strong>Voucher books<\/strong>\n                        <span>Digital, 5 languages, instant updates. No printing costs.<\/span>\n                      <\/a>\n                    <\/li>\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/coupons\/\">\n                        <strong>Coupons<\/strong>\n                        <span>From \u20ac9.90\/month. Three tiers, fixed price, can be cancelled monthly.<\/span>\n                      <\/a>\n                    <\/li>\n                                    <li class=\"mega-list-divider\">\n                    <a href=\"https:\/\/deinperfectday.de\/en\/preise\/\">\n                      <strong>Prices &amp; Models<\/strong>\n                      <span>Transparent terms and conditions, 10 % bundle discount for three pillars.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/buchen\/\">\n                      <strong>Book columns<\/strong>\n                      <span>Booking assistant: Select columns and make a binding booking.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/anbieter-werden\/\" class=\"mega-link-highlight\">\n                      <strong>Providers will be \u2192<\/strong>\n                      <span>Register for free, get a quick response.<\/span>\n                    <\/a>\n                  <\/li>\n                <\/ul>\n              <\/div>\n\n              <!-- Spalte 2: Entdecken & Konzept -->\n              <div class=\"mega-col\">\n                <h3 class=\"mega-col-title\">Discover<\/h3>\n                <ul class=\"mega-list\">\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/app\/\">\n                      <strong>Discover the app<\/strong>\n                      <span>How the end-user app works.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/roi-rechner\/\">\n                      <strong>ROI calculator<\/strong>\n                      <span>Platform costs per year in 10 seconds.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/app-versionen\/\">\n                      <strong>App versions<\/strong>\n                      <span>What&#039;s new in the app \u2014 the version history.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/#prinzip\">\n                      <strong>The concept<\/strong>\n                      <span>Cross-pollination of the four pillars explained.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/anbieter\/\">\n                      <strong>Provider Hub<\/strong>\n                      <span>Overview of all pillars with competitive comparison.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/mitarbeiter-benefits\/\">\n                      <strong>Employee benefits<\/strong>\n                      <span>Corporate subscriptions: City vouchers automatically distributed to the team.<\/span>\n                    <\/a>\n                  <\/li>\n                <\/ul>\n\n                <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">City voucher live in<\/h3>\n                <p class=\"mega-cities\">\n                  Garrel \u00b7 L\u00f6ningen \u00b7 Twistringen<br>\n                  <small>More cities will follow in 2026.<\/small>\n                <\/p>\n              <\/div>\n\n              <!-- Spalte 3: Service + Account -->\n              <div class=\"mega-col\">\n                <h3 class=\"mega-col-title\">service<\/h3>\n                <ul class=\"mega-list\">\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/hilfe\/\">\n                      <strong>Help &amp; Features<\/strong>\n                      <span>All app functions explained step by step.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/support\/\">\n                      <strong>Support<\/strong>\n                      <span>Help for suppliers and customers.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/plattform.deinperfectday.de\/\">\n                      <strong>Platform login<\/strong>\n                      <span>For active providers with an account.<\/span>\n                    <\/a>\n                  <\/li>\n                <\/ul>\n\n                                  <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">Language<\/h3>\n                  <div class=\"mega-lang-switcher\"><div class=\"trp-shortcode-switcher__wrapper\"\r\n     style=\"--bg:#ffffff;--bg-hover:#0000000d;--text:#143852;--text-hover:#1d2327;--border:1px solid #1438521a;--border-width:1px;--border-color:#1438521a;--border-radius:5px;--flag-radius:2px;--flag-size:18px;--aspect-ratio:4\/3;--font-size:14px;--transition-duration:0.2s\"\r\n     role=\"group\"\r\n     data-open-mode=\"hover\">\r\n\r\n    \r\n        <!-- ANCHOR (in-flow only; sizing\/borders; inert) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-anchor trp-open-on-hover\"\r\n             aria-hidden=\"true\"\r\n             inert\r\n data-no-translation>\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <a class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"English\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"trp-flag-image lazyload\" alt=\"\" role=\"presentation\" loading=\"lazy\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/en_GB.svg\"><span class=\"trp-language-item-name\">English<\/span><\/a>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewbox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n            <\/div>\r\n\r\n        <!-- OVERLAY (positioned; interactive surface) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-overlay trp-open-on-hover\"\r\n             role=\"navigation\"\r\n             aria-label=\"Website language selector\"\r\n             data-no-translation\r\n>\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <div class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation role=\"button\" aria-expanded=\"false\" tabindex=\"0\" aria-label=\"Change language\" aria-controls=\"trp-shortcode-dropdown-6a28b1de0535c\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"trp-flag-image lazyload\" alt=\"\" role=\"presentation\" loading=\"lazy\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/en_GB.svg\"><span class=\"trp-language-item-name\">English<\/span><\/div>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewbox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n    \r\n            <div class=\"trp-switcher-dropdown-list\"\r\n                 id=\"trp-shortcode-dropdown-6a28b1de0535c\"\r\n                 role=\"group\"\r\n                 aria-label=\"Available languages\"\r\n                 hidden\r\n inert\r\n>\r\n                                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"German\">\r\n                            <img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"trp-flag-image lazyload\" alt=\"\" role=\"presentation\" loading=\"lazy\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/de_DE.svg\">                                                            <span class=\"trp-language-item-name\" data-no-translation>German<\/span>\r\n                                                                                <\/a>\r\n                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"Spanish\">\r\n                            <img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"trp-flag-image lazyload\" alt=\"\" role=\"presentation\" loading=\"lazy\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/es_ES.svg\">                                                            <span class=\"trp-language-item-name\" data-no-translation>Spanish<\/span>\r\n                                                                                <\/a>\r\n                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"Russian\">\r\n                            <img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"trp-flag-image lazyload\" alt=\"\" role=\"presentation\" loading=\"lazy\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/ru_RU.svg\">                                                            <span class=\"trp-language-item-name\" data-no-translation>Russian<\/span>\r\n                                                                                <\/a>\r\n                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"Turkish\">\r\n                            <img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"trp-flag-image lazyload\" alt=\"\" role=\"presentation\" loading=\"lazy\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/tr_TR.svg\">                                                            <span class=\"trp-language-item-name\" data-no-translation>Turkish<\/span>\r\n                                                                                <\/a>\r\n                                                <\/div>\r\n        <\/div>\r\n\r\n    <\/div>\r\n<\/div>\n                \n                <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">Download the app<\/h3>\n                                  <div class=\"app-badges mega-app-badges\">\n                                          <a href=\"https:\/\/apps.apple.com\/de\/app\/id1525409363\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Apple App Store\">\n                        <img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"Im Apple App Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-app-store.png\">\n                      <\/a>\n                                                              <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=koop.perfect.day&#038;utm_source=emea_Med\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Google Play Store\">\n                        <img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"Im Google Play Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-play-store.png\">\n                      <\/a>\n                                      <\/div>\n                \n                <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">Legal<\/h3>\n                <ul class=\"mega-list mega-list-compact\">\n                                    <li><a href=\"https:\/\/deinperfectday.de\/en\/impressum\/\">imprint<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutz\/\">Privacy policy (website)<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-agb\/\">Provider Terms and Conditions<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/agb\/terms-of-service\/\">App Terms of Use<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutzerklaerung\/\">App Privacy<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/konto-loeschen\/\">Delete account<\/a><\/li>\n                <\/ul>\n              <\/div>\n\n            <\/div>\n\n            <button type=\"button\" class=\"mega-close\" id=\"megaClose\" aria-label=\"Close menu\">\n              <svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" aria-hidden=\"true\"><path d=\"M6 6l12 12M6 18L18 6\"\/><\/svg>\n            <\/button>\n          <\/div>\n          <!-- End Mega Menu -->\n\n        <\/header>\n        <\/div>\n                <main id=\"main\">\n\n          <nav class=\"container breadcrumb\" aria-label=\"Breadcrumb navigation\">\n            <ol>\n              <li><a href=\"https:\/\/deinperfectday.de\/en\/\">Homepage<\/a><\/li>\n              <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter\/\">For providers<\/a><\/li>\n              <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung\/\">Shop integration<\/a><\/li>\n              <li><span aria-current=\"page\">Shopify<\/span><\/li>\n            <\/ol>\n          <\/nav>\n\n          <!-- Hero -->\n          <section class=\"subhero subhero-compact et_pb_section\" aria-label=\"introduction\">\n            <div class=\"container\">\n              <div class=\"reveal subhero-center\">\n                <span class=\"eyebrow\"><span class=\"pulse\" aria-hidden=\"true\"><\/span> &nbsp;Shopify \u00b7 15\u201320 min \u00b7 medium<\/span>\n                <h1>Integrate Perfect Day into Shopify.<\/h1>\n                <p class=\"subhero-sub\">Sell your Perfect Day coupons through your Shopify store. The only slightly tricky part: Shopify&#039;s native webhook doesn&#039;t include metafields\u2014you&#039;ll need a small bridge for that. We&#039;ll show you three ways, from the simplest to the most flexible.<\/p>\n              <\/div>\n            <\/div>\n          <\/section>\n\n                    <!-- Voraussetzungs-Callout -->\n          <div class=\"container\">\n            <div class=\"guide-callout reveal\">\n              <svg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 16v-4M12 8h.01\"\/><\/svg>\n              <p><strong>Required beforehand:<\/strong> Go once the <a href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung-vorbereitung\/\">general preparation<\/a> This involves creating a coupon, obtaining the application password, and providing the webhook URL. It takes approximately five minutes and applies to all shop systems.<\/p>\n            <\/div>\n          <\/div>\n          \n          <!-- Anleitungs-Abschnitte -->\n                    <section class=\"block guide-section et_pb_section\" aria-labelledby=\"sec-0\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-0\" class=\"guide-section-title\">Step 1 \u2014 Create product in the Shopify admin<\/h2>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">One Shopify product per coupon<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Shopify admin \u2192 <strong>Products \u2192 Add product<\/strong>. Enter the title, description, price, and images \u2014 just like with any other product. <strong>\u201e&quot;Save&quot;\"<\/strong> click.<\/p><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n                    <section class=\"block guide-section et_pb_section\" style=\"background: var(--paper);\" aria-labelledby=\"sec-1\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-1\" class=\"guide-section-title\">Step 2 \u2014 Attach coupon ID to the product as a metafield<\/h2>\n                              <p class=\"guide-section-intro\">To ensure Shopify knows which platform coupon belongs to this product, you store the coupon ID as a meta field.<\/p>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Create metafield definition once<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Shopify admin \u2192 <strong>Settings \u2192 Custom data \u2192 Products<\/strong> \u2192 <strong>\u201eAdd definition\"<\/strong>. Fields:<\/p><ul class=\"feature-list\"><li> <strong>Name:<\/strong> <code>Perfect Day Coupon ID<\/code><\/li><li> <strong>Namespace and key:<\/strong> <code>perfectday.coupon_id<\/code><\/li><li> <strong>Type:<\/strong> Integer (one value)<\/li><\/ul><p>Saving \u2014 this definition now applies to all products.<\/p><\/div>\n                                                          <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Enter coupon ID for each product<\/h3>\n                                                              <div class=\"guide-step-body\"><p>In the product editor, scroll down to the block. <strong>\u201e&quot;Metafields&quot;\"<\/strong> \u2192 <strong>\u201e&quot;Perfect Day Coupon ID&quot;\"<\/strong> \u2192 Enter value (e.g. <code>15114<\/code>) \u2192 \u201eSave\". The product is now linked to the platform coupon.<\/p><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n                    <section class=\"block guide-section et_pb_section\" aria-labelledby=\"sec-2\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-2\" class=\"guide-section-title\">Step 3 \u2014 Set up Bridge (one of three options)<\/h2>\n                              <p class=\"guide-section-intro\">This is where Shopify alone isn&#039;t enough. Choose the option that fits your Shopify plan.<\/p>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option A \u2014 Shopify Flow (Plus\/Advanced Plan)<\/h3>\n                                                              <div class=\"guide-step-body\"><p>If you have Shopify Plus or Advanced, <strong>Shopify Flow<\/strong> Already on board. Shopify admin \u2192 <strong>Apps \u2192 Shopify Flow<\/strong> \u2192 <strong>\u201eCreate workflow\"<\/strong> \u2192 Template <strong>\u201e&quot;Order paid&quot;\"<\/strong>. Add a <strong>\u201e&quot;Run code&quot;\"<\/strong>-Action added with the following script:<\/p><\/div>\n                                        <details class=\"code-collapsible reveal\"><summary>View full code \u2014 JavaScript \u00b7 Flow \u201eRun code\"<\/summary><div class=\"code-block\"><div class=\"code-block-bar\"><span class=\"code-lang\">JavaScript Flow \u201eRun code\"<\/span><\/div><pre><code>export default function transform(input) {\n  const order = input.order;\n  const items = order.lineItems.nodes\n    .filter(li =&gt; li.product?.metafield?.value)\n    .map(li =&gt; ({\n      coupon_id: parseInt(li.product.metafield.value, 10),\n      count:     li.quantity\n    }));\n  if (items.length === 0) return { skip: true };\n  return {\n    payload: {\n      shop_order_id: String(order.name),\n      shop_type:     &quot;shopify&quot;,\n      shop_domain:   order.shop?.myshopifyDomain || &quot;shop&quot;,\n      customer: {\n        email:  order.customer?.email || order.email,\n        name:   `${order.customer?.firstName || &#039;&#039;} ${order.customer?.lastName || &#039;&#039;}`.trim(),\n        locale: order.customerLocale || &quot;de&quot;\n      },\n      items,\n      order_total_cents: Math.round(parseFloat(order.totalPriceSet.shopMoney.amount) * 100),\n      currency:          order.totalPriceSet.shopMoney.currencyCode,\n      placed_at:         order.processedAt\n    }\n  };\n}<\/code><\/pre><\/div><\/details>                  <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option A \u2014 Append HTTP Request Action<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Then a <strong>\u201e&quot;Send HTTP request&quot;\"<\/strong>-Action: Method <code>POST<\/code>, URL <code>https:\/\/plattform.deinperfectday.de\/wp-json\/perfectday\/shop\/webhook\/order<\/code>, Body <code>{{ steps.code.payload | json }}<\/code>. Header:<\/p><\/div>\n                                        <div class=\"code-block\"><div class=\"code-block-bar\"><span class=\"code-lang\">HTTP headers<\/span><\/div><pre><code>Content Type: application\/json Authorization: Basic<\/code><\/pre><\/div>                  <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Create Base64 authentication<\/h3>\n                                                              <div class=\"guide-step-body\"><p>You generate the authorization value on Mac\/Linux in the terminal \u2014 the result appears after <code>basic <\/code> in the header. Then the workflow <strong>activate<\/strong>.<\/p><\/div>\n                                        <div class=\"code-block\"><div class=\"code-block-bar\"><span class=\"code-lang\">Bash<\/span><\/div><pre><code>echo -n &quot;YOUR_USERNAME:YOUR APP PASSWORD&quot; | base64<\/code><\/pre><\/div>                  <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option B \u2014 Bridge via Make.com \/ Zapier (any plan)<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Are you using Shopify Basic\/Starter without Flow? Create at <a href=\"https:\/\/make.com\" target=\"_blank\" rel=\"noopener\">make.com<\/a> or Zapier a workflow \u2014 trigger <em>\u201e&quot;Watch Orders (Paid)&quot;\"<\/em>, Action 1 <em>\u201e&quot;Get a Product&quot;\"<\/em> (retrieves the metafield), Action 2 <em>\u201e&quot;HTTP \u2192 Make a request&quot;\"<\/em> Using Basic Auth to the webhook URL. You can get a detailed screen recording upon support request.<\/p><\/div>\n                                                          <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option C \u2014 Custom Cloud Function<\/h3>\n                                                              <div class=\"guide-step-body\"><p>For tech-savvy providers: a custom Cloud Function (Vercel \/ Cloudflare Workers \/ AWS Lambda) that receives the Shopify webhook, retrieves the meta field, and passes it to the Perfect-Day webhook. We will send a complete code template upon support request.<\/p><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n                    <section class=\"block guide-section et_pb_section\" style=\"background: var(--paper);\" aria-labelledby=\"sec-3\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-3\" class=\"guide-section-title\">Step 4 \u2014 Test order<\/h2>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Place and check order<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Place a test order in your Shopify store (use the bogus gateway if you don&#039;t want to trigger a real payment) and mark it as &quot;paid&quot;. Then check:<\/p><ul class=\"feature-list\"><li> Platform back office \u2192 <strong>Perfect Day \u2192 Shop orders<\/strong>: new order with <code>shop_type=shopify<\/code>?<\/li><li> Test customer mailbox: Did you receive the branded email with coupon codes and a print button?<\/li><\/ul><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n          \n                    <!-- Troubleshooting -->\n          <section class=\"block et_pb_section\" aria-labelledby=\"trouble-h\">\n            <div class=\"container guide-container\">\n              <div class=\"section-head reveal\" style=\"margin-bottom: 2rem;\">\n                <span class=\"eyebrow\">If something is stuck<\/span>\n                <h2 id=\"trouble-h\">Troubleshooting.<\/h2>\n              <\/div>\n              <div class=\"faq-list\">\n                                  <details class=\"faq-item reveal\">\n                    <summary>Webhook gives 401 \u2014 authentication required<\/summary>\n                    <div class=\"faq-body\"><p>Incorrect username \u2014 it&#039;s the WordPress username (<code>user_login<\/code>), not the email. Or the application password was revoked or copied incorrectly. If in doubt, generate a new one.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>Webhook returns 403 \u2014 forbidden_coupon<\/summary>\n                    <div class=\"faq-body\"><p>The <code>coupon_id<\/code> The metafield doesn&#039;t exist in your platform&#039;s back office or belongs to another provider. Check under <strong>Vouchers<\/strong>, whether the ID appears there.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>Webhook returns 400 \u2014 validation<\/summary>\n                    <div class=\"faq-body\"><p>Missing or invalid fields in the JSON body. Common: <code>customer.email<\/code> This is missing because the customer ordered as a guest. This needs to be caught in the flow\/workflow.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>The order goes through, but the customer receives no email.<\/summary>\n                    <div class=\"faq-body\"><p>In the platform&#039;s back office, open the order details and check the email status. Red indicates an SMTP problem on our end; please contact support. Otherwise, check the customer&#039;s spam folder.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>The order will be processed twice.<\/summary>\n                    <div class=\"faq-body\"><p>No problem \u2014 the webhook has idempotence protection. You&#039;ll see it on the second attempt. <code>duplicate: true<\/code> In the response, no duplicate codes are generated and no duplicate emails are sent.<\/p><\/div>\n                  <\/details>\n                              <\/div>\n            <\/div>\n          <\/section>\n          \n                    <!-- Setup-Service -->\n          <section class=\"block et_pb_section\" style=\"background: var(--paper);\" aria-labelledby=\"service-h\">\n            <div class=\"container\">\n              <div class=\"guide-service reveal\">\n                <div>\n                  <span class=\"eyebrow\">Setup service<\/span>\n                  <h2 id=\"service-h\" style=\"margin: 0.6rem 0;\">Would you prefer us to set it up for you?<\/h2>\n                  <p>Bridge configuration is the tricky part with Shopify. We&#039;ll set up your Shopify Flow or Make.com workflow completely for you\u2014you just give us temporary access, and we&#039;ll take care of the rest.<\/p>\n                <\/div>\n                <div>\n                  <a class=\"btn btn-primary\" href=\"https:\/\/deinperfectday.de\/en\/support\/?subject=Shop-Anbindung%20Setup-Service%3A%20Shopify\">Request setup service <span class=\"arrow\" aria-hidden=\"true\">\u2192<\/span><\/a>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/section>\n          \n                    <section class=\"block faq et_pb_section\" aria-labelledby=\"faq-h\">\n            <div class=\"container\">\n              <div class=\"section-head reveal\">\n                <span class=\"eyebrow\">Frequently Asked Questions<\/span>\n                <h2 id=\"faq-h\">Still questions?<\/h2>\n              <\/div>\n              <div class=\"faq-list\">\n                                  <details class=\"faq-item reveal\"><summary>Why do I even need a bridge?<\/summary><div class=\"faq-body\">Shopify&#039;s native order webhook doesn&#039;t automatically provide the product meta fields. The bridge (Flow, Make.com, or Cloud Function) retrieves the meta field containing the coupon ID and uses it to construct the correct webhook body.<\/div><\/details>\n                                  <details class=\"faq-item reveal\"><summary>Which option is the simplest?<\/summary><div class=\"faq-body\">Option A (Shopify Flow), if you have Plus or Advanced \u2014 then everything is within Shopify itself. Otherwise, Option B (Make.com): the free plan is sufficient for most shops, no code is needed.<\/div><\/details>\n                                  <details class=\"faq-item reveal\"><summary>Is the app password safe in the Bridge?<\/summary><div class=\"faq-body\">Never share it publicly (no GitHub, no screenshots). Use a separate application password for each shop so you can selectively block individual connections. While the webhook URL is publicly accessible, it rejects any request without valid authentication with a 401 error.<\/div><\/details>\n                              <\/div>\n            <\/div>\n          <\/section>\n          \n          <!-- Bottom-CTA -->\n          <div class=\"container\">\n            <div class=\"big-cta reveal\">\n              <h2>Shop connected \u2014 and now what?<\/h2>\n              <p>Once the webhook is running, all orders will automatically appear in your back office. If you need another connection, each additional shop can be set up in just a few minutes.<\/p>\n              <a class=\"btn btn-primary\" href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung\/\">Go to shop overview <span class=\"arrow\" aria-hidden=\"true\">\u2192<\/span><\/a>\n            <\/div>\n          <\/div>\n\n        <\/main>\n                <div class=\"pd-scope\">\n        <footer aria-labelledby=\"footer-h\">\n          <h2 id=\"footer-h\" class=\"sr-only\">Footer navigation<\/h2>\n          <div class=\"container\">\n            <div class=\"footer-grid\">\n              <div class=\"footer-brand\">\n                <a href=\"https:\/\/deinperfectday.de\/en\/\" class=\"logo logo-image\" aria-label=\"Perfect Day Homepage\">\n                  <img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"Perfect Day \u2014 Enjoy your experience\" width=\"200\" height=\"46\" loading=\"lazy\" decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/logo-hell.png\">\n                <\/a>\n                <p>City vouchers, tickets, voucher books and coupons \u2014 one app for your city. Data protection from Germany, 5 languages.<\/p>\n\n                                  <div class=\"app-badges\" style=\"margin-top: 1rem;\">\n                                          <a href=\"https:\/\/apps.apple.com\/de\/app\/id1525409363\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Apple App Store\">\n                        <img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"Im Apple App Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-app-store.png\">\n                      <\/a>\n                                                              <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=koop.perfect.day&#038;utm_source=emea_Med\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Google Play Store\">\n                        <img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"Im Google Play Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-play-store.png\">\n                      <\/a>\n                                      <\/div>\n                              <\/div>\n              <div class=\"footer-col\">\n                <h3>For providers<\/h3>\n                <ul>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/stadtgutscheine\/\">City vouchers<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/online-ticketing\/\">Online ticketing<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/gutscheinbuecher\/\">Voucher books<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/coupons\/\">Coupons<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/mitarbeiter-benefits\/\">Employee benefits<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung\/\">Shop integration<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/preise\/\">Prices &amp; Models<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-werden\/\">Providers will<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/buchen\/\">Book columns<\/a><\/li>\n                <\/ul>\n              <\/div>\n              <div class=\"footer-col\">\n                <h3>About &amp; Contact<\/h3>\n                <ul>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/app\/\">Discover the app<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/app-versionen\/\">App versions<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/roi-rechner\/\">ROI calculator<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/#prinzip\">concept<\/a><\/li>\n                  <li><a href=\"https:\/\/plattform.deinperfectday.de\/\">Platform login<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/hilfe\/\">Help &amp; Features<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/support\/\">Support<\/a><\/li>\n                <\/ul>\n              <\/div>\n              <div class=\"footer-col\">\n                <h3>Legal<\/h3>\n                <ul>\n                                    <li><a href=\"https:\/\/deinperfectday.de\/en\/impressum\/\">imprint<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutz\/\">Privacy policy (website)<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-agb\/\">Provider Terms and Conditions<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/agb\/terms-of-service\/\">App Terms of Use<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutzerklaerung\/\">App Privacy<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/konto-loeschen\/\">Delete account<\/a><\/li>\n                <\/ul>\n              <\/div>\n            <\/div>\n            <div class=\"footer-bottom\">\n              <span class=\"logo-text\">PERFECT <span class=\"teal\">DAY<\/span><\/span>\n              <span>\u00a9 2026 DigElite \u00b7 deinperfectday.de<\/span>\n            <\/div>\n            <p class=\"footer-cities\">City voucher currently live in: Garrel \u00b7 L\u00f6ningen \u00b7 Twistringen \u2014 more cities to follow in 2026.<\/p>\n            <p class=\"footer-vat\">All prices quoted are exclusive of statutory VAT.<\/p>\n          <\/div>\n        <\/footer>\n        <\/div>\n        <\/div>","protected":false},"excerpt":{"rendered":"<div class=\"pd-scope\">        <div class=\"pd-scope\">\n        <header id=\"site-header\">\n          <div class=\"container nav\">\n            <a href=\"https:\/\/deinperfectday.de\/en\/\" class=\"logo logo-image\" aria-label=\"Perfect Day Homepage\">\n              <img\n                src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/logo-dunkel.png\"\n                alt=\"Perfect Day \u2014 Enjoy your experience\"\n                width=\"220\" height=\"50\"\n                fetchpriority=\"high\" decoding=\"async\">\n            <\/a>\n\n            <button\n              type=\"button\"\n              class=\"mega-toggle\"\n              id=\"megaToggle\"\n              aria-expanded=\"false\"\n              aria-controls=\"mega-menu\"\n              aria-label=\"Open main menu\">\n              <span class=\"mega-toggle-text\">menu<\/span>\n              <span class=\"mega-toggle-icon\" aria-hidden=\"true\">\n                <svg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 7h16M4 12h16M4 17h16\"\/><\/svg>\n              <\/span>\n            <\/button>\n\n            <div class=\"nav-cta\">\n              <a class=\"btn btn-ghost\" href=\"https:\/\/plattform.deinperfectday.de\/\">Register<\/a>\n              <a class=\"btn btn-primary\" href=\"https:\/\/deinperfectday.de\/en\/anbieter-werden\/\">Become a provider now <span class=\"arrow\" aria-hidden=\"true\">\u2192<\/span><\/a>\n            <\/div>\n          <\/div>\n\n          <!-- ============== MEGA MENU DRAWER ============== -->\n          <div class=\"mega-menu\" id=\"mega-menu\" hidden role=\"dialog\" aria-modal=\"false\" aria-label=\"Main Menu\">\n            <div class=\"container mega-grid\">\n\n              <!-- Spalte 1: F\u00fcr Anbieter -->\n              <div class=\"mega-col\">\n                <h3 class=\"mega-col-title\">For providers<\/h3>\n                <ul class=\"mega-list\">\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/stadtgutscheine\/\">\n                        <strong>City vouchers<\/strong>\n                        <span>Multi-provider vouchers, partial redemption, remaining balance automatically credited.<\/span>\n                      <\/a>\n                    <\/li>\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/online-ticketing\/\">\n                        <strong>Online ticketing<\/strong>\n                        <span>\u20ac0.49 per ticket. No booking fee for your guests.<\/span>\n                      <\/a>\n                    <\/li>\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/gutscheinbuecher\/\">\n                        <strong>Voucher books<\/strong>\n                        <span>Digital, 5 languages, instant updates. No printing costs.<\/span>\n                      <\/a>\n                    <\/li>\n                                      <li>\n                      <a href=\"https:\/\/deinperfectday.de\/en\/coupons\/\">\n                        <strong>Coupons<\/strong>\n                        <span>From \u20ac9.90\/month. Three tiers, fixed price, can be cancelled monthly.<\/span>\n                      <\/a>\n                    <\/li>\n                                    <li class=\"mega-list-divider\">\n                    <a href=\"https:\/\/deinperfectday.de\/en\/preise\/\">\n                      <strong>Prices &amp; Models<\/strong>\n                      <span>Transparent terms and conditions, 10 % bundle discount for three pillars.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/buchen\/\">\n                      <strong>Book columns<\/strong>\n                      <span>Booking assistant: Select columns and make a binding booking.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/anbieter-werden\/\" class=\"mega-link-highlight\">\n                      <strong>Providers will be \u2192<\/strong>\n                      <span>Register for free, get a quick response.<\/span>\n                    <\/a>\n                  <\/li>\n                <\/ul>\n              <\/div>\n\n              <!-- Spalte 2: Entdecken & Konzept -->\n              <div class=\"mega-col\">\n                <h3 class=\"mega-col-title\">Discover<\/h3>\n                <ul class=\"mega-list\">\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/app\/\">\n                      <strong>Discover the app<\/strong>\n                      <span>How the end-user app works.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/roi-rechner\/\">\n                      <strong>ROI calculator<\/strong>\n                      <span>Platform costs per year in 10 seconds.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/app-versionen\/\">\n                      <strong>App versions<\/strong>\n                      <span>What&#039;s new in the app \u2014 the version history.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/#prinzip\">\n                      <strong>The concept<\/strong>\n                      <span>Cross-pollination of the four pillars explained.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/anbieter\/\">\n                      <strong>Provider Hub<\/strong>\n                      <span>Overview of all pillars with competitive comparison.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/mitarbeiter-benefits\/\">\n                      <strong>Employee benefits<\/strong>\n                      <span>Corporate subscriptions: City vouchers automatically distributed to the team.<\/span>\n                    <\/a>\n                  <\/li>\n                <\/ul>\n\n                <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">City voucher live in<\/h3>\n                <p class=\"mega-cities\">\n                  Garrel \u00b7 L\u00f6ningen \u00b7 Twistringen<br>\n                  <small>More cities will follow in 2026.<\/small>\n                <\/p>\n              <\/div>\n\n              <!-- Spalte 3: Service + Account -->\n              <div class=\"mega-col\">\n                <h3 class=\"mega-col-title\">service<\/h3>\n                <ul class=\"mega-list\">\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/hilfe\/\">\n                      <strong>Help &amp; Features<\/strong>\n                      <span>All app functions explained step by step.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/deinperfectday.de\/en\/support\/\">\n                      <strong>Support<\/strong>\n                      <span>Help for suppliers and customers.<\/span>\n                    <\/a>\n                  <\/li>\n                  <li>\n                    <a href=\"https:\/\/plattform.deinperfectday.de\/\">\n                      <strong>Platform login<\/strong>\n                      <span>For active providers with an account.<\/span>\n                    <\/a>\n                  <\/li>\n                <\/ul>\n\n                                  <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">Language<\/h3>\n                  <div class=\"mega-lang-switcher\"><div class=\"trp-shortcode-switcher__wrapper\"\r\n     style=\"--bg:#ffffff;--bg-hover:#0000000d;--text:#143852;--text-hover:#1d2327;--border:1px solid #1438521a;--border-width:1px;--border-color:#1438521a;--border-radius:5px;--flag-radius:2px;--flag-size:18px;--aspect-ratio:4\/3;--font-size:14px;--transition-duration:0.2s\"\r\n     role=\"group\"\r\n     data-open-mode=\"hover\">\r\n\r\n    \r\n        <!-- ANCHOR (in-flow only; sizing\/borders; inert) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-anchor trp-open-on-hover\"\r\n             aria-hidden=\"true\"\r\n             inert\r\n data-no-translation>\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <a class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"English\"><img decoding=\"async\" src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/en_GB.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/><span class=\"trp-language-item-name\">English<\/span><\/a>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewbox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n            <\/div>\r\n\r\n        <!-- OVERLAY (positioned; interactive surface) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-overlay trp-open-on-hover\"\r\n             role=\"navigation\"\r\n             aria-label=\"Website language selector\"\r\n             data-no-translation\r\n>\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <div class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation role=\"button\" aria-expanded=\"false\" tabindex=\"0\" aria-label=\"Change language\" aria-controls=\"trp-shortcode-dropdown-6a28b1de0535c\"><img decoding=\"async\" src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/en_GB.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/><span class=\"trp-language-item-name\">English<\/span><\/div>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewbox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n    \r\n            <div class=\"trp-switcher-dropdown-list\"\r\n                 id=\"trp-shortcode-dropdown-6a28b1de0535c\"\r\n                 role=\"group\"\r\n                 aria-label=\"Available languages\"\r\n                 hidden\r\n inert\r\n>\r\n                                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"German\">\r\n                            <img decoding=\"async\" src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/de_DE.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/>                                                            <span class=\"trp-language-item-name\" data-no-translation>German<\/span>\r\n                                                                                <\/a>\r\n                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"Spanish\">\r\n                            <img decoding=\"async\" src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/es_ES.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/>                                                            <span class=\"trp-language-item-name\" data-no-translation>Spanish<\/span>\r\n                                                                                <\/a>\r\n                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"Russian\">\r\n                            <img decoding=\"async\" src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/ru_RU.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/>                                                            <span class=\"trp-language-item-name\" data-no-translation>Russian<\/span>\r\n                                                                                <\/a>\r\n                                            <a class=\"trp-language-item\" href=\"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\" title=\"Turkish\">\r\n                            <img decoding=\"async\" src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/tr_TR.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/>                                                            <span class=\"trp-language-item-name\" data-no-translation>Turkish<\/span>\r\n                                                                                <\/a>\r\n                                                <\/div>\r\n        <\/div>\r\n\r\n    <\/div>\r\n<\/div>\n                \n                <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">Download the app<\/h3>\n                                  <div class=\"app-badges mega-app-badges\">\n                                          <a href=\"https:\/\/apps.apple.com\/de\/app\/id1525409363\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Apple App Store\">\n                        <img src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-app-store.png\" alt=\"Im Apple App Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\">\n                      <\/a>\n                                                              <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=koop.perfect.day&#038;utm_source=emea_Med\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Google Play Store\">\n                        <img src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-play-store.png\" alt=\"Im Google Play Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\">\n                      <\/a>\n                                      <\/div>\n                \n                <h3 class=\"mega-col-title\" style=\"margin-top: 1.6rem;\">Legal<\/h3>\n                <ul class=\"mega-list mega-list-compact\">\n                                    <li><a href=\"https:\/\/deinperfectday.de\/en\/impressum\/\">imprint<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutz\/\">Privacy policy (website)<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-agb\/\">Provider Terms and Conditions<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/agb\/terms-of-service\/\">App Terms of Use<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutzerklaerung\/\">App Privacy<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/konto-loeschen\/\">Delete account<\/a><\/li>\n                <\/ul>\n              <\/div>\n\n            <\/div>\n\n            <button type=\"button\" class=\"mega-close\" id=\"megaClose\" aria-label=\"Close menu\">\n              <svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" aria-hidden=\"true\"><path d=\"M6 6l12 12M6 18L18 6\"\/><\/svg>\n            <\/button>\n          <\/div>\n          <!-- End Mega Menu -->\n\n        <\/header>\n        <\/div>\n                <main id=\"main\">\n\n          <nav class=\"container breadcrumb\" aria-label=\"Breadcrumb navigation\">\n            <ol>\n              <li><a href=\"https:\/\/deinperfectday.de\/en\/\">Homepage<\/a><\/li>\n              <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter\/\">For providers<\/a><\/li>\n              <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung\/\">Shop integration<\/a><\/li>\n              <li><span aria-current=\"page\">Shopify<\/span><\/li>\n            <\/ol>\n          <\/nav>\n\n          <!-- Hero -->\n          <section class=\"subhero subhero-compact et_pb_section\" aria-label=\"introduction\">\n            <div class=\"container\">\n              <div class=\"reveal subhero-center\">\n                <span class=\"eyebrow\"><span class=\"pulse\" aria-hidden=\"true\"><\/span> &nbsp;Shopify \u00b7 15\u201320 min \u00b7 medium<\/span>\n                <h1>Integrate Perfect Day into Shopify.<\/h1>\n                <p class=\"subhero-sub\">Sell your Perfect Day coupons through your Shopify store. The only slightly tricky part: Shopify&#039;s native webhook doesn&#039;t include metafields\u2014you&#039;ll need a small bridge for that. We&#039;ll show you three ways, from the simplest to the most flexible.<\/p>\n              <\/div>\n            <\/div>\n          <\/section>\n\n                    <!-- Voraussetzungs-Callout -->\n          <div class=\"container\">\n            <div class=\"guide-callout reveal\">\n              <svg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 16v-4M12 8h.01\"\/><\/svg>\n              <p><strong>Required beforehand:<\/strong> Go once the <a href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung-vorbereitung\/\">general preparation<\/a> This involves creating a coupon, obtaining the application password, and providing the webhook URL. It takes approximately five minutes and applies to all shop systems.<\/p>\n            <\/div>\n          <\/div>\n          \n          <!-- Anleitungs-Abschnitte -->\n                    <section class=\"block guide-section et_pb_section\" aria-labelledby=\"sec-0\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-0\" class=\"guide-section-title\">Step 1 \u2014 Create product in the Shopify admin<\/h2>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">One Shopify product per coupon<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Shopify admin \u2192 <strong>Products \u2192 Add product<\/strong>. Enter the title, description, price, and images \u2014 just like with any other product. <strong>\u201e&quot;Save&quot;\"<\/strong> click.<\/p><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n                    <section class=\"block guide-section et_pb_section\" style=\"background: var(--paper);\" aria-labelledby=\"sec-1\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-1\" class=\"guide-section-title\">Step 2 \u2014 Attach coupon ID to the product as a metafield<\/h2>\n                              <p class=\"guide-section-intro\">To ensure Shopify knows which platform coupon belongs to this product, you store the coupon ID as a meta field.<\/p>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Create metafield definition once<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Shopify admin \u2192 <strong>Settings \u2192 Custom data \u2192 Products<\/strong> \u2192 <strong>\u201eAdd definition\"<\/strong>. Fields:<\/p><ul class=\"feature-list\"><li> <strong>Name:<\/strong> <code>Perfect Day Coupon ID<\/code><\/li><li> <strong>Namespace and key:<\/strong> <code>perfectday.coupon_id<\/code><\/li><li> <strong>Type:<\/strong> Integer (one value)<\/li><\/ul><p>Saving \u2014 this definition now applies to all products.<\/p><\/div>\n                                                          <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Enter coupon ID for each product<\/h3>\n                                                              <div class=\"guide-step-body\"><p>In the product editor, scroll down to the block. <strong>\u201e&quot;Metafields&quot;\"<\/strong> \u2192 <strong>\u201e&quot;Perfect Day Coupon ID&quot;\"<\/strong> \u2192 Enter value (e.g. <code>15114<\/code>) \u2192 \u201eSave\". The product is now linked to the platform coupon.<\/p><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n                    <section class=\"block guide-section et_pb_section\" aria-labelledby=\"sec-2\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-2\" class=\"guide-section-title\">Step 3 \u2014 Set up Bridge (one of three options)<\/h2>\n                              <p class=\"guide-section-intro\">This is where Shopify alone isn&#039;t enough. Choose the option that fits your Shopify plan.<\/p>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option A \u2014 Shopify Flow (Plus\/Advanced Plan)<\/h3>\n                                                              <div class=\"guide-step-body\"><p>If you have Shopify Plus or Advanced, <strong>Shopify Flow<\/strong> Already on board. Shopify admin \u2192 <strong>Apps \u2192 Shopify Flow<\/strong> \u2192 <strong>\u201eCreate workflow\"<\/strong> \u2192 Template <strong>\u201e&quot;Order paid&quot;\"<\/strong>. Add a <strong>\u201e&quot;Run code&quot;\"<\/strong>-Action added with the following script:<\/p><\/div>\n                                        <details class=\"code-collapsible reveal\"><summary>View full code \u2014 JavaScript \u00b7 Flow \u201eRun code\"<\/summary><div class=\"code-block\"><div class=\"code-block-bar\"><span class=\"code-lang\">JavaScript Flow \u201eRun code\"<\/span><\/div><pre><code>export default function transform(input) {\n  const order = input.order;\n  const items = order.lineItems.nodes\n    .filter(li =&gt; li.product?.metafield?.value)\n    .map(li =&gt; ({\n      coupon_id: parseInt(li.product.metafield.value, 10),\n      count:     li.quantity\n    }));\n  if (items.length === 0) return { skip: true };\n  return {\n    payload: {\n      shop_order_id: String(order.name),\n      shop_type:     &quot;shopify&quot;,\n      shop_domain:   order.shop?.myshopifyDomain || &quot;shop&quot;,\n      customer: {\n        email:  order.customer?.email || order.email,\n        name:   `${order.customer?.firstName || &#039;&#039;} ${order.customer?.lastName || &#039;&#039;}`.trim(),\n        locale: order.customerLocale || &quot;de&quot;\n      },\n      items,\n      order_total_cents: Math.round(parseFloat(order.totalPriceSet.shopMoney.amount) * 100),\n      currency:          order.totalPriceSet.shopMoney.currencyCode,\n      placed_at:         order.processedAt\n    }\n  };\n}<\/code><\/pre><\/div><\/details>                  <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option A \u2014 Append HTTP Request Action<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Then a <strong>\u201e&quot;Send HTTP request&quot;\"<\/strong>-Action: Method <code>POST<\/code>, URL <code>https:\/\/plattform.deinperfectday.de\/wp-json\/perfectday\/shop\/webhook\/order<\/code>, Body <code>{{ steps.code.payload | json }}<\/code>. Header:<\/p><\/div>\n                                        <div class=\"code-block\"><div class=\"code-block-bar\"><span class=\"code-lang\">HTTP headers<\/span><\/div><pre><code>Content Type: application\/json Authorization: Basic<\/code><\/pre><\/div>                  <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Create Base64 authentication<\/h3>\n                                                              <div class=\"guide-step-body\"><p>You generate the authorization value on Mac\/Linux in the terminal \u2014 the result appears after <code>basic <\/code> in the header. Then the workflow <strong>activate<\/strong>.<\/p><\/div>\n                                        <div class=\"code-block\"><div class=\"code-block-bar\"><span class=\"code-lang\">Bash<\/span><\/div><pre><code>echo -n &quot;YOUR_USERNAME:YOUR APP PASSWORD&quot; | base64<\/code><\/pre><\/div>                  <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option B \u2014 Bridge via Make.com \/ Zapier (any plan)<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Are you using Shopify Basic\/Starter without Flow? Create at <a href=\"https:\/\/make.com\" target=\"_blank\" rel=\"noopener\">make.com<\/a> or Zapier a workflow \u2014 trigger <em>\u201e&quot;Watch Orders (Paid)&quot;\"<\/em>, Action 1 <em>\u201e&quot;Get a Product&quot;\"<\/em> (retrieves the metafield), Action 2 <em>\u201e&quot;HTTP \u2192 Make a request&quot;\"<\/em> Using Basic Auth to the webhook URL. You can get a detailed screen recording upon support request.<\/p><\/div>\n                                                          <\/li>\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Option C \u2014 Custom Cloud Function<\/h3>\n                                                              <div class=\"guide-step-body\"><p>For tech-savvy providers: a custom Cloud Function (Vercel \/ Cloudflare Workers \/ AWS Lambda) that receives the Shopify webhook, retrieves the meta field, and passes it to the Perfect-Day webhook. We will send a complete code template upon support request.<\/p><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n                    <section class=\"block guide-section et_pb_section\" style=\"background: var(--paper);\" aria-labelledby=\"sec-3\">\n            <div class=\"container guide-container\">\n              <h2 id=\"sec-3\" class=\"guide-section-title\">Step 4 \u2014 Test order<\/h2>\n                                          <ol class=\"guide-steps\">\n                                  <li class=\"guide-step reveal\">\n                                          <h3 class=\"guide-step-title\">Place and check order<\/h3>\n                                                              <div class=\"guide-step-body\"><p>Place a test order in your Shopify store (use the bogus gateway if you don&#039;t want to trigger a real payment) and mark it as &quot;paid&quot;. Then check:<\/p><ul class=\"feature-list\"><li> Platform back office \u2192 <strong>Perfect Day \u2192 Shop orders<\/strong>: new order with <code>shop_type=shopify<\/code>?<\/li><li> Test customer mailbox: Did you receive the branded email with coupon codes and a print button?<\/li><\/ul><\/div>\n                                                          <\/li>\n                              <\/ol>\n                          <\/div>\n          <\/section>\n          \n                    <!-- Troubleshooting -->\n          <section class=\"block et_pb_section\" aria-labelledby=\"trouble-h\">\n            <div class=\"container guide-container\">\n              <div class=\"section-head reveal\" style=\"margin-bottom: 2rem;\">\n                <span class=\"eyebrow\">If something is stuck<\/span>\n                <h2 id=\"trouble-h\">Troubleshooting.<\/h2>\n              <\/div>\n              <div class=\"faq-list\">\n                                  <details class=\"faq-item reveal\">\n                    <summary>Webhook gives 401 \u2014 authentication required<\/summary>\n                    <div class=\"faq-body\"><p>Incorrect username \u2014 it&#039;s the WordPress username (<code>user_login<\/code>), not the email. Or the application password was revoked or copied incorrectly. If in doubt, generate a new one.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>Webhook returns 403 \u2014 forbidden_coupon<\/summary>\n                    <div class=\"faq-body\"><p>The <code>coupon_id<\/code> The metafield doesn&#039;t exist in your platform&#039;s back office or belongs to another provider. Check under <strong>Vouchers<\/strong>, whether the ID appears there.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>Webhook returns 400 \u2014 validation<\/summary>\n                    <div class=\"faq-body\"><p>Missing or invalid fields in the JSON body. Common: <code>customer.email<\/code> This is missing because the customer ordered as a guest. This needs to be caught in the flow\/workflow.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>The order goes through, but the customer receives no email.<\/summary>\n                    <div class=\"faq-body\"><p>In the platform&#039;s back office, open the order details and check the email status. Red indicates an SMTP problem on our end; please contact support. Otherwise, check the customer&#039;s spam folder.<\/p><\/div>\n                  <\/details>\n                                  <details class=\"faq-item reveal\">\n                    <summary>The order will be processed twice.<\/summary>\n                    <div class=\"faq-body\"><p>No problem \u2014 the webhook has idempotence protection. You&#039;ll see it on the second attempt. <code>duplicate: true<\/code> In the response, no duplicate codes are generated and no duplicate emails are sent.<\/p><\/div>\n                  <\/details>\n                              <\/div>\n            <\/div>\n          <\/section>\n          \n                    <!-- Setup-Service -->\n          <section class=\"block et_pb_section\" style=\"background: var(--paper);\" aria-labelledby=\"service-h\">\n            <div class=\"container\">\n              <div class=\"guide-service reveal\">\n                <div>\n                  <span class=\"eyebrow\">Setup service<\/span>\n                  <h2 id=\"service-h\" style=\"margin: 0.6rem 0;\">Would you prefer us to set it up for you?<\/h2>\n                  <p>Bridge configuration is the tricky part with Shopify. We&#039;ll set up your Shopify Flow or Make.com workflow completely for you\u2014you just give us temporary access, and we&#039;ll take care of the rest.<\/p>\n                <\/div>\n                <div>\n                  <a class=\"btn btn-primary\" href=\"https:\/\/deinperfectday.de\/en\/support\/?subject=Shop-Anbindung%20Setup-Service%3A%20Shopify\">Request setup service <span class=\"arrow\" aria-hidden=\"true\">\u2192<\/span><\/a>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/section>\n          \n                    <section class=\"block faq et_pb_section\" aria-labelledby=\"faq-h\">\n            <div class=\"container\">\n              <div class=\"section-head reveal\">\n                <span class=\"eyebrow\">Frequently Asked Questions<\/span>\n                <h2 id=\"faq-h\">Still questions?<\/h2>\n              <\/div>\n              <div class=\"faq-list\">\n                                  <details class=\"faq-item reveal\"><summary>Why do I even need a bridge?<\/summary><div class=\"faq-body\">Shopify&#039;s native order webhook doesn&#039;t automatically provide the product meta fields. The bridge (Flow, Make.com, or Cloud Function) retrieves the meta field containing the coupon ID and uses it to construct the correct webhook body.<\/div><\/details>\n                                  <details class=\"faq-item reveal\"><summary>Which option is the simplest?<\/summary><div class=\"faq-body\">Option A (Shopify Flow), if you have Plus or Advanced \u2014 then everything is within Shopify itself. Otherwise, Option B (Make.com): the free plan is sufficient for most shops, no code is needed.<\/div><\/details>\n                                  <details class=\"faq-item reveal\"><summary>Is the app password safe in the Bridge?<\/summary><div class=\"faq-body\">Never share it publicly (no GitHub, no screenshots). Use a separate application password for each shop so you can selectively block individual connections. While the webhook URL is publicly accessible, it rejects any request without valid authentication with a 401 error.<\/div><\/details>\n                              <\/div>\n            <\/div>\n          <\/section>\n          \n          <!-- Bottom-CTA -->\n          <div class=\"container\">\n            <div class=\"big-cta reveal\">\n              <h2>Shop connected \u2014 and now what?<\/h2>\n              <p>Once the webhook is running, all orders will automatically appear in your back office. If you need another connection, each additional shop can be set up in just a few minutes.<\/p>\n              <a class=\"btn btn-primary\" href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung\/\">Go to shop overview <span class=\"arrow\" aria-hidden=\"true\">\u2192<\/span><\/a>\n            <\/div>\n          <\/div>\n\n        <\/main>\n                <div class=\"pd-scope\">\n        <footer aria-labelledby=\"footer-h\">\n          <h2 id=\"footer-h\" class=\"sr-only\">Footer navigation<\/h2>\n          <div class=\"container\">\n            <div class=\"footer-grid\">\n              <div class=\"footer-brand\">\n                <a href=\"https:\/\/deinperfectday.de\/en\/\" class=\"logo logo-image\" aria-label=\"Perfect Day Homepage\">\n                  <img\n                    src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/logo-hell.png\"\n                    alt=\"Perfect Day \u2014 Enjoy your experience\"\n                    width=\"200\" height=\"46\"\n                    loading=\"lazy\" decoding=\"async\">\n                <\/a>\n                <p>City vouchers, tickets, voucher books and coupons \u2014 one app for your city. Data protection from Germany, 5 languages.<\/p>\n\n                                  <div class=\"app-badges\" style=\"margin-top: 1rem;\">\n                                          <a href=\"https:\/\/apps.apple.com\/de\/app\/id1525409363\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Apple App Store\">\n                        <img src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-app-store.png\" alt=\"Im Apple App Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\">\n                      <\/a>\n                                                              <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=koop.perfect.day&#038;utm_source=emea_Med\" class=\"app-badge\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open Perfect Day in the Google Play Store\">\n                        <img src=\"https:\/\/deinperfectday.de\/wp-content\/plugins\/perfectday-pages-plugin\/assets\/images\/icons\/badge-play-store.png\" alt=\"Im Google Play Store laden\" width=\"135\" height=\"40\" loading=\"lazy\" decoding=\"async\">\n                      <\/a>\n                                      <\/div>\n                              <\/div>\n              <div class=\"footer-col\">\n                <h3>For providers<\/h3>\n                <ul>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/stadtgutscheine\/\">City vouchers<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/online-ticketing\/\">Online ticketing<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/gutscheinbuecher\/\">Voucher books<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/coupons\/\">Coupons<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/mitarbeiter-benefits\/\">Employee benefits<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-shop-anbindung\/\">Shop integration<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/preise\/\">Prices &amp; Models<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-werden\/\">Providers will<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/buchen\/\">Book columns<\/a><\/li>\n                <\/ul>\n              <\/div>\n              <div class=\"footer-col\">\n                <h3>About &amp; Contact<\/h3>\n                <ul>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/app\/\">Discover the app<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/app-versionen\/\">App versions<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/roi-rechner\/\">ROI calculator<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/#prinzip\">concept<\/a><\/li>\n                  <li><a href=\"https:\/\/plattform.deinperfectday.de\/\">Platform login<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/hilfe\/\">Help &amp; Features<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/support\/\">Support<\/a><\/li>\n                <\/ul>\n              <\/div>\n              <div class=\"footer-col\">\n                <h3>Legal<\/h3>\n                <ul>\n                                    <li><a href=\"https:\/\/deinperfectday.de\/en\/impressum\/\">imprint<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutz\/\">Privacy policy (website)<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/anbieter-agb\/\">Provider Terms and Conditions<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/agb\/terms-of-service\/\">App Terms of Use<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/datenschutzerklaerung\/\">App Privacy<\/a><\/li>\n                  <li><a href=\"https:\/\/deinperfectday.de\/en\/konto-loeschen\/\">Delete account<\/a><\/li>\n                <\/ul>\n              <\/div>\n            <\/div>\n            <div class=\"footer-bottom\">\n              <span class=\"logo-text\">PERFECT <span class=\"teal\">DAY<\/span><\/span>\n              <span>\u00a9 2026 DigElite \u00b7 deinperfectday.de<\/span>\n            <\/div>\n            <p class=\"footer-cities\">City voucher currently live in: Garrel \u00b7 L\u00f6ningen \u00b7 Twistringen \u2014 more cities to follow in 2026.<\/p>\n            <p class=\"footer-vat\">All prices quoted are exclusive of statutory VAT.<\/p>\n          <\/div>\n        <\/footer>\n        <\/div>\n        <\/div>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-template-blank.php","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-233299","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/comments?post=233299"}],"version-history":[{"count":0,"href":"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/pages\/233299\/revisions"}],"wp:attachment":[{"href":"https:\/\/deinperfectday.de\/en\/wp-json\/wp\/v2\/media?parent=233299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}