auto generate discount code
parent
3a2c29b2b8
commit
8fb9d31ddd
|
@ -42,8 +42,11 @@
|
||||||
"#36521 Charlie das Häschen, FARBE, Hellbraun, (Matt)",
|
"#36521 Charlie das Häschen, FARBE, Hellbraun, (Matt)",
|
||||||
"#48273 Charlie das Häschen, FARBE, Gold, (Glänzend)",
|
"#48273 Charlie das Häschen, FARBE, Gold, (Glänzend)",
|
||||||
"#71936 Ruby die Schlange, FARBE, Feuerrot, (Glänzend)",
|
"#71936 Ruby die Schlange, FARBE, Feuerrot, (Glänzend)",
|
||||||
"#58324 Ruby die Schlange, FARBE, Rot/Blau, (Glänzend)",
|
"#58324 Ruby die Schlange, FARBE, Lila/Blau, (Glänzend)",
|
||||||
"#78648 Ruby die Schlange, FARBE, Gold, (Glänzend)",
|
"#78648 Ruby die Schlange, FARBE, Gold, (Glänzend)",
|
||||||
|
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
||||||
|
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
||||||
|
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (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)",
|
||||||
|
@ -69,14 +72,19 @@
|
||||||
"#35717 Stella der Phönix, FARBE, Sonderanfertigung, Rosa/Weiß",
|
"#35717 Stella der Phönix, FARBE, Sonderanfertigung, Rosa/Weiß",
|
||||||
"#26843 Stella der Phönix, FARBE, Verlauf Lila/Pink, ",
|
"#26843 Stella der Phönix, FARBE, Verlauf Lila/Pink, ",
|
||||||
"#74943 Brain der Fuchs, STIL, Standard, ",
|
"#74943 Brain der Fuchs, STIL, Standard, ",
|
||||||
"#78071 Weißer Hund, STIL, Weiß, ",
|
"#78071 Lucky der Barsoi, FARBE, Weiß, ",
|
||||||
"#92734 Amigo der Capybara, FARBE, Braun, "
|
"#92734 Amigo der Capybara, FARBE, Braun, ",
|
||||||
|
"#22318 Witty der Fuchs, STIL, Standard, ",
|
||||||
|
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
||||||
|
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
||||||
|
"#55172 Sharky der Hai, FARBE, Grau, ",
|
||||||
|
"#10971 Chibi die Ratte, FARBE, Grau, "
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Gutscheincodes für Bestellung erstellen (nur die Bestellnummer ohne #)",
|
"name": "Gutscheincodes für Bestellung erstellen",
|
||||||
"onFinish": "pause",
|
"onFinish": "pause",
|
||||||
"undoPossible": false,
|
"undoPossible": false,
|
||||||
"repeatPossible": true,
|
"repeatPossible": true,
|
||||||
|
@ -101,11 +109,6 @@
|
||||||
"parameterName": "productUrl",
|
"parameterName": "productUrl",
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"displayName": "URL vom Produkt (Shopify) (z. B. https://shinnex.de/products/gizmo) (für Direktweiterleitung 5 € Gutschein QR-Code)"
|
"displayName": "URL vom Produkt (Shopify) (z. B. https://shinnex.de/products/gizmo) (für Direktweiterleitung 5 € Gutschein QR-Code)"
|
||||||
},
|
|
||||||
{
|
|
||||||
"parameterName": "discountCode",
|
|
||||||
"type": "text",
|
|
||||||
"displayName": "10 % Gutscheincode für den Kunden (in Shopify erstellen)"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -33,7 +33,8 @@
|
||||||
"25 Blau/Weiß, TempChange Matte PLA, TRONXY",
|
"25 Blau/Weiß, TempChange Matte PLA, TRONXY",
|
||||||
"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"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -22,8 +22,11 @@
|
||||||
"#36521 Charlie das Häschen, FARBE, Hellbraun, (Matt)",
|
"#36521 Charlie das Häschen, FARBE, Hellbraun, (Matt)",
|
||||||
"#48273 Charlie das Häschen, FARBE, Gold, (Glänzend)",
|
"#48273 Charlie das Häschen, FARBE, Gold, (Glänzend)",
|
||||||
"#71936 Ruby die Schlange, FARBE, Feuerrot, (Glänzend)",
|
"#71936 Ruby die Schlange, FARBE, Feuerrot, (Glänzend)",
|
||||||
"#58324 Ruby die Schlange, FARBE, Rot/Blau, (Glänzend)",
|
"#58324 Ruby die Schlange, FARBE, Lila/Blau, (Glänzend)",
|
||||||
"#78648 Ruby die Schlange, FARBE, Gold, (Glänzend)",
|
"#78648 Ruby die Schlange, FARBE, Gold, (Glänzend)",
|
||||||
|
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
||||||
|
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
||||||
|
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (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)",
|
||||||
|
@ -49,8 +52,13 @@
|
||||||
"#35717 Stella der Phönix, FARBE, Sonderanfertigung, Rosa/Weiß",
|
"#35717 Stella der Phönix, FARBE, Sonderanfertigung, Rosa/Weiß",
|
||||||
"#26843 Stella der Phönix, FARBE, Verlauf Lila/Pink, ",
|
"#26843 Stella der Phönix, FARBE, Verlauf Lila/Pink, ",
|
||||||
"#74943 Brain der Fuchs, STIL, Standard, ",
|
"#74943 Brain der Fuchs, STIL, Standard, ",
|
||||||
"#78071 Weißer Hund, STIL, Weiß, ",
|
"#78071 Lucky der Barsoi, FARBE, Weiß, ",
|
||||||
"#92734 Amigo der Capybara, FARBE, Braun, "
|
"#92734 Amigo der Capybara, FARBE, Braun, ",
|
||||||
|
"#22318 Witty der Fuchs, STIL, Standard, ",
|
||||||
|
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
||||||
|
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
||||||
|
"#55172 Sharky der Hai, FARBE, Grau, ",
|
||||||
|
"#10971 Chibi die Ratte, FARBE, Grau, "
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
{
|
||||||
|
"category": "Shinnex",
|
||||||
|
"name": "Schritte für neue Produktveröffentlichung",
|
||||||
|
"globalInputs": [],
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"name": "Produktvideos/fotos erstellen",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Produktvideos/fotos auf Seafile hochladen",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Befehl auf Seafile ausführen um Bilder zu konvertieren",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TikTok Video drehen",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TikTok Video schneiden",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Produktvideos schneiden",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Produkt in Shop online stellen",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Produktpipeline aktualisieren",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TikTok Video hochladen",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Instagram Post hochladen",
|
||||||
|
"onFinish": "pause",
|
||||||
|
"undoPossible": false,
|
||||||
|
"repeatPossible": true,
|
||||||
|
"scriptPath": "empty.py",
|
||||||
|
"parameters": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
"globalInputs": [],
|
"globalInputs": [],
|
||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
{
|
||||||
"name": "Gutscheincodes für Bestellung erstellen (nur die Bestellnummer ohne #)",
|
"name": "Gutscheincodes für Bestellung erstellen",
|
||||||
"onFinish": "next",
|
"onFinish": "next",
|
||||||
"undoPossible": false,
|
"undoPossible": false,
|
||||||
"repeatPossible": true,
|
"repeatPossible": true,
|
||||||
|
@ -29,11 +29,6 @@
|
||||||
"parameterName": "productUrl",
|
"parameterName": "productUrl",
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"displayName": "URL vom Produkt (Shopify) (z. B. https://shinnex.de/products/gizmo) (für Direktweiterleitung 5 € Gutschein QR-Code)"
|
"displayName": "URL vom Produkt (Shopify) (z. B. https://shinnex.de/products/gizmo) (für Direktweiterleitung 5 € Gutschein QR-Code)"
|
||||||
},
|
|
||||||
{
|
|
||||||
"parameterName": "discountCode",
|
|
||||||
"type": "text",
|
|
||||||
"displayName": "10 % Gutscheincode für den Kunden (in Shopify erstellen)"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
import requests
|
import requests
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
import qrcode
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
import string
|
||||||
|
import random
|
||||||
|
|
||||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
||||||
|
|
||||||
|
@ -26,24 +27,27 @@ headers = {
|
||||||
json_object = json.loads(sys.argv[1])
|
json_object = json.loads(sys.argv[1])
|
||||||
customerEmail = json_object["customerEmail"]
|
customerEmail = json_object["customerEmail"]
|
||||||
customerName = json_object["customerName"]
|
customerName = json_object["customerName"]
|
||||||
discountCode = json_object["discountCode"]
|
|
||||||
productUrl = json_object["productUrl"]
|
productUrl = json_object["productUrl"]
|
||||||
orderId = json_object["orderId"]
|
orderId = json_object["orderId"]
|
||||||
|
|
||||||
if (customerEmail is None
|
if (customerEmail is None
|
||||||
or orderId is None
|
or orderId is None
|
||||||
or customerName is None
|
or customerName is None
|
||||||
or productUrl is None
|
or productUrl is None):
|
||||||
or discountCode is None):
|
|
||||||
print("Missing required parameters")
|
print("Missing required parameters")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
customerEmail = customerEmail["value"]
|
customerEmail = customerEmail["value"]
|
||||||
customerName = customerName["value"]
|
customerName = customerName["value"]
|
||||||
discountCode = discountCode["value"]
|
|
||||||
productUrl = productUrl["value"]
|
productUrl = productUrl["value"]
|
||||||
orderId = orderId["value"]
|
orderId = orderId["value"]
|
||||||
|
|
||||||
|
# remove the # from the orderId if provided
|
||||||
|
if orderId.startswith('#'):
|
||||||
|
orderId = orderId[1:]
|
||||||
|
|
||||||
|
discountCode = None
|
||||||
|
|
||||||
|
|
||||||
def CreateCrmCustomer():
|
def CreateCrmCustomer():
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
|
@ -114,6 +118,49 @@ def CheckIfCrmCustomerExists():
|
||||||
GetCustomerActivityLinks(customerId=customerId)
|
GetCustomerActivityLinks(customerId=customerId)
|
||||||
|
|
||||||
|
|
||||||
|
# create shopify discount code
|
||||||
|
# this function will retry 3 times to create a new discount code if the random generate code already exists
|
||||||
|
def createShopifyDiscountCode(retries):
|
||||||
|
# generate random code
|
||||||
|
characters = string.ascii_uppercase + string.digits
|
||||||
|
discount_code = ''.join(random.choice(characters) for _ in range(12))
|
||||||
|
|
||||||
|
# load data from secrets
|
||||||
|
secrets = utils.get_secrets()
|
||||||
|
|
||||||
|
shopify_url = secrets['shopify_url']
|
||||||
|
x_shopify_access_token = secrets['x_shopify_access_token']
|
||||||
|
shopify_discount_code_price_rule = secrets['shopify_discount_code_price_rule']
|
||||||
|
|
||||||
|
response = requests.post(
|
||||||
|
url=f"{shopify_url}/admin/api/2024-01/price_rules/{shopify_discount_code_price_rule}/discount_codes.json",
|
||||||
|
headers={
|
||||||
|
"X-Shopify-Access-Token": x_shopify_access_token,
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
},
|
||||||
|
json={
|
||||||
|
"discount_code": {"code": discount_code}
|
||||||
|
})
|
||||||
|
|
||||||
|
retries += 1
|
||||||
|
|
||||||
|
if retries >= 3:
|
||||||
|
sys.exit("Error, tried 3 times to create discount code")
|
||||||
|
|
||||||
|
if response.status_code == 422:
|
||||||
|
print("Failed to create code, response status code 422. Trying to generate new discount code")
|
||||||
|
createShopifyDiscountCode(retries)
|
||||||
|
|
||||||
|
if response.status_code != 201:
|
||||||
|
sys.exit(f"Failed to create discount code, status code: {response.status_code}")
|
||||||
|
|
||||||
|
print(f"Created discount code: {discount_code}")
|
||||||
|
|
||||||
|
global discountCode
|
||||||
|
|
||||||
|
discountCode = discount_code
|
||||||
|
|
||||||
|
|
||||||
def CreateCrmActivityLink(customerId, thirdVoucher):
|
def CreateCrmActivityLink(customerId, thirdVoucher):
|
||||||
print(f"Creating CRM activity link for customer {customerId}")
|
print(f"Creating CRM activity link for customer {customerId}")
|
||||||
|
|
||||||
|
@ -133,6 +180,8 @@ def CreateCrmActivityLink(customerId, thirdVoucher):
|
||||||
print(f"CreateCrmActivityLink req error {response.status_code}")
|
print(f"CreateCrmActivityLink req error {response.status_code}")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
createShopifyDiscountCode(0)
|
||||||
|
|
||||||
req("10 % Gutschein", f"https://shinnex.de/discount/{discountCode}?utm_source=order&utm_medium=qrcode&utm_campaign=ordervouchercodes&utm_content=reedemvouchercode")
|
req("10 % Gutschein", f"https://shinnex.de/discount/{discountCode}?utm_source=order&utm_medium=qrcode&utm_campaign=ordervouchercodes&utm_content=reedemvouchercode")
|
||||||
req("5 € Gutschein", f"{productUrl}?utm_source=order&utm_medium=qrcode&utm_campaign=ordervouchercodes&utm_content=qualifyforvouchercode")
|
req("5 € Gutschein", f"{productUrl}?utm_source=order&utm_medium=qrcode&utm_campaign=ordervouchercodes&utm_content=qualifyforvouchercode")
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,11 @@
|
||||||
"#36521 Charlie das Häschen, FARBE, Hellbraun, (Matt)",
|
"#36521 Charlie das Häschen, FARBE, Hellbraun, (Matt)",
|
||||||
"#48273 Charlie das Häschen, FARBE, Gold, (Glänzend)",
|
"#48273 Charlie das Häschen, FARBE, Gold, (Glänzend)",
|
||||||
"#71936 Ruby die Schlange, FARBE, Feuerrot, (Glänzend)",
|
"#71936 Ruby die Schlange, FARBE, Feuerrot, (Glänzend)",
|
||||||
"#58324 Ruby die Schlange, FARBE, Rot/Blau, (Glänzend)",
|
"#58324 Ruby die Schlange, FARBE, Lila/Blau, (Glänzend)",
|
||||||
"#78648 Ruby die Schlange, FARBE, Gold, (Glänzend)",
|
"#78648 Ruby die Schlange, FARBE, Gold, (Glänzend)",
|
||||||
|
"#15809 Ruby die Schlange, FARBE, Himmelblau, (Fluoreszierend)",
|
||||||
|
"#49461 Ruby die Schlange, FARBE, Rosa, (Matt)",
|
||||||
|
"#84491 Ruby die Schlange, FARBE, Rot/Schwarz, (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)",
|
||||||
|
@ -53,8 +56,13 @@
|
||||||
"#35717 Stella der Phönix, FARBE, Sonderanfertigung, Rosa/Weiß",
|
"#35717 Stella der Phönix, FARBE, Sonderanfertigung, Rosa/Weiß",
|
||||||
"#26843 Stella der Phönix, FARBE, Verlauf Lila/Pink, ",
|
"#26843 Stella der Phönix, FARBE, Verlauf Lila/Pink, ",
|
||||||
"#74943 Brain der Fuchs, STIL, Standard, ",
|
"#74943 Brain der Fuchs, STIL, Standard, ",
|
||||||
"#78071 Weißer Hund, STIL, Weiß, ",
|
"#78071 Lucky der Barsoi, FARBE, Weiß, ",
|
||||||
"#92734 Amigo der Capybara, FARBE, Braun, "
|
"#92734 Amigo der Capybara, FARBE, Braun, ",
|
||||||
|
"#22318 Witty der Fuchs, STIL, Standard, ",
|
||||||
|
"#23732 Witty der Fuchs, STIL, Standard, Mit Halstuch",
|
||||||
|
"#72175 Paco die Bulldogge, FARBE, Grau, ",
|
||||||
|
"#55172 Sharky der Hai, FARBE, Grau, ",
|
||||||
|
"#10971 Chibi die Ratte, FARBE, Grau, "
|
||||||
],
|
],
|
||||||
"global": false
|
"global": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,6 +107,12 @@
|
||||||
"name_color": "Gelb",
|
"name_color": "Gelb",
|
||||||
"material": "Matte PLA",
|
"material": "Matte PLA",
|
||||||
"manufacturer": "OVERTURE"
|
"manufacturer": "OVERTURE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "29",
|
||||||
|
"name_color": "Rot/Schwarz",
|
||||||
|
"material": "Dual-Color Silk PLA",
|
||||||
|
"manufacturer": "AMOLEN"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -46,7 +46,7 @@
|
||||||
"id": "58324",
|
"id": "58324",
|
||||||
"name": "Ruby_die Schlange",
|
"name": "Ruby_die Schlange",
|
||||||
"product_variant": "FARBE",
|
"product_variant": "FARBE",
|
||||||
"product_characteristic_line_1": "Rot/Blau",
|
"product_characteristic_line_1": "Lila/Blau",
|
||||||
"product_characteristic_line_2": "(Glänzend)"
|
"product_characteristic_line_2": "(Glänzend)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -56,6 +56,27 @@
|
||||||
"product_characteristic_line_1": "Gold",
|
"product_characteristic_line_1": "Gold",
|
||||||
"product_characteristic_line_2": "(Glänzend)"
|
"product_characteristic_line_2": "(Glänzend)"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "15809",
|
||||||
|
"name": "Ruby_die Schlange",
|
||||||
|
"product_variant": "FARBE",
|
||||||
|
"product_characteristic_line_1": "Himmelblau",
|
||||||
|
"product_characteristic_line_2": "(Fluoreszierend)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "49461",
|
||||||
|
"name": "Ruby_die Schlange",
|
||||||
|
"product_variant": "FARBE",
|
||||||
|
"product_characteristic_line_1": "Rosa",
|
||||||
|
"product_characteristic_line_2": "(Matt)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "84491",
|
||||||
|
"name": "Ruby_die Schlange",
|
||||||
|
"product_variant": "FARBE",
|
||||||
|
"product_characteristic_line_1": "Rot/Schwarz",
|
||||||
|
"product_characteristic_line_2": "(Glänzend)"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "21433",
|
"id": "21433",
|
||||||
"name": "Bruno_der Dino",
|
"name": "Bruno_der Dino",
|
||||||
|
@ -233,8 +254,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "78071",
|
"id": "78071",
|
||||||
"name": "Weißer_Hund",
|
"name": "Lucky_der Barsoi",
|
||||||
"product_variant": "STIL",
|
"product_variant": "FARBE",
|
||||||
"product_characteristic_line_1": "Weiß",
|
"product_characteristic_line_1": "Weiß",
|
||||||
"product_characteristic_line_2": ""
|
"product_characteristic_line_2": ""
|
||||||
},
|
},
|
||||||
|
@ -244,6 +265,41 @@
|
||||||
"product_variant": "FARBE",
|
"product_variant": "FARBE",
|
||||||
"product_characteristic_line_1": "Braun",
|
"product_characteristic_line_1": "Braun",
|
||||||
"product_characteristic_line_2": ""
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "22318",
|
||||||
|
"name": "Witty_der Fuchs",
|
||||||
|
"product_variant": "STIL",
|
||||||
|
"product_characteristic_line_1": "Standard",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "23732",
|
||||||
|
"name": "Witty_der Fuchs",
|
||||||
|
"product_variant": "STIL",
|
||||||
|
"product_characteristic_line_1": "Standard",
|
||||||
|
"product_characteristic_line_2": "Mit Halstuch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "72175",
|
||||||
|
"name": "Paco_die Bulldogge",
|
||||||
|
"product_variant": "FARBE",
|
||||||
|
"product_characteristic_line_1": "Grau",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "55172",
|
||||||
|
"name": "Sharky_der Hai",
|
||||||
|
"product_variant": "FARBE",
|
||||||
|
"product_characteristic_line_1": "Grau",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "10971",
|
||||||
|
"name": "Chibi_die Ratte",
|
||||||
|
"product_variant": "FARBE",
|
||||||
|
"product_characteristic_line_1": "Grau",
|
||||||
|
"product_characteristic_line_2": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
Binary file not shown.
|
@ -4,6 +4,7 @@ import os
|
||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import qrcode
|
import qrcode
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
def clear_workspace(files):
|
def clear_workspace(files):
|
||||||
|
@ -142,3 +143,8 @@ def create_qrcode(qr_code_url, save_path, back_color):
|
||||||
# Save image to a file
|
# Save image to a file
|
||||||
# like ./test.png
|
# like ./test.png
|
||||||
img.save(save_path)
|
img.save(save_path)
|
||||||
|
|
||||||
|
|
||||||
|
def get_secrets():
|
||||||
|
with open('../../secrets/secrets.json') as content:
|
||||||
|
return json.load(content)
|
Loading…
Reference in New Issue