order package label
parent
4f7169d42e
commit
a532af2be6
Binary file not shown.
After Width: | Height: | Size: 596 KiB |
|
@ -0,0 +1,63 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Versandlabel</title>
|
||||||
|
<link
|
||||||
|
href="https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<style>
|
||||||
|
@page {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
size: 2046mm 360mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--container-width: 2046mm;
|
||||||
|
--container-height: 360mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
html {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-family: "Outfit";
|
||||||
|
width: var(--container-width); /* Breite des Containers */
|
||||||
|
height: var(--container-height); /* Höhe des Containers */
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-container {
|
||||||
|
width: var(--container-width); /* Breite des Containers */
|
||||||
|
height: var(--container-height); /* Höhe des Containers */
|
||||||
|
background-color: #ddd; /* Hintergrundfarbe */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
height: var(--container-height); /* Höhe des Containers */
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="large-container">
|
||||||
|
<h1 style="">Von SHINNEX für Annete</h1>
|
||||||
|
|
||||||
|
<div style="display: flex; flex-direction: column; align-items: center">
|
||||||
|
<h1>Folge uns</h1>
|
||||||
|
<img src="instagram-logo.png" width="80px" />
|
||||||
|
<h1>SHINNEX</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="display: flex; flex-direction: column; align-items: center">
|
||||||
|
<h1>Folge uns</h1>
|
||||||
|
<img src="tiktok-logo.png" width="80px" />
|
||||||
|
<h1>SHINNEX</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,87 @@
|
||||||
|
<!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>
|
||||||
|
@page {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
size: 2046mm 360mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--container-width: 2046mm;
|
||||||
|
--container-height: 360mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
html {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: 14px;
|
||||||
|
width: var(--container-width); /* Breite des Containers */
|
||||||
|
height: var(--container-height); /* Höhe des Containers */
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-container {
|
||||||
|
width: var(--container-width); /* Breite des Containers */
|
||||||
|
height: var(--container-height); /* Höhe des Containers */
|
||||||
|
background-color: #808080; /* Hintergrundfarbe */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
height: var(--container-height); /* Höhe des Containers */
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="large-container">
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 200mm; background-color: orange"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 12mm; background-color: #d9d9d9; position: absolute"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="
|
||||||
|
width: 2400mm;
|
||||||
|
background-color: blue;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img src="Stempel.png" width="1500" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container" style="width: 400mm; background-color: pink"></div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="
|
||||||
|
width: 2400mm;
|
||||||
|
background-color: purple;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img src="label.png" width="2600" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="container"
|
||||||
|
style="width: 400mm; background-color: yellow"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"category": "Shinnex",
|
||||||
|
"name": "Versandlabel erstellen",
|
||||||
|
"globalInputs": [],
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"name": "Versandlabel erstellen und drucken",
|
||||||
|
"onFinish": "next",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "script.py",
|
||||||
|
"parameters": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 206 KiB |
Binary file not shown.
After Width: | Height: | Size: 275 KiB |
Binary file not shown.
|
@ -0,0 +1,28 @@
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def createPdf(sourceHtml, outputPdf):
|
||||||
|
command = [
|
||||||
|
"google-chrome-stable",
|
||||||
|
"--headless",
|
||||||
|
"--no-sandbox",
|
||||||
|
"--disable-gpu",
|
||||||
|
"--debug=1",
|
||||||
|
"--print-to-pdf=" + outputPdf,
|
||||||
|
"--run-all-compositor-stages-before-draw",
|
||||||
|
"--virtual-time-budget=10000",
|
||||||
|
sourceHtml,
|
||||||
|
]
|
||||||
|
|
||||||
|
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
_, stderr = process.communicate()
|
||||||
|
|
||||||
|
if process.returncode != 0:
|
||||||
|
print("Error creating PDF")
|
||||||
|
print(stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print("Order Package Label")
|
||||||
|
|
||||||
|
createPdf("index.html", "output.pdf")
|
Binary file not shown.
After Width: | Height: | Size: 105 KiB |
|
@ -72,7 +72,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="code-box first-item" style="margin-top: 39px">
|
<div class="code-box first-item" style="margin-top: 39px">
|
||||||
<span>ASD</span>
|
<span>{{DISCOUNT_CODE}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
Hey, wir haben gerade Dein Paket liebevoll verpackt und konnten es kaum
|
Hey, wir haben gerade Dein Paket liebevoll verpackt und konnten es kaum
|
||||||
erwarten, Dir diese kleine Nachricht zu hinterlassen,
|
erwarten, Dir diese kleine Nachricht zu hinterlassen,
|
||||||
</span>
|
</span>
|
||||||
<b>Anna</b><span>.</span>
|
<b>{{CUSTOMER_NAME}}</b><span>.</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<span>Jeder Code ist ein kleines Dankeschön von uns an Dich, </span>
|
<span>Jeder Code ist ein kleines Dankeschön von uns an Dich, </span>
|
||||||
<b>Anna</b
|
<b>{{CUSTOMER_NAME}}</b
|
||||||
><span
|
><span
|
||||||
>, und wir hoffen, dass sie Dein Shopping-Erlebnis noch besser machen.
|
>, und wir hoffen, dass sie Dein Shopping-Erlebnis noch besser machen.
|
||||||
Falls Du Fragen hast oder Unterstützung brauchst, zögere nicht, uns zu
|
Falls Du Fragen hast oder Unterstützung brauchst, zögere nicht, uns zu
|
||||||
|
|
|
@ -181,7 +181,7 @@
|
||||||
bgcolor="#af9363"
|
bgcolor="#af9363"
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
href="https://shinnex.de"
|
href="https://shinnex.de?utm_source=email&utm_medium=email&utm_campaign=deserved_voucher&utm_content=deserved_voucher"
|
||||||
class="button__text"
|
class="button__text"
|
||||||
style="
|
style="
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|
|
@ -4,6 +4,6 @@ Dein Gutscheincode als Dankeschön
|
||||||
|
|
||||||
Dein Gutscheincode lautet: {{VOUCHER_CODE}}
|
Dein Gutscheincode lautet: {{VOUCHER_CODE}}
|
||||||
|
|
||||||
Zu unserem Shop: https://shinnex.de
|
Zu unserem Shop: https://shinnex.de?utm_source=email&utm_medium=email&utm_campaign=deserved_voucher&utm_content=deserved_voucher
|
||||||
|
|
||||||
Falls du Fragen hast, antworte auf diese E-Mail oder kontaktiere uns unter info@shinnex.de.
|
Falls du Fragen hast, antworte auf diese E-Mail oder kontaktiere uns unter info@shinnex.de.
|
|
@ -832,3 +832,18 @@ func DeleteCrmLink(c *fiber.Ctx) error {
|
||||||
|
|
||||||
return c.SendStatus(fiber.StatusOK)
|
return c.SendStatus(fiber.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CrmNoLinkProvidedRedirect(c *fiber.Ctx) error {
|
||||||
|
// swagger:operation GET /crm/nolink crm crmNoLinkProvidedRedirect
|
||||||
|
// ---
|
||||||
|
// summary: Redirect to crm no link provided
|
||||||
|
// produces:
|
||||||
|
// - application/json
|
||||||
|
// responses:
|
||||||
|
// '200':
|
||||||
|
// description: Redirect to crm no link provided
|
||||||
|
// '500':
|
||||||
|
// description: Failed to redirect to crm no link provided
|
||||||
|
|
||||||
|
return c.Redirect("https://shinnex.de?utm_source=web&utm_medium=web&utm_campaign=voucherlinkredirect&utm_content=redirect")
|
||||||
|
}
|
||||||
|
|
|
@ -80,6 +80,7 @@ func SetupRoutes(app *fiber.App) {
|
||||||
c.Post("/links", requestAccessValidation, crm.CreateCrmLink)
|
c.Post("/links", requestAccessValidation, crm.CreateCrmLink)
|
||||||
c.Get("/links/:customerId", requestAccessValidation, crm.GetCrmLinks)
|
c.Get("/links/:customerId", requestAccessValidation, crm.GetCrmLinks)
|
||||||
c.Get("/link/:id", crm.CrmUseLink)
|
c.Get("/link/:id", crm.CrmUseLink)
|
||||||
|
c.Get("/link", crm.CrmNoLinkProvidedRedirect)
|
||||||
c.Delete("/links/:id", requestAccessValidation, crm.DeleteCrmLink)
|
c.Delete("/links/:id", requestAccessValidation, crm.DeleteCrmLink)
|
||||||
|
|
||||||
app.Static("/", config.Cfg.FolderPaths.PublicStatic)
|
app.Static("/", config.Cfg.FolderPaths.PublicStatic)
|
||||||
|
|
Loading…
Reference in New Issue