dynamic generator of voucher code card
parent
fbacdadd73
commit
c84e92ed1e
|
@ -47,6 +47,7 @@
|
||||||
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
||||||
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
||||||
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (Glänzend)",
|
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (Glänzend)",
|
||||||
|
"#36688 Ruby die Schlange, FARBE, Grün/Blau/Orange, (Glänzend)",
|
||||||
"#21433 Bruno der Dino, FARBE, Grün/Blau/Orange, (Glänzend)",
|
"#21433 Bruno der Dino, FARBE, Grün/Blau/Orange, (Glänzend)",
|
||||||
"#57953 Bruno der Dino, FARBE, Rot/Blau, (Glänzend)",
|
"#57953 Bruno der Dino, FARBE, Rot/Blau, (Glänzend)",
|
||||||
"#90578 Bruno der Dino, FARBE, Gold, (Glänzend)",
|
"#90578 Bruno der Dino, FARBE, Gold, (Glänzend)",
|
||||||
|
@ -78,7 +79,11 @@
|
||||||
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
||||||
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
||||||
"#55172 Sharky der Hai, FARBE, Grau, ",
|
"#55172 Sharky der Hai, FARBE, Grau, ",
|
||||||
"#10971 Chibi die Ratte, FARBE, Grau, "
|
"#10971 Chibi die Ratte, FARBE, Grau, ",
|
||||||
|
"#84712 Personalisiertes Namensschild, TYP, Einfarbig, ",
|
||||||
|
"#17200 Personalisiertes Namensschild, TYP, Zweifarbig, ",
|
||||||
|
"#97548 Personalisiertes Namensschild, TYP, Dreifarbig, ",
|
||||||
|
"#68859 Personalisiertes Namensschild mit Hintergrund, , , "
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -34,7 +34,8 @@
|
||||||
"26 Beige, Matte PLA, OVERTURE",
|
"26 Beige, Matte PLA, OVERTURE",
|
||||||
"27 Marineblau, Matte PLA, OVERTURE",
|
"27 Marineblau, Matte PLA, OVERTURE",
|
||||||
"28 Gelb, Matte PLA, OVERTURE",
|
"28 Gelb, Matte PLA, OVERTURE",
|
||||||
"29 Rot/Schwarz, Dual-Color Silk PLA, AMOLEN"
|
"29 Rot/Schwarz, Dual-Color Silk PLA, AMOLEN",
|
||||||
|
"30 Hellgrün, Matte PLA, OVERTURE"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
||||||
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
||||||
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (Glänzend)",
|
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (Glänzend)",
|
||||||
|
"#36688 Ruby die Schlange, FARBE, Grün/Blau/Orange, (Glänzend)",
|
||||||
"#21433 Bruno der Dino, FARBE, Grün/Blau/Orange, (Glänzend)",
|
"#21433 Bruno der Dino, FARBE, Grün/Blau/Orange, (Glänzend)",
|
||||||
"#57953 Bruno der Dino, FARBE, Rot/Blau, (Glänzend)",
|
"#57953 Bruno der Dino, FARBE, Rot/Blau, (Glänzend)",
|
||||||
"#90578 Bruno der Dino, FARBE, Gold, (Glänzend)",
|
"#90578 Bruno der Dino, FARBE, Gold, (Glänzend)",
|
||||||
|
@ -58,7 +59,11 @@
|
||||||
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
||||||
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
||||||
"#55172 Sharky der Hai, FARBE, Grau, ",
|
"#55172 Sharky der Hai, FARBE, Grau, ",
|
||||||
"#10971 Chibi die Ratte, FARBE, Grau, "
|
"#10971 Chibi die Ratte, FARBE, Grau, ",
|
||||||
|
"#84712 Personalisiertes Namensschild, TYP, Einfarbig, ",
|
||||||
|
"#17200 Personalisiertes Namensschild, TYP, Zweifarbig, ",
|
||||||
|
"#97548 Personalisiertes Namensschild, TYP, Dreifarbig, ",
|
||||||
|
"#68859 Personalisiertes Namensschild mit Hintergrund, , , "
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,209 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="de">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>Versandlabel</title>
|
|
||||||
<style>
|
|
||||||
:root {
|
|
||||||
--container-width: 580mm;
|
|
||||||
--container-height: 102mm;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "Outfit";
|
|
||||||
src: url("../../groupsData/static/Outfit-VariableFont_wght.ttf");
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
transform: scale(2);
|
|
||||||
transform-origin: 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
body,
|
|
||||||
html {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
font-size: 14px;
|
|
||||||
width: var(--container-width);
|
|
||||||
height: var(--container-height);
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
font-family: "Outfit";
|
|
||||||
font-size: 17.5px;
|
|
||||||
color: black;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.large-container {
|
|
||||||
width: var(--container-width);
|
|
||||||
/* Breite des Containers */
|
|
||||||
height: var(--container-height);
|
|
||||||
/* Höhe des Containers */
|
|
||||||
background-color: #80808000;
|
|
||||||
/* Hintergrundfarbe */
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
/* Höhe des Containers */
|
|
||||||
height: var(--container-height);
|
|
||||||
}
|
|
||||||
|
|
||||||
.background {
|
|
||||||
width: var(--container-width);
|
|
||||||
height: var(--container-height);
|
|
||||||
overflow: hidden;
|
|
||||||
position: absolute;
|
|
||||||
background-color: #fff;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
gap: 0mm;
|
|
||||||
z-index: -10;
|
|
||||||
opacity: 0.25;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bgRotate {
|
|
||||||
transform: rotate(-15deg) translate(0, 0mm);
|
|
||||||
}
|
|
||||||
|
|
||||||
.social_media {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
flex-direction: column;
|
|
||||||
width: 100%;
|
|
||||||
gap: 2mm;
|
|
||||||
}
|
|
||||||
|
|
||||||
.insta_logo,
|
|
||||||
.tiktok_logo {
|
|
||||||
width: 8mm;
|
|
||||||
}
|
|
||||||
|
|
||||||
.social_media_area {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
width: 100%;
|
|
||||||
gap: 15mm;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bgContainer {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
gap: 50mm;
|
|
||||||
flex-direction: column;
|
|
||||||
width: 80mm;
|
|
||||||
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.myCustomText {
|
|
||||||
font-size: 20px;
|
|
||||||
max-width: 80mm;
|
|
||||||
white-space: nowrap;
|
|
||||||
/* Prevents text wrapping */
|
|
||||||
overflow: hidden;
|
|
||||||
/* Optional: hides text that exceeds max-width */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* Optional: adds '...' for overflowed text */
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="background">
|
|
||||||
<div class="bgRotate">
|
|
||||||
<div class="bgContainer">
|
|
||||||
<div class="social_media_area">
|
|
||||||
<div class="social_media">
|
|
||||||
<p>Folge uns</p>
|
|
||||||
<img class="insta_logo" src="../../groupsData/shx-order-package-label/instagram-logo.png" />
|
|
||||||
<p>shinnex.official</p>
|
|
||||||
</div>
|
|
||||||
<div class="social_media">
|
|
||||||
<p>Folge uns</p>
|
|
||||||
<img class="tiktok_logo" src="../../groupsData/shx-order-package-label/tiktok-logo.png" />
|
|
||||||
<p>shinnex.official</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="myCustomText">Von SHINNEX für dich</p>
|
|
||||||
|
|
||||||
<div class="social_media_area">
|
|
||||||
<div class="social_media">
|
|
||||||
<p>Folge uns</p>
|
|
||||||
<img class="tiktok_logo" src="../../groupsData/shx-order-package-label/tiktok-logo.png" />
|
|
||||||
<p>shinnex.official</p>
|
|
||||||
</div>
|
|
||||||
<div class="social_media">
|
|
||||||
<p>Folge uns</p>
|
|
||||||
<img class="insta_logo" src="../../groupsData/shx-order-package-label/instagram-logo.png" />
|
|
||||||
<p>shinnex.official</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="large-container">
|
|
||||||
<div class="container" style="width: 20mm; background-color: rgba(255, 166, 0, 0)"></div>
|
|
||||||
|
|
||||||
<img src="../../groupsData/shx-order-package-label/scissors.svg" />
|
|
||||||
|
|
||||||
<div class="container" style="
|
|
||||||
width: 240mm;
|
|
||||||
background-color: rgba(0, 0, 255, 0);
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
">
|
|
||||||
<img src="../../groupsData/shx-order-package-label/stempel.png" width="400"
|
|
||||||
style="filter: drop-shadow(0 0 2mm #fff)" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<img src="../../groupsData/shx-order-package-label/scissors.svg" />
|
|
||||||
|
|
||||||
<div class="container" style="width: 40mm; background-color: rgba(255, 192, 203, 0)"></div>
|
|
||||||
|
|
||||||
<div class="container" style="
|
|
||||||
width: 240mm;
|
|
||||||
background-color: rgba(128, 0, 128, 0);
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
">
|
|
||||||
<img src="label.png" style="height: 100%; box-shadow: 0 0 15mm 15mm #fff" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container" style="width: 40mm; background-color: rgba(255, 255, 0, 0)"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const name = "{{CUSTOMER_FIRST_NAME}}";
|
|
||||||
|
|
||||||
document.querySelector(".myCustomText").innerHTML =
|
|
||||||
`Von SHINNEX für ` + name;
|
|
||||||
|
|
||||||
let bg = document.querySelector(".background");
|
|
||||||
|
|
||||||
let bgRotate = document.querySelector(".background .bgRotate");
|
|
||||||
|
|
||||||
// clone bgRotate often enough to fill the screen with for loop
|
|
||||||
for (let i = 0; i < 20; i++) {
|
|
||||||
let clone = bgRotate.cloneNode(true);
|
|
||||||
bg.appendChild(clone);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
|
@ -19,8 +19,15 @@
|
||||||
"parameterName": "customer_first_name",
|
"parameterName": "customer_first_name",
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"displayName": "Vorname des Kunden"
|
"displayName": "Vorname des Kunden"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameterName": "package_size",
|
||||||
|
"type": "select",
|
||||||
|
"displayName": "Paketgröße auswählen",
|
||||||
|
"global": false,
|
||||||
|
"options": ["#1 Standard Paket", "#2 Großes Paket"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,244 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Versandlabel</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--container-width: 580mm;
|
||||||
|
--container-height: 102mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Outfit";
|
||||||
|
src: url("../../groupsData/static/Outfit-VariableFont_wght.ttf");
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
transform: scale(2);
|
||||||
|
transform-origin: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
html {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: 14px;
|
||||||
|
width: var(--container-width);
|
||||||
|
height: var(--container-height);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-family: "Outfit";
|
||||||
|
font-size: 17.5px;
|
||||||
|
color: black;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-container {
|
||||||
|
width: var(--container-width);
|
||||||
|
/* Breite des Containers */
|
||||||
|
height: var(--container-height);
|
||||||
|
/* Höhe des Containers */
|
||||||
|
background-color: #80808000;
|
||||||
|
/* Hintergrundfarbe */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
/* Höhe des Containers */
|
||||||
|
height: var(--container-height);
|
||||||
|
}
|
||||||
|
|
||||||
|
.background {
|
||||||
|
width: var(--container-width);
|
||||||
|
height: var(--container-height);
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
background-color: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0mm;
|
||||||
|
z-index: -10;
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgRotate {
|
||||||
|
transform: rotate(-15deg) translate(0, 0mm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.social_media {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
gap: 2mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.insta_logo,
|
||||||
|
.tiktok_logo {
|
||||||
|
width: 8mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social_media_area {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
gap: 15mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgContainer {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 50mm;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 80mm;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.myCustomText {
|
||||||
|
font-size: 20px;
|
||||||
|
max-width: 80mm;
|
||||||
|
white-space: nowrap;
|
||||||
|
/* Prevents text wrapping */
|
||||||
|
overflow: hidden;
|
||||||
|
/* Optional: hides text that exceeds max-width */
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
/* Optional: adds '...' for overflowed text */
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="background">
|
||||||
|
<div class="bgRotate">
|
||||||
|
<div class="bgContainer">
|
||||||
|
<div class="social_media_area">
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="insta_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/instagram-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.official</p>
|
||||||
|
</div>
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="tiktok_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/tiktok-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.official</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="myCustomText">Von SHINNEX für dich</p>
|
||||||
|
|
||||||
|
<div class="social_media_area">
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="tiktok_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/tiktok-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.texte</p>
|
||||||
|
</div>
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="insta_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/instagram-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.texte</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="large-container">
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 40mm; background-color: rgba(255, 255, 0, 0)"
|
||||||
|
></div>
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 70mm; background-color: rgba(255, 166, 0, 0)"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<img src="../../groupsData/shx-order-package-label/scissors.svg" />
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="
|
||||||
|
width: 240mm;
|
||||||
|
background-color: rgba(128, 0, 128, 0);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="label.png"
|
||||||
|
style="height: 100%; box-shadow: 0 0 15mm 15mm #fff"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="
|
||||||
|
width: 110mm;
|
||||||
|
background-color: rgba(0, 0, 255, 0);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../groupsData/shx-order-package-label/stempel2.png"
|
||||||
|
width="400"
|
||||||
|
style="filter: drop-shadow(0 0 2mm #fff)"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<img src="../../groupsData/shx-order-package-label/scissors.svg" />
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 40mm; background-color: rgba(255, 192, 203, 0)"
|
||||||
|
></div>
|
||||||
|
<!--
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 40mm; background-color: rgba(255, 255, 0, 0)"
|
||||||
|
></div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const name = "{{CUSTOMER_FIRST_NAME}}";
|
||||||
|
|
||||||
|
document.querySelector(".myCustomText").innerHTML =
|
||||||
|
`Von SHINNEX für ` + name;
|
||||||
|
|
||||||
|
let bg = document.querySelector(".background");
|
||||||
|
|
||||||
|
let bgRotate = document.querySelector(".background .bgRotate");
|
||||||
|
|
||||||
|
// clone bgRotate often enough to fill the screen with for loop
|
||||||
|
for (let i = 0; i < 20; i++) {
|
||||||
|
let clone = bgRotate.cloneNode(true);
|
||||||
|
bg.appendChild(clone);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,240 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Versandlabel</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--container-width: 580mm;
|
||||||
|
--container-height: 102mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Outfit";
|
||||||
|
src: url("../../groupsData/static/Outfit-VariableFont_wght.ttf");
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
transform: scale(2);
|
||||||
|
transform-origin: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
html {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: 14px;
|
||||||
|
width: var(--container-width);
|
||||||
|
height: var(--container-height);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-family: "Outfit";
|
||||||
|
font-size: 17.5px;
|
||||||
|
color: black;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-container {
|
||||||
|
width: var(--container-width);
|
||||||
|
/* Breite des Containers */
|
||||||
|
height: var(--container-height);
|
||||||
|
/* Höhe des Containers */
|
||||||
|
background-color: #80808000;
|
||||||
|
/* Hintergrundfarbe */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
/* Höhe des Containers */
|
||||||
|
height: var(--container-height);
|
||||||
|
}
|
||||||
|
|
||||||
|
.background {
|
||||||
|
width: var(--container-width);
|
||||||
|
height: var(--container-height);
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
background-color: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0mm;
|
||||||
|
z-index: -10;
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgRotate {
|
||||||
|
transform: rotate(-15deg) translate(0, 0mm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.social_media {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
gap: 2mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.insta_logo,
|
||||||
|
.tiktok_logo {
|
||||||
|
width: 8mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social_media_area {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
gap: 15mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgContainer {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 50mm;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 80mm;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.myCustomText {
|
||||||
|
font-size: 20px;
|
||||||
|
max-width: 80mm;
|
||||||
|
white-space: nowrap;
|
||||||
|
/* Prevents text wrapping */
|
||||||
|
overflow: hidden;
|
||||||
|
/* Optional: hides text that exceeds max-width */
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
/* Optional: adds '...' for overflowed text */
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="background">
|
||||||
|
<div class="bgRotate">
|
||||||
|
<div class="bgContainer">
|
||||||
|
<div class="social_media_area">
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="insta_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/instagram-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.official</p>
|
||||||
|
</div>
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="tiktok_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/tiktok-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.official</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="myCustomText">Von SHINNEX für dich</p>
|
||||||
|
|
||||||
|
<div class="social_media_area">
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="tiktok_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/tiktok-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.texte</p>
|
||||||
|
</div>
|
||||||
|
<div class="social_media">
|
||||||
|
<p>Folge uns</p>
|
||||||
|
<img
|
||||||
|
class="insta_logo"
|
||||||
|
src="../../groupsData/shx-order-package-label/instagram-logo.png"
|
||||||
|
/>
|
||||||
|
<p>shinnex.texte</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="large-container">
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 20mm; background-color: rgba(255, 166, 0, 0)"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<img src="../../groupsData/shx-order-package-label/scissors.svg" />
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="
|
||||||
|
width: 240mm;
|
||||||
|
background-color: rgba(0, 0, 255, 0);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../groupsData/shx-order-package-label/stempel2.png"
|
||||||
|
width="400"
|
||||||
|
style="filter: drop-shadow(0 0 2mm #fff)"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<img src="../../groupsData/shx-order-package-label/scissors.svg" />
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 40mm; background-color: rgba(255, 192, 203, 0)"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="
|
||||||
|
width: 240mm;
|
||||||
|
background-color: rgba(128, 0, 128, 0);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="label.png"
|
||||||
|
style="height: 100%; box-shadow: 0 0 15mm 15mm #fff"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 40mm; background-color: rgba(255, 255, 0, 0)"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const name = "{{CUSTOMER_FIRST_NAME}}";
|
||||||
|
|
||||||
|
document.querySelector(".myCustomText").innerHTML =
|
||||||
|
`Von SHINNEX für ` + name;
|
||||||
|
|
||||||
|
let bg = document.querySelector(".background");
|
||||||
|
|
||||||
|
let bgRotate = document.querySelector(".background .bgRotate");
|
||||||
|
|
||||||
|
// clone bgRotate often enough to fill the screen with for loop
|
||||||
|
for (let i = 0; i < 20; i++) {
|
||||||
|
let clone = bgRotate.cloneNode(true);
|
||||||
|
bg.appendChild(clone);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -13,13 +13,22 @@ from libs.utils import utils
|
||||||
json_object = json.loads(sys.argv[1])
|
json_object = json.loads(sys.argv[1])
|
||||||
shipping_label_url = json_object["shipping_label_url"]
|
shipping_label_url = json_object["shipping_label_url"]
|
||||||
customer_first_name = json_object["customer_first_name"]
|
customer_first_name = json_object["customer_first_name"]
|
||||||
|
package_size = json_object["package_size"]
|
||||||
|
|
||||||
if shipping_label_url is None or customer_first_name is None:
|
if shipping_label_url is None or customer_first_name is None or package_size is None:
|
||||||
print("Missing required parameters")
|
print("Missing required parameters")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
shipping_label_url = shipping_label_url["value"]
|
shipping_label_url = shipping_label_url["value"]
|
||||||
customer_first_name = customer_first_name["value"]
|
customer_first_name = customer_first_name["value"]
|
||||||
|
package_size = package_size["value"]
|
||||||
|
|
||||||
|
# define which html to use
|
||||||
|
package_label_html = "indexStandardPackage.html"
|
||||||
|
|
||||||
|
if package_size.startswith("#2"):
|
||||||
|
package_label_html = "indexLargePackage.html"
|
||||||
|
|
||||||
|
|
||||||
def createHighDpiPng(sourceHtml, outputPng):
|
def createHighDpiPng(sourceHtml, outputPng):
|
||||||
# Calculate scaled dimensions
|
# Calculate scaled dimensions
|
||||||
|
@ -141,12 +150,12 @@ def downloadFilePDFDHL(url, filename):
|
||||||
|
|
||||||
|
|
||||||
def replacePlaceholder():
|
def replacePlaceholder():
|
||||||
with open("index.html", "r") as file:
|
with open(package_label_html, "r") as file:
|
||||||
index_html = file.read()
|
index_html = file.read()
|
||||||
|
|
||||||
index_html = index_html.replace("{{CUSTOMER_FIRST_NAME}}", customer_first_name)
|
index_html = index_html.replace("{{CUSTOMER_FIRST_NAME}}", customer_first_name)
|
||||||
|
|
||||||
with open("index.html", "w") as file:
|
with open(package_label_html, "w") as file:
|
||||||
file.write(index_html)
|
file.write(index_html)
|
||||||
|
|
||||||
|
|
||||||
|
@ -164,7 +173,7 @@ if __name__ == "__main__":
|
||||||
downloadFilePNG(shipping_label_url, "label.png")
|
downloadFilePNG(shipping_label_url, "label.png")
|
||||||
|
|
||||||
replacePlaceholder()
|
replacePlaceholder()
|
||||||
|
|
||||||
createHighDpiPng("index.html", "Versandlabel.png")
|
|
||||||
|
|
||||||
utils.clear_workspace(["index.html", "label.png.pdf", "label.png"])
|
createHighDpiPng(package_label_html, "Versandlabel.png")
|
||||||
|
|
||||||
|
utils.clear_workspace(["indexStandardPackage.html", "indexLargePackage.html", "label.png.pdf", "label.png"])
|
||||||
|
|
|
@ -50,62 +50,7 @@
|
||||||
"
|
"
|
||||||
></div>
|
></div>
|
||||||
|
|
||||||
<div>
|
{{TEXTE}}
|
||||||
<span>
|
|
||||||
Hey, wir haben gerade Dein Paket liebevoll verpackt und konnten es kaum
|
|
||||||
erwarten, Dir diese kleine Nachricht zu hinterlassen,
|
|
||||||
</span>
|
|
||||||
<b>{{CUSTOMER_NAME}}</b><span>.</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Es ist dieses besondere Gefühl, zu wissen, dass unsere Produkte neue
|
|
||||||
Zuhause finden, das uns jeden Tag antreibt. Deine Entscheidung, bei uns zu
|
|
||||||
shoppen, macht uns überglücklich! Wir hoffen, dass Du beim Auspacken
|
|
||||||
genauso viel Freude empfindest, wie wir beim Verpacken.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<span>Um unsere Wertschätzung zu zeigen und Dir für Deine </span>
|
|
||||||
<b>Treue</b>
|
|
||||||
<span> zu danken, haben wir ein paar </span>
|
|
||||||
<b>Gutscheincodes</b>
|
|
||||||
<span>
|
|
||||||
für Dich zusammengestellt
|
|
||||||
<img
|
|
||||||
style="height: 20px; vertical-align: -4px"
|
|
||||||
src="../../groupsData/shx-order-voucher-codes/glasses.png"
|
|
||||||
/>
|
|
||||||
Mit diesen kannst Du bei Deinen nächsten Einkäufen ordentlich
|
|
||||||
sparen:</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<span>Siehe Rückseite</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span>Jeder Code ist ein kleines Dankeschön von uns an Dich, </span>
|
|
||||||
<b>{{CUSTOMER_NAME}}</b
|
|
||||||
><span
|
|
||||||
>, und wir hoffen, dass sie Dein Shopping-Erlebnis noch besser machen.
|
|
||||||
Falls Du Fragen hast oder Unterstützung brauchst, zögere nicht, uns zu
|
|
||||||
kontaktieren.</span
|
|
||||||
>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span
|
|
||||||
>Deine Unterstützung ermöglicht es uns, weiter zu wachsen und unsere
|
|
||||||
Gemeinschaft zu bereichern. Wir freuen uns darauf, Dich bald wieder
|
|
||||||
begrüßen zu dürfen und wünschen Dir viel
|
|
||||||
</span>
|
|
||||||
<b>Freude</b>
|
|
||||||
<span> mit allem, was Du bestellt hast!</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<span>Liebe Grüße</span>
|
<span>Liebe Grüße</span>
|
||||||
<br />
|
<br />
|
||||||
|
|
|
@ -240,9 +240,31 @@ def ReplaceHtmlVariables():
|
||||||
# replace variables in html file
|
# replace variables in html file
|
||||||
# read html file and replace variables
|
# read html file and replace variables
|
||||||
|
|
||||||
|
with open("../../groupsData/shx-order-voucher-codes/texte.json", 'r', encoding='utf-8') as json_file:
|
||||||
|
data = json.load(json_file)
|
||||||
|
|
||||||
|
randomTextIndex = random.randint(0, len(data["texts"])-1)
|
||||||
|
|
||||||
|
htmlParagraphs = ""
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
for paragraph in data["texts"][randomTextIndex]["paragraphs"]:
|
||||||
|
startTag = "<p>"
|
||||||
|
endTag = "</p>"
|
||||||
|
|
||||||
|
# first paragraph with span because they have no padding
|
||||||
|
if i == 0:
|
||||||
|
startTag = "<span>"
|
||||||
|
endTag = "</span>"
|
||||||
|
|
||||||
|
htmlParagraphs += f"{startTag}{paragraph.replace('{{CUSTOMER_NAME}}', customerName)}{endTag}"
|
||||||
|
|
||||||
|
i += 1
|
||||||
|
|
||||||
file = open("frontPage.html", "r")
|
file = open("frontPage.html", "r")
|
||||||
html = file.read()
|
html = file.read()
|
||||||
html = html.replace("{{CUSTOMER_NAME}}", customerName)
|
html = html.replace("{{TEXTE}}", htmlParagraphs)
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
file = open("frontPage.html", "w")
|
file = open("frontPage.html", "w")
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
||||||
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
||||||
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (Glänzend)",
|
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (Glänzend)",
|
||||||
|
"#36688 Ruby die Schlange, FARBE, Grün/Blau/Orange, (Glänzend)",
|
||||||
"#21433 Bruno der Dino, FARBE, Grün/Blau/Orange, (Glänzend)",
|
"#21433 Bruno der Dino, FARBE, Grün/Blau/Orange, (Glänzend)",
|
||||||
"#57953 Bruno der Dino, FARBE, Rot/Blau, (Glänzend)",
|
"#57953 Bruno der Dino, FARBE, Rot/Blau, (Glänzend)",
|
||||||
"#90578 Bruno der Dino, FARBE, Gold, (Glänzend)",
|
"#90578 Bruno der Dino, FARBE, Gold, (Glänzend)",
|
||||||
|
@ -62,7 +63,11 @@
|
||||||
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
||||||
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
||||||
"#55172 Sharky der Hai, FARBE, Grau, ",
|
"#55172 Sharky der Hai, FARBE, Grau, ",
|
||||||
"#10971 Chibi die Ratte, FARBE, Grau, "
|
"#10971 Chibi die Ratte, FARBE, Grau, ",
|
||||||
|
"#84712 Personalisiertes Namensschild, TYP, Einfarbig, ",
|
||||||
|
"#17200 Personalisiertes Namensschild, TYP, Zweifarbig, ",
|
||||||
|
"#97548 Personalisiertes Namensschild, TYP, Dreifarbig, ",
|
||||||
|
"#68859 Personalisiertes Namensschild mit Hintergrund, , , "
|
||||||
],
|
],
|
||||||
"global": false
|
"global": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,12 @@
|
||||||
"name_color": "Rot/Schwarz",
|
"name_color": "Rot/Schwarz",
|
||||||
"material": "Dual-Color Silk PLA",
|
"material": "Dual-Color Silk PLA",
|
||||||
"manufacturer": "AMOLEN"
|
"manufacturer": "AMOLEN"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "30",
|
||||||
|
"name_color": "Hellgrün",
|
||||||
|
"material": "Matte PLA",
|
||||||
|
"manufacturer": "OVERTURE"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -77,6 +77,13 @@
|
||||||
"product_characteristic_line_1": "Rot/Schwarz",
|
"product_characteristic_line_1": "Rot/Schwarz",
|
||||||
"product_characteristic_line_2": "(Glänzend)"
|
"product_characteristic_line_2": "(Glänzend)"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "36688",
|
||||||
|
"name": "Ruby_die Schlange",
|
||||||
|
"product_variant": "FARBE",
|
||||||
|
"product_characteristic_line_1": "Grün/Blau/Orange",
|
||||||
|
"product_characteristic_line_2": "(Glänzend)"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "21433",
|
"id": "21433",
|
||||||
"name": "Bruno_der Dino",
|
"name": "Bruno_der Dino",
|
||||||
|
@ -300,6 +307,34 @@
|
||||||
"product_variant": "FARBE",
|
"product_variant": "FARBE",
|
||||||
"product_characteristic_line_1": "Grau",
|
"product_characteristic_line_1": "Grau",
|
||||||
"product_characteristic_line_2": ""
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "84712",
|
||||||
|
"name": "Personalisiertes_Namensschild",
|
||||||
|
"product_variant": "TYP",
|
||||||
|
"product_characteristic_line_1": "Einfarbig",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "17200",
|
||||||
|
"name": "Personalisiertes_Namensschild",
|
||||||
|
"product_variant": "TYP",
|
||||||
|
"product_characteristic_line_1": "Zweifarbig",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "97548",
|
||||||
|
"name": "Personalisiertes_Namensschild",
|
||||||
|
"product_variant": "TYP",
|
||||||
|
"product_characteristic_line_1": "Dreifarbig",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "68859",
|
||||||
|
"name": "Personalisiertes_Namensschild mit Hintergrund",
|
||||||
|
"product_variant": "",
|
||||||
|
"product_characteristic_line_1": "",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"texts": [
|
||||||
|
{
|
||||||
|
"paragraphs": [
|
||||||
|
"Hallo <strong>{{CUSTOMER_NAME}}</strong>,",
|
||||||
|
"wir freuen uns riesig, dass Du Dein Paket erhalten hast und möchten Dir diese kleine Nachricht hinterlassen. Es ist uns eine Herzensangelegenheit, dass unsere Produkte ein neues Zuhause finden, und Deine Entscheidung, bei uns zu shoppen, erfüllt uns mit großer Freude.",
|
||||||
|
"Beim Auspacken wünschen wir Dir genauso viel Spaß, wie wir ihn beim Verpacken hatten. Als kleines Dankeschön für Deine <strong>Treue</strong> haben wir einige <strong>Gutscheincodes</strong> für Dich zusammengestellt, die Du auf der Rückseite findest. Mit diesen kannst Du bei Deinen nächsten Einkäufen sparen.",
|
||||||
|
"Jeder dieser Codes ist ein Zeichen unserer Wertschätzung Dir gegenüber. Solltest Du Fragen haben oder Hilfe benötigen, zögere nicht, uns zu kontaktieren. Deine Unterstützung hilft uns, weiter zu wachsen und unsere Gemeinschaft zu bereichern.",
|
||||||
|
"Wir freuen uns darauf, Dich bald wieder bei uns begrüßen zu dürfen und wünschen Dir viel <strong>Freude</strong> mit Deinen neuen Produkten!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"paragraphs": [
|
||||||
|
"Hey <strong>{{CUSTOMER_NAME}}</strong>,",
|
||||||
|
"wir hoffen, Du hast beim Auspacken Deines Pakets genauso viel Freude wie wir beim Verpacken! Es bedeutet uns sehr viel, dass Du Dich für unsere Produkte entschieden hast. Das gibt uns täglich neuen Antrieb.",
|
||||||
|
"Um Dir für Deine <strong>Treue</strong> zu danken, haben wir ein paar <strong>Gutscheincodes</strong> für Dich auf der Rückseite vorbereitet. Diese ermöglichen Dir tolle Rabatte bei Deinen nächsten Einkäufen.",
|
||||||
|
"Diese Codes sind unser kleines Dankeschön an Dich. Solltest Du Fragen haben, stehen wir Dir jederzeit zur Verfügung. Dank Deiner Unterstützung können wir weiter wachsen und unsere Community stärken.",
|
||||||
|
"Wir freuen uns schon jetzt auf Deinen nächsten Besuch und wünschen Dir viel Spaß mit Deiner Bestellung!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"paragraphs": [
|
||||||
|
"Hey <strong>{{CUSTOMER_NAME}}</strong>,",
|
||||||
|
"wir hoffen, Dein Paket hat Dir ein Lächeln ins Gesicht gezaubert! Es bereitet uns immer wieder Freude zu wissen, dass unsere Produkte ein neues Zuhause finden. Deine Wahl, bei uns einzukaufen, macht uns sehr glücklich.",
|
||||||
|
"Als kleines Dankeschön für Deine <strong>Treue</strong> haben wir einige <strong>Gutscheincodes</strong> auf der Rückseite beigelegt, mit denen Du bei Deinem nächsten Einkauf sparen kannst.",
|
||||||
|
"Diese Codes sind unser persönliches Dankeschön an Dich. Bei Fragen oder wenn Du Hilfe benötigst, zögere bitte nicht, uns zu kontaktieren. Deine Unterstützung hilft uns, unsere Ziele zu erreichen und unsere Gemeinschaft zu stärken.",
|
||||||
|
"Wir freuen uns auf Deinen nächsten Einkauf und wünschen Dir viel Freude mit Deinen neuen Produkten!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"paragraphs": [
|
||||||
|
"Hallo <strong>{{CUSTOMER_NAME}}</strong>,",
|
||||||
|
"wir hoffen, dass Dein Paket sicher angekommen ist und Du viel Freude beim Auspacken hast! Es erfüllt uns mit Stolz, dass unsere Produkte ein neues Zuhause finden, und wir sind dankbar, dass Du bei uns eingekauft hast.",
|
||||||
|
"Um Dir unsere Wertschätzung zu zeigen, haben wir einige <strong>Gutscheincodes</strong> für Dich zusammengestellt, die Du auf der Rückseite findest. Sie ermöglichen Dir tolle Ersparnisse bei Deinem nächsten Einkauf.",
|
||||||
|
"Diese Codes sind ein kleines Zeichen unserer Dankbarkeit. Bei Fragen oder wenn Du Hilfe brauchst, kannst Du uns jederzeit kontaktieren. Deine Unterstützung hilft uns, weiter zu wachsen und unsere Community zu bereichern.",
|
||||||
|
"Wir freuen uns auf Deinen nächsten Besuch und wünschen Dir viel Freude mit Deiner Bestellung!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"paragraphs": [
|
||||||
|
"Hey <strong>{{CUSTOMER_NAME}}</strong>,",
|
||||||
|
"wir hoffen, Du hattest genauso viel Spaß beim Auspacken Deines Pakets, wie wir beim Verpacken hatten! Es bedeutet uns sehr viel, dass Du Dich für unsere Produkte entschieden hast. Das gibt uns täglich neuen Antrieb und Freude.",
|
||||||
|
"Auf der Rückseite findest Du einige Gutscheincodes, die wir als Dankeschön für Deine <strong>Treue</strong> zusammengestellt haben. Diese ermöglichen Dir tolle Rabatte bei Deinen nächsten Einkäufen.",
|
||||||
|
"Diese Codes sind unser kleines Dankeschön an Dich. Solltest Du Fragen haben oder Unterstützung benötigen, zögere nicht, uns zu kontaktieren. Deine Unterstützung ermöglicht es uns, weiter zu wachsen und unsere Gemeinschaft zu bereichern.",
|
||||||
|
"Wir freuen uns darauf, Dich bald wieder bei uns begrüßen zu dürfen und wünschen Dir viel Freude mit Deiner Bestellung!"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue