Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"extends": ["../../../../.eslintrc.json"],
|
||||
"ignorePatterns": ["!**/*"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.ts", "*.tsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# pieces-quickzu
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Building
|
||||
|
||||
Run `nx build pieces-quickzu` to build the library.
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@activepieces/piece-quickzu",
|
||||
"version": "0.0.10"
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"name": "pieces-quickzu",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/quickzu/src",
|
||||
"projectType": "library",
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/quickzu",
|
||||
"tsConfig": "packages/pieces/community/quickzu/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/quickzu/package.json",
|
||||
"main": "packages/pieces/community/quickzu/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/quickzu/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/quickzu/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"prebuild"
|
||||
]
|
||||
},
|
||||
"publish": {
|
||||
"command": "node tools/scripts/publish.mjs pieces-quickzu {args.ver} {args.tag}",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
]
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
},
|
||||
"prebuild": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/quickzu",
|
||||
"command": "bun install --no-save --silent"
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tags": []
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "Streamline Bestellung von whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Melde dich in dein Quickzu-Dashboard ein.\n2. Gehe zu **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Kopiere **API Token** in die Zwischenablage und füge sie ein.",
|
||||
"Add Product": "Neuer Artikel",
|
||||
"Update Product": "Produkt aktualisieren",
|
||||
"Delete Product": "Produkt löschen",
|
||||
"List Products": "Produkte auflisten",
|
||||
"Create Category": "Kategorie erstellen",
|
||||
"Update Category": "Kategorie aktualisieren",
|
||||
"Delete Category": "Kategorie löschen",
|
||||
"List Categories": "Kategorien auflisten",
|
||||
"Get Order Details": "Bestelldetails abrufen",
|
||||
"List Orders": "Listenbestellungen",
|
||||
"List Live Orders": "Live Bestellungen auflisten",
|
||||
"Update Order Status": "Bestellstatus aktualisieren",
|
||||
"Create Product Discount": "Produkt-Rabatt erstellen",
|
||||
"Create Promo/Coupon Code": "Promo/Gutscheincode erstellen",
|
||||
"Update Business Time": "Geschäftszeit aktualisieren",
|
||||
"Adds new product to store.": "Fügt neue Artikel zum Laden hinzu.",
|
||||
"Updates an existing product in store.": "Aktualisiert ein vorhandenes Produkt im Shop.",
|
||||
"Deletes an existing product from store.": "Löscht ein vorhandenes Produkt aus dem Shop.",
|
||||
"Retrieves all or single product details from store.": "Ruft alle oder einzelne Produktdetails aus dem Shop ab.",
|
||||
"Creates a new category in store.": "Erstellt eine neue Kategorie im Shop.",
|
||||
"Updates an existing category in store.": "Aktualisiert eine existierende Kategorie im Shop.",
|
||||
"Deletes an existing category from store.": "Löscht eine existierende Kategorie aus dem Shop.",
|
||||
"Retrieves all categories from store.": "Ruft alle Kategorien aus dem Shop ab.",
|
||||
"Retrieves order details from store.": "Liefert Bestelldetails aus dem Shop.",
|
||||
"Retrieves orders of store.": "Ruft Bestellungen des Shops ab.",
|
||||
"Retrieves live orders of store.": "Ermittelt Live-Bestellungen im Shop.",
|
||||
"Updates status of order in store.": "Status der Bestellung im Shop.",
|
||||
"Creates a new discount for category or product level.": "Erstellt einen neuen Rabatt für Kategorie oder Produktebene.",
|
||||
"Creates a new promo code for category or product level.": "Erstellt einen neuen Promo-Code für Kategorie oder Produktebene.",
|
||||
"Updates business hours.": "Aktualisiert Geschäftszeiten.",
|
||||
"Name": "Name",
|
||||
"Description": "Beschreibung",
|
||||
"Category": "Kategorie",
|
||||
"MRP Price": "MRP-Preis",
|
||||
"Selling Price": "Verkaufspreis",
|
||||
"Unit": "Einheit",
|
||||
"Unit Value": "Einheitswert",
|
||||
"Availability": "Verfügbarkeit",
|
||||
"Exclude Tax": "Steuer ausschließen",
|
||||
"Enable Variants": "Varianten aktivieren",
|
||||
"Status": "Status",
|
||||
"Product": "Produkt",
|
||||
"Product name that need to be search.": "Produktname, der gesucht werden muss.",
|
||||
"Category Name": "Kategoriename",
|
||||
"Category Status": "Kategorie-Status",
|
||||
"Search Term": "Suchbegriff",
|
||||
"Order": "Sortierung",
|
||||
"Current page number": "Aktuelle Seitennummer",
|
||||
"Number of orders per page": "Anzahl der Bestellungen pro Seite",
|
||||
"Number of live orders that need to be fetched per order status": "Anzahl der Live-Bestellungen, die pro Bestellstatus abgerufen werden müssen",
|
||||
"Order Status": "Bestellstatus",
|
||||
"Promotion / Discount Title": "Promotions- / Rabatttitel",
|
||||
"Valid From": "Gültig ab",
|
||||
"Valid To": "Gültig bis",
|
||||
"Filter": "Filtern",
|
||||
"Select Option": "Option auswählen",
|
||||
"Discount": "Rabatt",
|
||||
"Discount Value": "Rabattwert",
|
||||
"Enabled ?": "Aktiviert ?",
|
||||
"Visibility": "Sichtbarkeit",
|
||||
"Promo Code": "Promo-Code",
|
||||
"Minimum Order Amount": "Mindestbestellmenge",
|
||||
"Maximum Promo Code Limit": "Maximales Promo-Code-Limit",
|
||||
"Business Hours": "Geschäftszeiten",
|
||||
"Selling price should be equal or less than MRP.": "Der Verkaufspreis sollte gleich oder kleiner sein als MRP.",
|
||||
"Category name that need to be search.": "Kategoriename der gesucht werden muss.",
|
||||
"Please use YYYY-MM-DD format.": "Bitte verwenden Sie das Format JJJJ-MM-TT.",
|
||||
"Choose what gets discount (products/categories).": "Wählen Sie den Rabatt (Produkte/Kategorien) aus.",
|
||||
"piece": "stück",
|
||||
"kilogram": "kilogramm",
|
||||
"Gram": "Gramm",
|
||||
"pound": "pfund",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "Dutzend",
|
||||
"feet": "fuß",
|
||||
"meter": "meter",
|
||||
"square feet": "quadratische Fuß",
|
||||
"square meter": "quadratischer Meter",
|
||||
"set": "setzen",
|
||||
"hour": "stunde",
|
||||
"day": "tag",
|
||||
"service": "service",
|
||||
"combo": "kombo",
|
||||
"box": "boxen",
|
||||
"pack": "packen",
|
||||
"bottle": "flasche",
|
||||
"whole": "komplett",
|
||||
"slice": "schliessen",
|
||||
"bulk": "bulk",
|
||||
"pending": "ausstehend",
|
||||
"paid": "bezahlt",
|
||||
"accepted": "akzeptiert",
|
||||
"cancelled": "storniert",
|
||||
"done": "done",
|
||||
"products": "produkte",
|
||||
"categories": "kategorien",
|
||||
"all_products": "alle Produkte",
|
||||
"percentage": "prozentsatz",
|
||||
"flat": "flach",
|
||||
"fixed_price": "fester Preis",
|
||||
"Order Created/Updated": "Auftrag erstellt/aktualisiert",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Wird ausgelöst, wenn eine neue Bestellung erstellt wird oder der Bestellstatus im Store geändert wird.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Gehen Sie zum Abschnitt **Einstellungen->API und Webhooks** .\n- Fügen Sie in die Webhook-Einstellungen folgende URL ein: \n `{{webhookUrl}}`\n- Klicken Sie auf **Speichern**.\n"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "Ordenación de streamline desde whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.",
|
||||
"Add Product": "Añadir Producto",
|
||||
"Update Product": "Actualizar Producto",
|
||||
"Delete Product": "Eliminar Producto",
|
||||
"List Products": "Listar productos",
|
||||
"Create Category": "Crear Categoría",
|
||||
"Update Category": "Actualizar categoría",
|
||||
"Delete Category": "Eliminar Categoría",
|
||||
"List Categories": "Listar categorías",
|
||||
"Get Order Details": "Detalles del pedido",
|
||||
"List Orders": "Listar pedidos",
|
||||
"List Live Orders": "Listar pedidos en vivo",
|
||||
"Update Order Status": "Actualizar estado del pedido",
|
||||
"Create Product Discount": "Crear descuento de artículo",
|
||||
"Create Promo/Coupon Code": "Crear código de promoción/cupón",
|
||||
"Update Business Time": "Actualizar Tiempo de Negocio",
|
||||
"Adds new product to store.": "Añade nuevo producto al almacén.",
|
||||
"Updates an existing product in store.": "Actualiza un producto existente en la tienda.",
|
||||
"Deletes an existing product from store.": "Elimina un producto existente de la tienda.",
|
||||
"Retrieves all or single product details from store.": "Recuperar todos o todos los detalles de un producto de la tienda.",
|
||||
"Creates a new category in store.": "Crea una nueva categoría en la tienda.",
|
||||
"Updates an existing category in store.": "Actualiza una categoría existente en la tienda.",
|
||||
"Deletes an existing category from store.": "Elimina una categoría existente de la tienda.",
|
||||
"Retrieves all categories from store.": "Recuperar todas las categorías de la tienda.",
|
||||
"Retrieves order details from store.": "Recuperar detalles del pedido de la tienda.",
|
||||
"Retrieves orders of store.": "Recuperar pedidos de tienda.",
|
||||
"Retrieves live orders of store.": "Recuperar pedidos de tienda.",
|
||||
"Updates status of order in store.": "Actualiza el estado del pedido en la tienda.",
|
||||
"Creates a new discount for category or product level.": "Crea un nuevo descuento para la categoría o el nivel de producto.",
|
||||
"Creates a new promo code for category or product level.": "Crea un nuevo código promocional para la categoría o el nivel de producto.",
|
||||
"Updates business hours.": "Actualiza horas laborables.",
|
||||
"Name": "Nombre",
|
||||
"Description": "Descripción",
|
||||
"Category": "Categoría",
|
||||
"MRP Price": "Precio MRP",
|
||||
"Selling Price": "Precio de venta",
|
||||
"Unit": "Unidad",
|
||||
"Unit Value": "Valor de unidad",
|
||||
"Availability": "Disponibilidad",
|
||||
"Exclude Tax": "Excluir impuestos",
|
||||
"Enable Variants": "Habilitar variantes",
|
||||
"Status": "Estado",
|
||||
"Product": "Producto",
|
||||
"Product name that need to be search.": "Nombre del producto que necesita ser buscado.",
|
||||
"Category Name": "Nombre de categoría",
|
||||
"Category Status": "Estado de la categoría",
|
||||
"Search Term": "Buscar término",
|
||||
"Order": "Pedido",
|
||||
"Current page number": "Número de página actual",
|
||||
"Number of orders per page": "Número de pedidos por página",
|
||||
"Number of live orders that need to be fetched per order status": "Número de pedidos en vivo que necesitan ser recuperados por estado del pedido",
|
||||
"Order Status": "Estado del pedido",
|
||||
"Promotion / Discount Title": "Título de Promoción / Descuento",
|
||||
"Valid From": "Válido desde",
|
||||
"Valid To": "Válido a",
|
||||
"Filter": "Filtro",
|
||||
"Select Option": "Seleccionar opción",
|
||||
"Discount": "Descuento",
|
||||
"Discount Value": "Valor del descuento",
|
||||
"Enabled ?": "Activado ?",
|
||||
"Visibility": "Visibilidad",
|
||||
"Promo Code": "Código promocional",
|
||||
"Minimum Order Amount": "Importe mínimo del pedido",
|
||||
"Maximum Promo Code Limit": "Límite máximo de código promocional",
|
||||
"Business Hours": "Horas",
|
||||
"Selling price should be equal or less than MRP.": "El precio de venta debe ser igual o menor que el MRP.",
|
||||
"Category name that need to be search.": "Nombre de categoría que necesita ser buscado.",
|
||||
"Please use YYYY-MM-DD format.": "Por favor, utilice el formato YYY-MM-DD.",
|
||||
"Choose what gets discount (products/categories).": "Elija lo que obtiene el descuento (producto/categorías).",
|
||||
"piece": "pieza",
|
||||
"kilogram": "kilogramo",
|
||||
"Gram": "Grafo",
|
||||
"pound": "libra",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "docena",
|
||||
"feet": "pies",
|
||||
"meter": "medidor",
|
||||
"square feet": "pies cuadrados",
|
||||
"square meter": "metro cuadrado",
|
||||
"set": "poner",
|
||||
"hour": "hora",
|
||||
"day": "día",
|
||||
"service": "servicio",
|
||||
"combo": "combo",
|
||||
"box": "caja",
|
||||
"pack": "paquete",
|
||||
"bottle": "botella",
|
||||
"whole": "entero",
|
||||
"slice": "rebanada",
|
||||
"bulk": "granel",
|
||||
"pending": "pendiente",
|
||||
"paid": "pagado",
|
||||
"accepted": "aceptado",
|
||||
"cancelled": "cancelado",
|
||||
"done": "hecho",
|
||||
"products": "productos",
|
||||
"categories": "categorías",
|
||||
"all_products": "todo_los productos",
|
||||
"percentage": "porcentaje",
|
||||
"flat": "plano",
|
||||
"fixed_price": "precio fijo",
|
||||
"Order Created/Updated": "Pedido creado/actualizado",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Dispara cuando se crea un nuevo pedido o se cambia el estado del pedido en el almacén.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Ve a la sección **Ajustes->API y Webhooks**.\n- En la configuración del webhook, pega esta URL: \n `{{webhookUrl}}`\n- Haz clic en **Guardar**.\n"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "Streamline l'ordre à partir de whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.",
|
||||
"Add Product": "Ajouter un produit",
|
||||
"Update Product": "Mettre à jour le produit",
|
||||
"Delete Product": "Supprimer le produit",
|
||||
"List Products": "Liste des produits",
|
||||
"Create Category": "Créer une catégorie",
|
||||
"Update Category": "Mettre à jour la catégorie",
|
||||
"Delete Category": "Supprimer la catégorie",
|
||||
"List Categories": "Lister les catégories",
|
||||
"Get Order Details": "Obtenir les détails de la commande",
|
||||
"List Orders": "Lister les commandes",
|
||||
"List Live Orders": "Liste des commandes en direct",
|
||||
"Update Order Status": "Mettre à jour le statut de commande",
|
||||
"Create Product Discount": "Créer une remise de produit",
|
||||
"Create Promo/Coupon Code": "Créer un Code Promo/Coupon",
|
||||
"Update Business Time": "Mettre à jour le temps de travail",
|
||||
"Adds new product to store.": "Ajoute un nouveau produit à la boutique.",
|
||||
"Updates an existing product in store.": "Met à jour un produit existant dans la boutique.",
|
||||
"Deletes an existing product from store.": "Supprime un produit existant de la boutique.",
|
||||
"Retrieves all or single product details from store.": "Récupère tous ou un seul produit dans le magasin.",
|
||||
"Creates a new category in store.": "Crée une nouvelle catégorie dans la boutique.",
|
||||
"Updates an existing category in store.": "Met à jour une catégorie existante dans la boutique.",
|
||||
"Deletes an existing category from store.": "Supprime une catégorie existante du magasin.",
|
||||
"Retrieves all categories from store.": "Récupère toutes les catégories du magasin.",
|
||||
"Retrieves order details from store.": "Récupère les détails de la commande du magasin.",
|
||||
"Retrieves orders of store.": "Récupère les commandes du magasin.",
|
||||
"Retrieves live orders of store.": "Récupère les commandes en direct du magasin.",
|
||||
"Updates status of order in store.": "Met à jour l'état de la commande en magasin.",
|
||||
"Creates a new discount for category or product level.": "Crée une nouvelle remise pour le niveau de catégorie ou de produit.",
|
||||
"Creates a new promo code for category or product level.": "Crée un nouveau code promo pour la catégorie ou le niveau du produit.",
|
||||
"Updates business hours.": "Met à jour les heures de travail.",
|
||||
"Name": "Nom",
|
||||
"Description": "Libellé",
|
||||
"Category": "Catégorie",
|
||||
"MRP Price": "Prix MRP",
|
||||
"Selling Price": "Prix de vente",
|
||||
"Unit": "Unité",
|
||||
"Unit Value": "Valeur de l'unité",
|
||||
"Availability": "Disponibilité",
|
||||
"Exclude Tax": "Exclure les taxes",
|
||||
"Enable Variants": "Activer les variantes",
|
||||
"Status": "Statut",
|
||||
"Product": "Produit",
|
||||
"Product name that need to be search.": "Nom du produit qui doit être recherché.",
|
||||
"Category Name": "Nom de catégorie",
|
||||
"Category Status": "Statut de la catégorie",
|
||||
"Search Term": "Terme de recherche",
|
||||
"Order": "Commandes",
|
||||
"Current page number": "Numéro de page actuel",
|
||||
"Number of orders per page": "Nombre de commandes par page",
|
||||
"Number of live orders that need to be fetched per order status": "Nombre de commandes en direct qui doivent être récupérées par statut de commande",
|
||||
"Order Status": "Statut de la commande",
|
||||
"Promotion / Discount Title": "Promotion / Titre de la Remise",
|
||||
"Valid From": "Valable à partir de",
|
||||
"Valid To": "Valable jusqu'à",
|
||||
"Filter": "Filtre",
|
||||
"Select Option": "Sélectionner une option",
|
||||
"Discount": "Remise",
|
||||
"Discount Value": "Valeur de la remise",
|
||||
"Enabled ?": "Activé ?",
|
||||
"Visibility": "Visibilité",
|
||||
"Promo Code": "Code promo",
|
||||
"Minimum Order Amount": "Montant minimum de la commande",
|
||||
"Maximum Promo Code Limit": "Limite maximale de code promotionnel",
|
||||
"Business Hours": "Heures d'ouverture",
|
||||
"Selling price should be equal or less than MRP.": "Le prix de vente doit être égal ou inférieur à la MRP.",
|
||||
"Category name that need to be search.": "Nom de la catégorie qui doit être recherché.",
|
||||
"Please use YYYY-MM-DD format.": "Veuillez utiliser le format AAAA-MM-JJ.",
|
||||
"Choose what gets discount (products/categories).": "Choisissez ce qui obtient la réduction (produits/catégories).",
|
||||
"piece": "pièce",
|
||||
"kilogram": "kilogramme",
|
||||
"Gram": "Gram",
|
||||
"pound": "livré",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "douzaine",
|
||||
"feet": "pieds",
|
||||
"meter": "mètre",
|
||||
"square feet": "pieds carrés",
|
||||
"square meter": "mètre carré",
|
||||
"set": "définir",
|
||||
"hour": "heure",
|
||||
"day": "jour",
|
||||
"service": "Service",
|
||||
"combo": "combo",
|
||||
"box": "boîte",
|
||||
"pack": "pack",
|
||||
"bottle": "bouteille",
|
||||
"whole": "entier",
|
||||
"slice": "tranche",
|
||||
"bulk": "en masse",
|
||||
"pending": "en attente",
|
||||
"paid": "payé",
|
||||
"accepted": "accepté",
|
||||
"cancelled": "Annulé",
|
||||
"done": "terminé",
|
||||
"products": "produits",
|
||||
"categories": "catégories",
|
||||
"all_products": "Tous les produits",
|
||||
"percentage": "pourcentage",
|
||||
"flat": "appartement",
|
||||
"fixed_price": "prix_fixe",
|
||||
"Order Created/Updated": "Commande créée/mise à jour",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Déclenche quand une nouvelle commande est créée ou quand un statut de commande est changé en magasin.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "whatsappから順序を合理化",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Quickzu ダッシュボードにログインします。\n2. **https://app.quickzu.com/dash/settings/api-webhooks** に移動します。\n3. **API トークン**をクリップボードにコピーして貼り付けます。",
|
||||
"Add Product": "商品を追加",
|
||||
"Update Product": "商品を更新",
|
||||
"Delete Product": "商品を削除",
|
||||
"List Products": "商品一覧",
|
||||
"Create Category": "カテゴリを作成",
|
||||
"Update Category": "カテゴリを更新",
|
||||
"Delete Category": "カテゴリを削除",
|
||||
"List Categories": "カテゴリ一覧",
|
||||
"Get Order Details": "注文の詳細を取得",
|
||||
"List Orders": "注文一覧",
|
||||
"List Live Orders": "ライブ注文一覧",
|
||||
"Update Order Status": "注文ステータスの更新",
|
||||
"Create Product Discount": "商品割引を作成",
|
||||
"Create Promo/Coupon Code": "プロモーション/クーポンコードの作成",
|
||||
"Update Business Time": "営業時間を更新",
|
||||
"Adds new product to store.": "ストアに新しい商品を追加",
|
||||
"Updates an existing product in store.": "ストア内の既存の製品を更新します。",
|
||||
"Deletes an existing product from store.": "ストアから既存の商品を削除します。",
|
||||
"Retrieves all or single product details from store.": "ストアからすべてまたは単一の製品の詳細を取得します。",
|
||||
"Creates a new category in store.": "ストアで新しいカテゴリを作成します。",
|
||||
"Updates an existing category in store.": "ストア内の既存のカテゴリを更新します。",
|
||||
"Deletes an existing category from store.": "ストアから既存のカテゴリを削除します。",
|
||||
"Retrieves all categories from store.": "ストアからすべてのカテゴリを取得します。",
|
||||
"Retrieves order details from store.": "ストアから注文の詳細を取得します。",
|
||||
"Retrieves orders of store.": "ストアの注文を取得します。",
|
||||
"Retrieves live orders of store.": "ストアのライブ注文を取得します。",
|
||||
"Updates status of order in store.": "ストアの注文ステータスを更新します。",
|
||||
"Creates a new discount for category or product level.": "カテゴリまたは製品レベルの新しい割引を作成します。",
|
||||
"Creates a new promo code for category or product level.": "カテゴリまたは製品レベルの新しいプロモーションコードを作成します。",
|
||||
"Updates business hours.": "営業時間を更新します",
|
||||
"Name": "Name",
|
||||
"Description": "説明",
|
||||
"Category": "カテゴリ",
|
||||
"MRP Price": "MRP 価格",
|
||||
"Selling Price": "販売価格",
|
||||
"Unit": "単位",
|
||||
"Unit Value": "単位の値",
|
||||
"Availability": "在庫状況",
|
||||
"Exclude Tax": "税を除外",
|
||||
"Enable Variants": "バリエーションを有効にする",
|
||||
"Status": "Status",
|
||||
"Product": "商品",
|
||||
"Product name that need to be search.": "検索する必要がある製品名",
|
||||
"Category Name": "カテゴリ名",
|
||||
"Category Status": "カテゴリのステータス",
|
||||
"Search Term": "検索用語",
|
||||
"Order": "ご注文",
|
||||
"Current page number": "現在のページ番号",
|
||||
"Number of orders per page": "Number of orders per page",
|
||||
"Number of live orders that need to be fetched per order status": "注文ステータスごとに取得する必要のあるライブ注文数",
|
||||
"Order Status": "注文ステータス",
|
||||
"Promotion / Discount Title": "プロモーション/割引タイトル",
|
||||
"Valid From": "有効開始日",
|
||||
"Valid To": "有効期限",
|
||||
"Filter": "フィルター",
|
||||
"Select Option": "オプションを選択",
|
||||
"Discount": "割引",
|
||||
"Discount Value": "割引値",
|
||||
"Enabled ?": "有効 ?",
|
||||
"Visibility": "公開範囲",
|
||||
"Promo Code": "プロモーションコード",
|
||||
"Minimum Order Amount": "最小注文金額",
|
||||
"Maximum Promo Code Limit": "最大プロモーションコード制限",
|
||||
"Business Hours": "営業時間",
|
||||
"Selling price should be equal or less than MRP.": "販売価格はMRP以下でなければなりません。",
|
||||
"Category name that need to be search.": "検索する必要があるカテゴリ名",
|
||||
"Please use YYYY-MM-DD format.": "YYYY-MM-DD形式をご使用ください。",
|
||||
"Choose what gets discount (products/categories).": "割引を受けるものを選択してください(商品/カテゴリ)。",
|
||||
"piece": "ピース",
|
||||
"kilogram": "キロ",
|
||||
"Gram": "グラム",
|
||||
"pound": "ポンド",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "たくさんの",
|
||||
"feet": "フィート",
|
||||
"meter": "メートル",
|
||||
"square feet": "平方フィート",
|
||||
"square meter": "平方メートル",
|
||||
"set": "セット",
|
||||
"hour": "時間",
|
||||
"day": "日",
|
||||
"service": "サービス",
|
||||
"combo": "コンボ",
|
||||
"box": "ボックス",
|
||||
"pack": "パック",
|
||||
"bottle": "ボトル|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びん|びっくり|びん|びっくり|びん|びん|びん|びん|",
|
||||
"whole": "全体",
|
||||
"slice": "スライスする",
|
||||
"bulk": "一括処理",
|
||||
"pending": "処理待ち",
|
||||
"paid": "支払い済み",
|
||||
"accepted": "承認済み",
|
||||
"cancelled": "キャンセル済み",
|
||||
"done": "完了",
|
||||
"products": "商品",
|
||||
"categories": "カテゴリ",
|
||||
"all_products": "all_products",
|
||||
"percentage": "割合",
|
||||
"flat": "フラット",
|
||||
"fixed_price": "固定価格",
|
||||
"Order Created/Updated": "注文作成/更新",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "新しい注文が作成された場合、またはストアで注文ステータスが変更された場合にトリガーされます。",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "Streamlijn bestellen vanaf whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Log in op uw Quickzu Dashboard.\n2. Ga naar **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Kopieer **API Token** naar het klembord en plak het.",
|
||||
"Add Product": "Product toevoegen",
|
||||
"Update Product": "Product bijwerken",
|
||||
"Delete Product": "Product verwijderen",
|
||||
"List Products": "Producten weergeven",
|
||||
"Create Category": "Categorie aanmaken",
|
||||
"Update Category": "Categorie bijwerken",
|
||||
"Delete Category": "Categorie verwijderen",
|
||||
"List Categories": "Lijst van categorieën",
|
||||
"Get Order Details": "Besteldetails ophalen",
|
||||
"List Orders": "Toon bestellingen",
|
||||
"List Live Orders": "Lijst van live bestellingen",
|
||||
"Update Order Status": "Orderstatus bijwerken",
|
||||
"Create Product Discount": "Maak een korting aan",
|
||||
"Create Promo/Coupon Code": "Maak Promo/Coupon code",
|
||||
"Update Business Time": "Bedrijfstijd bijwerken",
|
||||
"Adds new product to store.": "Voegt nieuw product toe aan de winkel.",
|
||||
"Updates an existing product in store.": "Werkt een bestaand product in winkel bij.",
|
||||
"Deletes an existing product from store.": "Verwijdert een bestaand product uit de winkel.",
|
||||
"Retrieves all or single product details from store.": "Haal alle details of enkel product op uit de winkel.",
|
||||
"Creates a new category in store.": "Maakt een nieuwe categorie aan in de winkel.",
|
||||
"Updates an existing category in store.": "Werkt een bestaande categorie in winkel bij.",
|
||||
"Deletes an existing category from store.": "Verwijdert een bestaande categorie uit de winkel.",
|
||||
"Retrieves all categories from store.": "Haal alle categorieën op uit de winkel.",
|
||||
"Retrieves order details from store.": "Besteldetails ophalen uit de winkel.",
|
||||
"Retrieves orders of store.": "Bestellingen van winkel worden opgehaald.",
|
||||
"Retrieves live orders of store.": "Ophalen live bestellingen van winkel.",
|
||||
"Updates status of order in store.": "Werk de status van bestelling in winkel bij.",
|
||||
"Creates a new discount for category or product level.": "Maakt een nieuwe korting aan voor categorie of product niveau.",
|
||||
"Creates a new promo code for category or product level.": "Hiermee maakt u een nieuwe promotiecode voor categorie- of productniveau.",
|
||||
"Updates business hours.": "Werkt kantooruren bij.",
|
||||
"Name": "Naam",
|
||||
"Description": "Beschrijving",
|
||||
"Category": "categorie",
|
||||
"MRP Price": "MRP prijs",
|
||||
"Selling Price": "Verkoopprijs",
|
||||
"Unit": "Eenheid",
|
||||
"Unit Value": "Eenheid waarde",
|
||||
"Availability": "Beschikbaarheid",
|
||||
"Exclude Tax": "Exclusief BTW",
|
||||
"Enable Variants": "Varianten inschakelen",
|
||||
"Status": "status",
|
||||
"Product": "product",
|
||||
"Product name that need to be search.": "Productnaam die gezocht moet worden.",
|
||||
"Category Name": "Categorie Naam",
|
||||
"Category Status": "Categorie status",
|
||||
"Search Term": "Zoek term",
|
||||
"Order": "Bestelling",
|
||||
"Current page number": "Huidige paginanummer",
|
||||
"Number of orders per page": "Aantal bestellingen per pagina",
|
||||
"Number of live orders that need to be fetched per order status": "Aantal live orders die moeten worden opgehaald per bestellingstatus",
|
||||
"Order Status": "Status van bestelling",
|
||||
"Promotion / Discount Title": "Promotie / Korting Titel",
|
||||
"Valid From": "Geldig vanaf",
|
||||
"Valid To": "Geldig tot",
|
||||
"Filter": "Filteren",
|
||||
"Select Option": "Optie selecteren",
|
||||
"Discount": "korting",
|
||||
"Discount Value": "Korting waarde",
|
||||
"Enabled ?": "Ingeschakeld ?",
|
||||
"Visibility": "Zichtbaarheid",
|
||||
"Promo Code": "Promotie Code",
|
||||
"Minimum Order Amount": "Minimum bestelbedrag",
|
||||
"Maximum Promo Code Limit": "Maximale kortingscode",
|
||||
"Business Hours": "Kantoor uren",
|
||||
"Selling price should be equal or less than MRP.": "Verkoopprijs moet gelijk zijn aan of lager zijn dan MRP.",
|
||||
"Category name that need to be search.": "Categorienaam die gezocht moet worden.",
|
||||
"Please use YYYY-MM-DD format.": "Gebruik JJJJ-MM-DD formaat.",
|
||||
"Choose what gets discount (products/categories).": "Kies wat korting krijgt (producten/categorieën).",
|
||||
"piece": "stuk",
|
||||
"kilogram": "kilogram",
|
||||
"Gram": "Grijp",
|
||||
"pound": "pond",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "dozijn",
|
||||
"feet": "voeten",
|
||||
"meter": "meter",
|
||||
"square feet": "vierkante voet",
|
||||
"square meter": "vierkante meter",
|
||||
"set": "instellen",
|
||||
"hour": "uur",
|
||||
"day": "dag",
|
||||
"service": "service",
|
||||
"combo": "combinatie",
|
||||
"box": "doos",
|
||||
"pack": "pak",
|
||||
"bottle": "fles",
|
||||
"whole": "geheel",
|
||||
"slice": "plak",
|
||||
"bulk": "bulk",
|
||||
"pending": "in behandeling",
|
||||
"paid": "betaald",
|
||||
"accepted": "geaccepteerd",
|
||||
"cancelled": "geannuleerd",
|
||||
"done": "voltooid",
|
||||
"products": "product(en)",
|
||||
"categories": "categoriechar@@0n",
|
||||
"all_products": "Alle_producten",
|
||||
"percentage": "percentage",
|
||||
"flat": "vlak",
|
||||
"fixed_price": "vaste prijs",
|
||||
"Order Created/Updated": "Bestelling aangemaakt/bijgewerkt",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Triggert wanneer een nieuwe bestelling is aangemaakt of een orderstatus is gewijzigd in de winkel.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Ga naar de **Instellingen->API en Webhooks** sectie.\n- Plak deze URL in de webhook instellingen: \n `{{webhookUrl}}`\n- Klik op **Opslaan**.\n"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "Simplifique a ordem do whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Faça login no seu painel do Quickzu .\n2. Vá para **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copie o **API Token** para a área de transferência e cole-o.",
|
||||
"Add Product": "Adicionar produto",
|
||||
"Update Product": "Atualização de Produto",
|
||||
"Delete Product": "Excluir Produto",
|
||||
"List Products": "Lista de produtos",
|
||||
"Create Category": "Criar categoria",
|
||||
"Update Category": "Atualizar Categoria",
|
||||
"Delete Category": "Excluir Categoria",
|
||||
"List Categories": "Listar categorias",
|
||||
"Get Order Details": "Obter Detalhes do Pedido",
|
||||
"List Orders": "Lista de Pedidos",
|
||||
"List Live Orders": "Listar pedidos ao vivo",
|
||||
"Update Order Status": "Atualizar status do pedido",
|
||||
"Create Product Discount": "Criar desconto de produto",
|
||||
"Create Promo/Coupon Code": "Criar Código Promo/Cupom",
|
||||
"Update Business Time": "Atualizar Horário Comercial",
|
||||
"Adds new product to store.": "Adiciona novos produtos à loja.",
|
||||
"Updates an existing product in store.": "Atualizar um produto existente na loja.",
|
||||
"Deletes an existing product from store.": "Exclui um produto existente da loja.",
|
||||
"Retrieves all or single product details from store.": "Recupera todos ou apenas detalhes de produto da loja.",
|
||||
"Creates a new category in store.": "Cria uma nova categoria na loja.",
|
||||
"Updates an existing category in store.": "Atualiza uma categoria existente na loja.",
|
||||
"Deletes an existing category from store.": "Exclui uma categoria existente da loja.",
|
||||
"Retrieves all categories from store.": "Recupera todas as categorias do armazém.",
|
||||
"Retrieves order details from store.": "Recupera detalhes do pedido da loja.",
|
||||
"Retrieves orders of store.": "Recupera pedidos da loja.",
|
||||
"Retrieves live orders of store.": "Recupera pedidos da loja ao vivo.",
|
||||
"Updates status of order in store.": "Atualiza o status do pedido na loja.",
|
||||
"Creates a new discount for category or product level.": "Cria um novo desconto para o nível de categoria ou produto.",
|
||||
"Creates a new promo code for category or product level.": "Cria um novo código promocional para o nível de categoria ou produto.",
|
||||
"Updates business hours.": "Atualiza o horário comercial.",
|
||||
"Name": "Nome",
|
||||
"Description": "Descrição",
|
||||
"Category": "categoria",
|
||||
"MRP Price": "Preço MRP",
|
||||
"Selling Price": "Preço de Venda",
|
||||
"Unit": "Unidade",
|
||||
"Unit Value": "Valor da Unidade",
|
||||
"Availability": "Disponibilidade",
|
||||
"Exclude Tax": "Excluir Imposto",
|
||||
"Enable Variants": "Ativar Variantes",
|
||||
"Status": "Estado",
|
||||
"Product": "Produto:",
|
||||
"Product name that need to be search.": "Nome do produto que precisa ser pesquisado.",
|
||||
"Category Name": "Nome da categoria",
|
||||
"Category Status": "Status da categoria",
|
||||
"Search Term": "Termo para pesquisa",
|
||||
"Order": "Encomenda",
|
||||
"Current page number": "Número de página atual",
|
||||
"Number of orders per page": "Número de pedidos por página",
|
||||
"Number of live orders that need to be fetched per order status": "Número de ordens ao vivo que precisam ser obtidas por status do pedido",
|
||||
"Order Status": "Situação do pedido",
|
||||
"Promotion / Discount Title": "Promoção / Título do Desconto",
|
||||
"Valid From": "Válido de",
|
||||
"Valid To": "Válido até",
|
||||
"Filter": "filtro",
|
||||
"Select Option": "Selecionar opção",
|
||||
"Discount": "desconto",
|
||||
"Discount Value": "Desconto de valor",
|
||||
"Enabled ?": "Ativado ?",
|
||||
"Visibility": "Visibilidade",
|
||||
"Promo Code": "Código promocional",
|
||||
"Minimum Order Amount": "Quantidade de pedido mínimo",
|
||||
"Maximum Promo Code Limit": "Limite máximo de código promocional",
|
||||
"Business Hours": "Horário de funcionamento",
|
||||
"Selling price should be equal or less than MRP.": "O preço de venda deve ser igual ou menor que o MRP.",
|
||||
"Category name that need to be search.": "Nome da categoria que precisa ser pesquisado",
|
||||
"Please use YYYY-MM-DD format.": "Por favor, use o formato AAAA-MM-DD",
|
||||
"Choose what gets discount (products/categories).": "Escolha o que recebe desconto (produtos/categorias).",
|
||||
"piece": "pedaço",
|
||||
"kilogram": "quilograma",
|
||||
"Gram": "Grama",
|
||||
"pound": "cerquilha",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "dúzia",
|
||||
"feet": "pés",
|
||||
"meter": "metro",
|
||||
"square feet": "pés quadrados",
|
||||
"square meter": "metro quadrado",
|
||||
"set": "definir",
|
||||
"hour": "hora",
|
||||
"day": "dia",
|
||||
"service": "serviço",
|
||||
"combo": "combo",
|
||||
"box": "caixa",
|
||||
"pack": "pacotes",
|
||||
"bottle": "Garrafa",
|
||||
"whole": "todo",
|
||||
"slice": "fatia",
|
||||
"bulk": "Carga",
|
||||
"pending": "pendente",
|
||||
"paid": "pago",
|
||||
"accepted": "aceito",
|
||||
"cancelled": "cancelado",
|
||||
"done": "concluído",
|
||||
"products": "produtos",
|
||||
"categories": "categorias",
|
||||
"all_products": "todos_os_produtos",
|
||||
"percentage": "porcentagem",
|
||||
"flat": "plano",
|
||||
"fixed_price": "preço_fixo",
|
||||
"Order Created/Updated": "Pedido Criado/Atualizado",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Aciona quando uma nova ordem é criada ou um status de pedido é alterado na loja.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Vá para a seção **Configurações->API e Webhooks**.\n- Nas configurações do webhook, cole esta URL: \n `{{webhookUrl}}`\n- Clique em **Salvar**.\n"
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"Quickzu": "Быстро",
|
||||
"Streamline ordering from whatsapp": "Трансляция заказа из whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Войдите в панель быстрого доступа.\n2. Перейдите на **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Скопируйте **API токен** в буфер обмена и вставьте его.",
|
||||
"Add Product": "Добавить товар",
|
||||
"Update Product": "Обновить продукт",
|
||||
"Delete Product": "Удалить продукт",
|
||||
"List Products": "Список товаров",
|
||||
"Create Category": "Создать категорию",
|
||||
"Update Category": "Обновить категорию",
|
||||
"Delete Category": "Удалить категорию",
|
||||
"List Categories": "Список категорий",
|
||||
"Get Order Details": "Получить детали заказа",
|
||||
"List Orders": "Список заказов",
|
||||
"List Live Orders": "Список реальных заказов",
|
||||
"Update Order Status": "Обновить статус заказа",
|
||||
"Create Product Discount": "Создать скидку на товар",
|
||||
"Create Promo/Coupon Code": "Создать промо/код купона",
|
||||
"Update Business Time": "Обновить рабочее время",
|
||||
"Adds new product to store.": "Добавить новый товар в магазин.",
|
||||
"Updates an existing product in store.": "Обновляет существующий товар в магазине.",
|
||||
"Deletes an existing product from store.": "Удаляет существующий товар из магазина.",
|
||||
"Retrieves all or single product details from store.": "Получает все детали или отдельные товары из магазина.",
|
||||
"Creates a new category in store.": "Создать новую категорию в магазине.",
|
||||
"Updates an existing category in store.": "Обновляет существующую категорию в магазине.",
|
||||
"Deletes an existing category from store.": "Удаляет существующую категорию из магазина.",
|
||||
"Retrieves all categories from store.": "Получает все категории из магазина.",
|
||||
"Retrieves order details from store.": "Получает детали заказа из магазина.",
|
||||
"Retrieves orders of store.": "Получает заказы магазина.",
|
||||
"Retrieves live orders of store.": "Возвращает живые заказы магазина.",
|
||||
"Updates status of order in store.": "Статус заказа в магазине.",
|
||||
"Creates a new discount for category or product level.": "Создает новую скидку на уровень категории или товара.",
|
||||
"Creates a new promo code for category or product level.": "Создает новый промокод для категории или уровня товара.",
|
||||
"Updates business hours.": "Обновляет рабочие часы.",
|
||||
"Name": "Наименование",
|
||||
"Description": "Описание",
|
||||
"Category": "Категория",
|
||||
"MRP Price": "Цена MRP",
|
||||
"Selling Price": "Продажная цена",
|
||||
"Unit": "Единица измерения",
|
||||
"Unit Value": "Значение единицы измерения",
|
||||
"Availability": "Доступность",
|
||||
"Exclude Tax": "Исключить налог",
|
||||
"Enable Variants": "Включить варианты",
|
||||
"Status": "Status",
|
||||
"Product": "Товар",
|
||||
"Product name that need to be search.": "Название товара, которое нужно искать.",
|
||||
"Category Name": "Название категории",
|
||||
"Category Status": "Статус категории",
|
||||
"Search Term": "Поиск термина",
|
||||
"Order": "Заказ",
|
||||
"Current page number": "Текущий номер страницы",
|
||||
"Number of orders per page": "Количество заказов на странице",
|
||||
"Number of live orders that need to be fetched per order status": "Количество реальных заказов, которые должны быть загружены в статус заказа",
|
||||
"Order Status": "Статус заказа",
|
||||
"Promotion / Discount Title": "Акция / Название скидки",
|
||||
"Valid From": "Действителен с",
|
||||
"Valid To": "Действителен до",
|
||||
"Filter": "Фильтр",
|
||||
"Select Option": "Выберите опцию",
|
||||
"Discount": "Скидка",
|
||||
"Discount Value": "Значение скидки",
|
||||
"Enabled ?": "Включено ?",
|
||||
"Visibility": "Видимость",
|
||||
"Promo Code": "Промокод",
|
||||
"Minimum Order Amount": "Минимальная сумма заказа",
|
||||
"Maximum Promo Code Limit": "Максимальный лимит промокода",
|
||||
"Business Hours": "Рабочие часы",
|
||||
"Selling price should be equal or less than MRP.": "Цена продажи должна быть равна или меньше, чем MRP.",
|
||||
"Category name that need to be search.": "Название категории, которая должна быть найдена.",
|
||||
"Please use YYYY-MM-DD format.": "Пожалуйста, используйте формат YYYY-MM-DD.",
|
||||
"Choose what gets discount (products/categories).": "Выберите, что получает скидку (товары/категории).",
|
||||
"piece": "кусок",
|
||||
"kilogram": "килограмм",
|
||||
"Gram": "Грм",
|
||||
"pound": "фунт",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "дюжина",
|
||||
"feet": "футы",
|
||||
"meter": "метр",
|
||||
"square feet": "квадратные футы",
|
||||
"square meter": "квадратный метр",
|
||||
"set": "набор",
|
||||
"hour": "часы",
|
||||
"day": "день",
|
||||
"service": "услуга",
|
||||
"combo": "комбо",
|
||||
"box": "ящик",
|
||||
"pack": "пак",
|
||||
"bottle": "бутылка",
|
||||
"whole": "целиком",
|
||||
"slice": "кусочек",
|
||||
"bulk": "Массовый",
|
||||
"pending": "в ожидании",
|
||||
"paid": "оплачено",
|
||||
"accepted": "принят",
|
||||
"cancelled": "отменено",
|
||||
"done": "done",
|
||||
"products": "товары",
|
||||
"categories": "категории",
|
||||
"all_products": "все_продукты",
|
||||
"percentage": "процент",
|
||||
"flat": "плоский",
|
||||
"fixed_price": "фиксированная цена",
|
||||
"Order Created/Updated": "Заказ создан/обновлен",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Срабатывает при создании нового заказа или изменении статуса заказа в магазине.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- перейдите в раздел **Настройки->API и Webhooks**.\n- В настройках вебхука вставьте этот URL: \n `{{webhookUrl}}`\n- Нажмите на **Сохранить**.\n"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "Streamline ordering from whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.",
|
||||
"Add Product": "Add Product",
|
||||
"Update Product": "Update Product",
|
||||
"Delete Product": "Delete Product",
|
||||
"List Products": "List Products",
|
||||
"Create Category": "Create Category",
|
||||
"Update Category": "Update Category",
|
||||
"Delete Category": "Delete Category",
|
||||
"List Categories": "List Categories",
|
||||
"Get Order Details": "Get Order Details",
|
||||
"List Orders": "List Orders",
|
||||
"List Live Orders": "List Live Orders",
|
||||
"Update Order Status": "Update Order Status",
|
||||
"Create Product Discount": "Create Product Discount",
|
||||
"Create Promo/Coupon Code": "Create Promo/Coupon Code",
|
||||
"Update Business Time": "Update Business Time",
|
||||
"Adds new product to store.": "Adds new product to store.",
|
||||
"Updates an existing product in store.": "Updates an existing product in store.",
|
||||
"Deletes an existing product from store.": "Deletes an existing product from store.",
|
||||
"Retrieves all or single product details from store.": "Retrieves all or single product details from store.",
|
||||
"Creates a new category in store.": "Creates a new category in store.",
|
||||
"Updates an existing category in store.": "Updates an existing category in store.",
|
||||
"Deletes an existing category from store.": "Deletes an existing category from store.",
|
||||
"Retrieves all categories from store.": "Retrieves all categories from store.",
|
||||
"Retrieves order details from store.": "Retrieves order details from store.",
|
||||
"Retrieves orders of store.": "Retrieves orders of store.",
|
||||
"Retrieves live orders of store.": "Retrieves live orders of store.",
|
||||
"Updates status of order in store.": "Updates status of order in store.",
|
||||
"Creates a new discount for category or product level.": "Creates a new discount for category or product level.",
|
||||
"Creates a new promo code for category or product level.": "Creates a new promo code for category or product level.",
|
||||
"Updates business hours.": "Updates business hours.",
|
||||
"Name": "Name",
|
||||
"Description": "Description",
|
||||
"Category": "Category",
|
||||
"MRP Price": "MRP Price",
|
||||
"Selling Price": "Selling Price",
|
||||
"Unit": "Unit",
|
||||
"Unit Value": "Unit Value",
|
||||
"Availability": "Availability",
|
||||
"Exclude Tax": "Exclude Tax",
|
||||
"Enable Variants": "Enable Variants",
|
||||
"Status": "Status",
|
||||
"Product": "Product",
|
||||
"Product name that need to be search.": "Product name that need to be search.",
|
||||
"Category Name": "Category Name",
|
||||
"Category Status": "Category Status",
|
||||
"Search Term": "Search Term",
|
||||
"Order": "Order",
|
||||
"Current page number": "Current page number",
|
||||
"Number of orders per page": "Number of orders per page",
|
||||
"Number of live orders that need to be fetched per order status": "Number of live orders that need to be fetched per order status",
|
||||
"Order Status": "Order Status",
|
||||
"Promotion / Discount Title": "Promotion / Discount Title",
|
||||
"Valid From": "Valid From",
|
||||
"Valid To": "Valid To",
|
||||
"Filter": "Filter",
|
||||
"Select Option": "Select Option",
|
||||
"Discount": "Discount",
|
||||
"Discount Value": "Discount Value",
|
||||
"Enabled ?": "Enabled ?",
|
||||
"Visibility": "Visibility",
|
||||
"Promo Code": "Promo Code",
|
||||
"Minimum Order Amount": "Minimum Order Amount",
|
||||
"Maximum Promo Code Limit": "Maximum Promo Code Limit",
|
||||
"Business Hours": "Business Hours",
|
||||
"Selling price should be equal or less than MRP.": "Selling price should be equal or less than MRP.",
|
||||
"Category name that need to be search.": "Category name that need to be search.",
|
||||
"Please use YYYY-MM-DD format.": "Please use YYYY-MM-DD format.",
|
||||
"Choose what gets discount (products/categories).": "Choose what gets discount (products/categories).",
|
||||
"piece": "piece",
|
||||
"kilogram": "kilogram",
|
||||
"Gram": "Gram",
|
||||
"pound": "pound",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "dozen",
|
||||
"feet": "feet",
|
||||
"meter": "meter",
|
||||
"square feet": "square feet",
|
||||
"square meter": "square meter",
|
||||
"set": "set",
|
||||
"hour": "hour",
|
||||
"day": "day",
|
||||
"service": "service",
|
||||
"combo": "combo",
|
||||
"box": "box",
|
||||
"pack": "pack",
|
||||
"bottle": "bottle",
|
||||
"whole": "whole",
|
||||
"slice": "slice",
|
||||
"bulk": "bulk",
|
||||
"pending": "pending",
|
||||
"paid": "paid",
|
||||
"accepted": "accepted",
|
||||
"cancelled": "cancelled",
|
||||
"done": "done",
|
||||
"products": "products",
|
||||
"categories": "categories",
|
||||
"all_products": "all_products",
|
||||
"percentage": "percentage",
|
||||
"flat": "flat",
|
||||
"fixed_price": "fixed_price",
|
||||
"Order Created/Updated": "Order Created/Updated",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Triggers when a new order is created or a order status is changed in store.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n"
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"Quickzu": "Quickzu",
|
||||
"Streamline ordering from whatsapp": "Streamline ordering from whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.",
|
||||
"Add Product": "Add Product",
|
||||
"Update Product": "Update Product",
|
||||
"Delete Product": "Delete Product",
|
||||
"List Products": "List Products",
|
||||
"Create Category": "Create Category",
|
||||
"Update Category": "Update Category",
|
||||
"Delete Category": "Delete Category",
|
||||
"List Categories": "List Categories",
|
||||
"Get Order Details": "Get Order Details",
|
||||
"List Orders": "List Orders",
|
||||
"List Live Orders": "List Live Orders",
|
||||
"Update Order Status": "Update Order Status",
|
||||
"Create Product Discount": "Create Product Discount",
|
||||
"Create Promo/Coupon Code": "Create Promo/Coupon Code",
|
||||
"Update Business Time": "Update Business Time",
|
||||
"Adds new product to store.": "Adds new product to store.",
|
||||
"Updates an existing product in store.": "Updates an existing product in store.",
|
||||
"Deletes an existing product from store.": "Deletes an existing product from store.",
|
||||
"Retrieves all or single product details from store.": "Retrieves all or single product details from store.",
|
||||
"Creates a new category in store.": "Creates a new category in store.",
|
||||
"Updates an existing category in store.": "Updates an existing category in store.",
|
||||
"Deletes an existing category from store.": "Deletes an existing category from store.",
|
||||
"Retrieves all categories from store.": "Retrieves all categories from store.",
|
||||
"Retrieves order details from store.": "Retrieves order details from store.",
|
||||
"Retrieves orders of store.": "Retrieves orders of store.",
|
||||
"Retrieves live orders of store.": "Retrieves live orders of store.",
|
||||
"Updates status of order in store.": "Updates status of order in store.",
|
||||
"Creates a new discount for category or product level.": "Creates a new discount for category or product level.",
|
||||
"Creates a new promo code for category or product level.": "Creates a new promo code for category or product level.",
|
||||
"Updates business hours.": "Updates business hours.",
|
||||
"Name": "Name",
|
||||
"Description": "Description",
|
||||
"Category": "Category",
|
||||
"MRP Price": "MRP Price",
|
||||
"Selling Price": "Selling Price",
|
||||
"Unit": "Unit",
|
||||
"Unit Value": "Unit Value",
|
||||
"Availability": "Availability",
|
||||
"Exclude Tax": "Exclude Tax",
|
||||
"Enable Variants": "Enable Variants",
|
||||
"Status": "Status",
|
||||
"Product": "Product",
|
||||
"Product name that need to be search.": "Product name that need to be search.",
|
||||
"Category Name": "Category Name",
|
||||
"Category Status": "Category Status",
|
||||
"Search Term": "Search Term",
|
||||
"Order": "Order",
|
||||
"Current page number": "Current page number",
|
||||
"Number of orders per page": "Number of orders per page",
|
||||
"Number of live orders that need to be fetched per order status": "Number of live orders that need to be fetched per order status",
|
||||
"Order Status": "Order Status",
|
||||
"Promotion / Discount Title": "Promotion / Discount Title",
|
||||
"Valid From": "Valid From",
|
||||
"Valid To": "Valid To",
|
||||
"Filter": "Filter",
|
||||
"Select Option": "Select Option",
|
||||
"Discount": "Discount",
|
||||
"Discount Value": "Discount Value",
|
||||
"Enabled ?": "Enabled ?",
|
||||
"Visibility": "Visibility",
|
||||
"Promo Code": "Promo Code",
|
||||
"Minimum Order Amount": "Minimum Order Amount",
|
||||
"Maximum Promo Code Limit": "Maximum Promo Code Limit",
|
||||
"Business Hours": "Business Hours",
|
||||
"Selling price should be equal or less than MRP.": "Selling price should be equal or less than MRP.",
|
||||
"Category name that need to be search.": "Category name that need to be search.",
|
||||
"Please use YYYY-MM-DD format.": "Please use YYYY-MM-DD format.",
|
||||
"Choose what gets discount (products/categories).": "Choose what gets discount (products/categories).",
|
||||
"piece": "piece",
|
||||
"kilogram": "kilogram",
|
||||
"Gram": "Gram",
|
||||
"pound": "pound",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "dozen",
|
||||
"feet": "feet",
|
||||
"meter": "meter",
|
||||
"square feet": "square feet",
|
||||
"square meter": "square meter",
|
||||
"set": "set",
|
||||
"hour": "hour",
|
||||
"day": "day",
|
||||
"service": "service",
|
||||
"combo": "combo",
|
||||
"box": "box",
|
||||
"pack": "pack",
|
||||
"bottle": "bottle",
|
||||
"whole": "whole",
|
||||
"slice": "slice",
|
||||
"bulk": "bulk",
|
||||
"pending": "đang chờ",
|
||||
"paid": "paid",
|
||||
"accepted": "accepted",
|
||||
"cancelled": "cancelled",
|
||||
"done": "done",
|
||||
"products": "products",
|
||||
"categories": "categories",
|
||||
"all_products": "all_products",
|
||||
"percentage": "percentage",
|
||||
"flat": "flat",
|
||||
"fixed_price": "fixed_price",
|
||||
"Order Created/Updated": "Order Created/Updated",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Triggers when a new order is created or a order status is changed in store.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"Streamline ordering from whatsapp": "Streamline ordering from whatsapp",
|
||||
"\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.": "\n1. Login to your Quickzu Dashboard.\n2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.\n3. Copy **API Token** to the clipboard and paste it.",
|
||||
"Add Product": "Add Product",
|
||||
"Update Product": "Update Product",
|
||||
"Delete Product": "Delete Product",
|
||||
"List Products": "List Products",
|
||||
"Create Category": "Create Category",
|
||||
"Update Category": "Update Category",
|
||||
"Delete Category": "Delete Category",
|
||||
"List Categories": "List Categories",
|
||||
"Get Order Details": "Get Order Details",
|
||||
"List Orders": "List Orders",
|
||||
"List Live Orders": "List Live Orders",
|
||||
"Update Order Status": "Update Order Status",
|
||||
"Create Product Discount": "Create Product Discount",
|
||||
"Create Promo/Coupon Code": "Create Promo/Coupon Code",
|
||||
"Update Business Time": "Update Business Time",
|
||||
"Adds new product to store.": "Adds new product to store.",
|
||||
"Updates an existing product in store.": "Updates an existing product in store.",
|
||||
"Deletes an existing product from store.": "Deletes an existing product from store.",
|
||||
"Retrieves all or single product details from store.": "Retrieves all or single product details from store.",
|
||||
"Creates a new category in store.": "Creates a new category in store.",
|
||||
"Updates an existing category in store.": "Updates an existing category in store.",
|
||||
"Deletes an existing category from store.": "Deletes an existing category from store.",
|
||||
"Retrieves all categories from store.": "Retrieves all categories from store.",
|
||||
"Retrieves order details from store.": "Retrieves order details from store.",
|
||||
"Retrieves orders of store.": "Retrieves orders of store.",
|
||||
"Retrieves live orders of store.": "Retrieves live orders of store.",
|
||||
"Updates status of order in store.": "Updates status of order in store.",
|
||||
"Creates a new discount for category or product level.": "Creates a new discount for category or product level.",
|
||||
"Creates a new promo code for category or product level.": "Creates a new promo code for category or product level.",
|
||||
"Updates business hours.": "Updates business hours.",
|
||||
"Name": "名称",
|
||||
"Description": "描述",
|
||||
"Category": "Category",
|
||||
"MRP Price": "MRP Price",
|
||||
"Selling Price": "Selling Price",
|
||||
"Unit": "Unit",
|
||||
"Unit Value": "Unit Value",
|
||||
"Availability": "Availability",
|
||||
"Exclude Tax": "Exclude Tax",
|
||||
"Enable Variants": "Enable Variants",
|
||||
"Status": "状态",
|
||||
"Product": "Product",
|
||||
"Product name that need to be search.": "Product name that need to be search.",
|
||||
"Category Name": "Category Name",
|
||||
"Category Status": "Category Status",
|
||||
"Search Term": "Search Term",
|
||||
"Order": "Order",
|
||||
"Current page number": "Current page number",
|
||||
"Number of orders per page": "Number of orders per page",
|
||||
"Number of live orders that need to be fetched per order status": "Number of live orders that need to be fetched per order status",
|
||||
"Order Status": "Order Status",
|
||||
"Promotion / Discount Title": "Promotion / Discount Title",
|
||||
"Valid From": "Valid From",
|
||||
"Valid To": "Valid To",
|
||||
"Filter": "Filter",
|
||||
"Select Option": "Select Option",
|
||||
"Discount": "Discount",
|
||||
"Discount Value": "Discount Value",
|
||||
"Enabled ?": "已启用 ?",
|
||||
"Visibility": "Visibility",
|
||||
"Promo Code": "Promo Code",
|
||||
"Minimum Order Amount": "Minimum Order Amount",
|
||||
"Maximum Promo Code Limit": "Maximum Promo Code Limit",
|
||||
"Business Hours": "Business Hours",
|
||||
"Selling price should be equal or less than MRP.": "Selling price should be equal or less than MRP.",
|
||||
"Category name that need to be search.": "Category name that need to be search.",
|
||||
"Please use YYYY-MM-DD format.": "Please use YYYY-MM-DD format.",
|
||||
"Choose what gets discount (products/categories).": "Choose what gets discount (products/categories).",
|
||||
"piece": "片段",
|
||||
"kilogram": "kilogram",
|
||||
"Gram": "Gram",
|
||||
"pound": "pound",
|
||||
"litre": "litre",
|
||||
"mili litre": "mili litre",
|
||||
"dozen": "dozen",
|
||||
"feet": "feet",
|
||||
"meter": "meter",
|
||||
"square feet": "square feet",
|
||||
"square meter": "square meter",
|
||||
"set": "set",
|
||||
"hour": "hour",
|
||||
"day": "day",
|
||||
"service": "service",
|
||||
"combo": "combo",
|
||||
"box": "box",
|
||||
"pack": "pack",
|
||||
"bottle": "bottle",
|
||||
"whole": "whole",
|
||||
"slice": "slice",
|
||||
"bulk": "bulk",
|
||||
"pending": "待處理",
|
||||
"paid": "paid",
|
||||
"accepted": "accepted",
|
||||
"cancelled": "cancelled",
|
||||
"done": "完成",
|
||||
"products": "产品",
|
||||
"categories": "categories",
|
||||
"all_products": "all_products",
|
||||
"percentage": "percentage",
|
||||
"flat": "flat",
|
||||
"fixed_price": "fixed_price",
|
||||
"Order Created/Updated": "Order Created/Updated",
|
||||
"Triggers when a new order is created or a order status is changed in store.": "Triggers when a new order is created or a order status is changed in store.",
|
||||
"Markdown": "Markdown",
|
||||
"\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n": "\n- Go to the **Settings->API and Webhooks** section.\n- In the webhook settings, paste this URL: \n `{{webhookUrl}}`\n- Click on **Save**.\n"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
|
||||
import { updateBusinessTimeAction } from './lib/actions/business-settings/update-business-time';
|
||||
import { createCategoryAction } from './lib/actions/categories/create-category';
|
||||
import { deleteCategoryAction } from './lib/actions/categories/delete-category';
|
||||
import { listCategoriesAction } from './lib/actions/categories/list-categories';
|
||||
import { updateCategoryAction } from './lib/actions/categories/update-category';
|
||||
import { createProductDiscountAction } from './lib/actions/discounts/create-product-discount';
|
||||
import { createPromoCodeAction } from './lib/actions/discounts/create-promo-code';
|
||||
import { getOrderDetailsAction } from './lib/actions/orders/get-order-details';
|
||||
import { listLiveOrdersAction } from './lib/actions/orders/list-live-orders';
|
||||
import { listOrdersAction } from './lib/actions/orders/list-orders';
|
||||
import { updateOrderStatusAction } from './lib/actions/orders/update-order-status';
|
||||
import { addProductAction } from './lib/actions/products/create-product';
|
||||
import { deleteProductAction } from './lib/actions/products/delete-product';
|
||||
import { listProductsAction } from './lib/actions/products/list-products';
|
||||
import { updateProductAction } from './lib/actions/products/update-product';
|
||||
import { orderCreatedTrigger } from './lib/triggers/order-created';
|
||||
|
||||
const authHelpDescription = `
|
||||
1. Login to your Quickzu Dashboard.
|
||||
2. Go to **https://app.quickzu.com/dash/settings/api-webhooks**.
|
||||
3. Copy **API Token** to the clipboard and paste it.`;
|
||||
|
||||
export const quickzuAuth = PieceAuth.SecretText({
|
||||
displayName: 'API Token',
|
||||
description: authHelpDescription,
|
||||
required: true,
|
||||
});
|
||||
|
||||
export const quickzu = createPiece({
|
||||
displayName: 'Quickzu',
|
||||
description: 'Streamline ordering from whatsapp',
|
||||
|
||||
auth: quickzuAuth,
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/quickzu.png',
|
||||
authors: ["kishanprmr","abuaboud"],
|
||||
actions: [
|
||||
addProductAction,
|
||||
updateProductAction,
|
||||
deleteProductAction,
|
||||
listProductsAction,
|
||||
createCategoryAction,
|
||||
updateCategoryAction,
|
||||
deleteCategoryAction,
|
||||
listCategoriesAction,
|
||||
getOrderDetailsAction,
|
||||
listOrdersAction,
|
||||
listLiveOrdersAction,
|
||||
updateOrderStatusAction,
|
||||
createProductDiscountAction,
|
||||
createPromoCodeAction,
|
||||
updateBusinessTimeAction,
|
||||
],
|
||||
triggers: [orderCreatedTrigger],
|
||||
});
|
||||
@@ -0,0 +1,73 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient } from '../../common';
|
||||
import { BusinessTimingInput } from '../../common/types';
|
||||
|
||||
export const updateBusinessTimeAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_update_business_time',
|
||||
displayName: 'Update Business Time',
|
||||
description: 'Updates business hours.',
|
||||
props: {
|
||||
items: Property.Array({
|
||||
displayName: 'Business Hours',
|
||||
required: true,
|
||||
properties: {
|
||||
weekday: Property.StaticDropdown({
|
||||
displayName: 'Day',
|
||||
required: true,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: [
|
||||
{ label: 'Sunday', value: '0' },
|
||||
{ label: 'Monday', value: '1' },
|
||||
{ label: 'Tuesday', value: '2' },
|
||||
{ label: 'Wednesday', value: '3' },
|
||||
{ label: 'Thursday', value: '4' },
|
||||
{ label: 'Friday', value: '5' },
|
||||
{ label: 'Saturday', value: '6' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
start: Property.ShortText({
|
||||
displayName: 'Start Time',
|
||||
description: 'Please use 24:00 hour format',
|
||||
required: true,
|
||||
}),
|
||||
end: Property.ShortText({
|
||||
displayName: 'Start Time',
|
||||
description: 'Please use 24:00 hour format',
|
||||
required: true,
|
||||
}),
|
||||
status: Property.Checkbox({
|
||||
displayName: 'Status',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
},
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const items = context.propsValue.items as BusinessDayHour[];
|
||||
const input: BusinessTimingInput = {
|
||||
timing: {},
|
||||
};
|
||||
for (const day of items) {
|
||||
input.timing[day.weekday] = {
|
||||
start: day.start,
|
||||
end: day.end,
|
||||
status: day.status,
|
||||
};
|
||||
}
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.updateBusinessTime(input);
|
||||
},
|
||||
});
|
||||
|
||||
type BusinessDayHour = {
|
||||
weekday: string;
|
||||
start: string;
|
||||
end: string;
|
||||
status: boolean;
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient } from '../../common';
|
||||
|
||||
export const createCategoryAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_create_category',
|
||||
displayName: 'Create Category',
|
||||
description: 'Creates a new category in store.',
|
||||
props: {
|
||||
name: Property.ShortText({
|
||||
displayName: 'Category Name',
|
||||
required: true,
|
||||
}),
|
||||
status: Property.Checkbox({
|
||||
displayName: 'Category Status',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { name, status } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
|
||||
return await client.createCategory({ name, status });
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
|
||||
export const deleteCategoryAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_delete_category',
|
||||
displayName: 'Delete Category',
|
||||
description: 'Deletes an existing category from store.',
|
||||
props: {
|
||||
categoryId: quickzuCommon.categoryId(true),
|
||||
},
|
||||
async run(context) {
|
||||
const { categoryId } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.deleteCategory(categoryId!);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,23 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../../';
|
||||
import { makeClient } from '../../common';
|
||||
|
||||
export const listCategoriesAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_list_categories',
|
||||
displayName: 'List Categories',
|
||||
description: 'Retrieves all categories from store.',
|
||||
props: {
|
||||
term: Property.ShortText({
|
||||
displayName: 'Search Term',
|
||||
description: 'Category name that need to be search.',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { term } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return client.listCategories(term);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
|
||||
export const updateCategoryAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_update_category',
|
||||
displayName: 'Update Category',
|
||||
description: 'Updates an existing category in store.',
|
||||
props: {
|
||||
categoryId: quickzuCommon.categoryId(true),
|
||||
name: Property.ShortText({
|
||||
displayName: 'Category Name',
|
||||
required: false,
|
||||
}),
|
||||
status: Property.Checkbox({
|
||||
displayName: 'Category Status',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { categoryId, name, status } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
|
||||
return await client.updateCategory(categoryId!, { name, status });
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,169 @@
|
||||
import {
|
||||
DynamicPropsValue,
|
||||
Property,
|
||||
createAction,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient } from '../../common';
|
||||
import {
|
||||
DiscountFilterType,
|
||||
DiscountMethod,
|
||||
DiscountValueType,
|
||||
} from '../../common/constants';
|
||||
import { ProductDiscountInput } from '../../common/types';
|
||||
|
||||
export const createProductDiscountAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_create_product_discount',
|
||||
displayName: 'Create Product Discount',
|
||||
description: 'Creates a new discount for category or product level.',
|
||||
props: {
|
||||
title: Property.ShortText({
|
||||
displayName: 'Promotion / Discount Title',
|
||||
required: true,
|
||||
}),
|
||||
start_date: Property.DateTime({
|
||||
displayName: 'Valid From',
|
||||
description: 'Please use YYYY-MM-DD format.',
|
||||
required: true,
|
||||
}),
|
||||
end_date: Property.DateTime({
|
||||
displayName: 'Valid To',
|
||||
description: 'Please use YYYY-MM-DD format.',
|
||||
required: true,
|
||||
}),
|
||||
filter_type: Property.StaticDropdown({
|
||||
displayName: 'Filter',
|
||||
description: 'Choose what gets discount (products/categories).',
|
||||
required: true,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: Object.values(DiscountFilterType).map((value) => {
|
||||
return {
|
||||
label: value.toLowerCase(),
|
||||
value: value,
|
||||
};
|
||||
}),
|
||||
},
|
||||
}),
|
||||
selectedFilterValues: Property.DynamicProperties({
|
||||
auth: quickzuAuth,
|
||||
displayName: 'Select Option',
|
||||
refreshers: ['filter_type'],
|
||||
required: true,
|
||||
props: async ({ auth, filter_type }) => {
|
||||
if (!auth) return {};
|
||||
if (!filter_type) return {};
|
||||
|
||||
const fields: DynamicPropsValue = {};
|
||||
const discountFilterType = filter_type as unknown as DiscountFilterType;
|
||||
|
||||
const client = makeClient(auth);
|
||||
|
||||
switch (discountFilterType) {
|
||||
case DiscountFilterType.CATEGORIES: {
|
||||
const res = await client.listCategories();
|
||||
fields['values'] = Property.StaticMultiSelectDropdown({
|
||||
displayName: 'Categories',
|
||||
required: true,
|
||||
description: 'Categories eligible for a discount.',
|
||||
options: {
|
||||
disabled: false,
|
||||
options: res.data.map((category) => {
|
||||
return {
|
||||
label: category.name,
|
||||
value: category._id,
|
||||
};
|
||||
}),
|
||||
},
|
||||
});
|
||||
break;
|
||||
}
|
||||
case DiscountFilterType.PRODUCTS: {
|
||||
const res = await client.listProducts();
|
||||
fields['values'] = Property.StaticMultiSelectDropdown({
|
||||
displayName: 'Products',
|
||||
required: true,
|
||||
description: 'Products eligible for a discount.',
|
||||
options: {
|
||||
disabled: false,
|
||||
options: res.data.map((product) => {
|
||||
return {
|
||||
label: product.name,
|
||||
value: product._id,
|
||||
};
|
||||
}),
|
||||
},
|
||||
});
|
||||
break;
|
||||
}
|
||||
case DiscountFilterType.ALL_PRODUCTS: {
|
||||
fields['values'] = [];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return fields;
|
||||
},
|
||||
}),
|
||||
type: Property.StaticDropdown({
|
||||
displayName: 'Discount',
|
||||
required: true,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: Object.values(DiscountValueType).map((value) => {
|
||||
return {
|
||||
label: value.toLowerCase(),
|
||||
value: value,
|
||||
};
|
||||
}),
|
||||
},
|
||||
}),
|
||||
value: Property.ShortText({
|
||||
displayName: 'Discount Value',
|
||||
required: true,
|
||||
}),
|
||||
is_enabled: Property.Checkbox({
|
||||
displayName: 'Enabled ?',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
is_visible: Property.Checkbox({
|
||||
displayName: 'Visibility',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const {
|
||||
title,
|
||||
start_date,
|
||||
end_date,
|
||||
filter_type,
|
||||
selectedFilterValues,
|
||||
type,
|
||||
value,
|
||||
is_enabled,
|
||||
is_visible,
|
||||
} = context.propsValue;
|
||||
|
||||
const input: ProductDiscountInput = {
|
||||
discount_method: DiscountMethod.ITEM_LEVEL,
|
||||
title,
|
||||
start_date,
|
||||
end_date,
|
||||
filter_type,
|
||||
type,
|
||||
value,
|
||||
is_enabled,
|
||||
is_visible,
|
||||
};
|
||||
if (filter_type === DiscountFilterType.CATEGORIES) {
|
||||
input.selectedCategories = selectedFilterValues['values'];
|
||||
} else if (filter_type === DiscountFilterType.PRODUCTS) {
|
||||
input.selectedProducts = selectedFilterValues['values'];
|
||||
}
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.createProductDiscount(input);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,189 @@
|
||||
import {
|
||||
DynamicPropsValue,
|
||||
Property,
|
||||
createAction,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient } from '../../common';
|
||||
import {
|
||||
DiscountFilterType,
|
||||
DiscountMethod,
|
||||
DiscountValueType,
|
||||
} from '../../common/constants';
|
||||
import { ProductDiscountInput } from '../../common/types';
|
||||
|
||||
export const createPromoCodeAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_create_promo_code',
|
||||
displayName: 'Create Promo/Coupon Code',
|
||||
description: 'Creates a new promo code for category or product level.',
|
||||
props: {
|
||||
title: Property.ShortText({
|
||||
displayName: 'Promotion / Discount Title',
|
||||
required: true,
|
||||
}),
|
||||
start_date: Property.DateTime({
|
||||
displayName: 'Valid From',
|
||||
description: 'Please use YYYY-MM-DD format.',
|
||||
required: true,
|
||||
}),
|
||||
end_date: Property.DateTime({
|
||||
displayName: 'Valid To',
|
||||
description: 'Please use YYYY-MM-DD format.',
|
||||
required: true,
|
||||
}),
|
||||
filter_type: Property.StaticDropdown({
|
||||
displayName: 'Filter',
|
||||
description: 'Choose what gets discount (products/categories).',
|
||||
required: true,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: Object.values(DiscountFilterType).map((value) => {
|
||||
return {
|
||||
label: value.toLowerCase(),
|
||||
value: value,
|
||||
};
|
||||
}),
|
||||
},
|
||||
}),
|
||||
selectedFilterValues: Property.DynamicProperties({
|
||||
auth: quickzuAuth,
|
||||
displayName: 'Select Option',
|
||||
refreshers: ['filter_type'],
|
||||
required: true,
|
||||
props: async ({ auth, filter_type }) => {
|
||||
if (!auth) return {};
|
||||
if (!filter_type) return {};
|
||||
|
||||
const fields: DynamicPropsValue = {};
|
||||
const discountFilterType = filter_type as unknown as DiscountFilterType;
|
||||
|
||||
const client = makeClient(auth);
|
||||
|
||||
switch (discountFilterType) {
|
||||
case DiscountFilterType.CATEGORIES: {
|
||||
const res = await client.listCategories();
|
||||
fields['values'] = Property.StaticMultiSelectDropdown({
|
||||
displayName: 'Categories',
|
||||
required: true,
|
||||
description: 'Categories eligible for a discount.',
|
||||
options: {
|
||||
disabled: false,
|
||||
options: res.data.map((category) => {
|
||||
return {
|
||||
label: category.name,
|
||||
value: category._id,
|
||||
};
|
||||
}),
|
||||
},
|
||||
});
|
||||
break;
|
||||
}
|
||||
case DiscountFilterType.PRODUCTS: {
|
||||
const res = await client.listProducts();
|
||||
fields['values'] = Property.StaticMultiSelectDropdown({
|
||||
displayName: 'Products',
|
||||
required: true,
|
||||
description: 'Products eligible for a discount.',
|
||||
options: {
|
||||
disabled: false,
|
||||
options: res.data.map((product) => {
|
||||
return {
|
||||
label: product.name,
|
||||
value: product._id,
|
||||
};
|
||||
}),
|
||||
},
|
||||
});
|
||||
break;
|
||||
}
|
||||
case DiscountFilterType.ALL_PRODUCTS: {
|
||||
fields['values'] = [];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return fields;
|
||||
},
|
||||
}),
|
||||
promo_code: Property.ShortText({
|
||||
displayName: 'Promo Code',
|
||||
required: true,
|
||||
}),
|
||||
minimum_cart_value: Property.Number({
|
||||
displayName: 'Minimum Order Amount',
|
||||
required: true,
|
||||
}),
|
||||
max_users_limit: Property.Number({
|
||||
displayName: 'Maximum Promo Code Limit',
|
||||
required: true,
|
||||
}),
|
||||
type: Property.StaticDropdown({
|
||||
displayName: 'Discount',
|
||||
required: true,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: Object.values(DiscountValueType)
|
||||
.filter((value) => value !== DiscountValueType.FIXED_PRICE)
|
||||
.map((value) => {
|
||||
return {
|
||||
label: value.toLowerCase(),
|
||||
value: value,
|
||||
};
|
||||
}),
|
||||
},
|
||||
}),
|
||||
value: Property.ShortText({
|
||||
displayName: 'Discount Value',
|
||||
required: true,
|
||||
}),
|
||||
is_enabled: Property.Checkbox({
|
||||
displayName: 'Enabled ?',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
is_visible: Property.Checkbox({
|
||||
displayName: 'Visibility',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const {
|
||||
title,
|
||||
start_date,
|
||||
end_date,
|
||||
filter_type,
|
||||
selectedFilterValues,
|
||||
type,
|
||||
promo_code,
|
||||
max_users_limit,
|
||||
minimum_cart_value,
|
||||
value,
|
||||
is_enabled,
|
||||
is_visible,
|
||||
} = context.propsValue;
|
||||
|
||||
const input: ProductDiscountInput = {
|
||||
discount_method: DiscountMethod.SUB_TOTAL,
|
||||
title,
|
||||
start_date,
|
||||
end_date,
|
||||
filter_type,
|
||||
max_users_limit,
|
||||
minimum_cart_value,
|
||||
promo_code,
|
||||
type,
|
||||
value,
|
||||
is_enabled,
|
||||
is_visible,
|
||||
};
|
||||
if (filter_type === DiscountFilterType.CATEGORIES) {
|
||||
input.selectedCategories = selectedFilterValues['values'];
|
||||
} else if (filter_type === DiscountFilterType.PRODUCTS) {
|
||||
input.selectedProducts = selectedFilterValues['values'];
|
||||
}
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.createProductDiscount(input);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
|
||||
export const getOrderDetailsAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_get_order_details',
|
||||
displayName: 'Get Order Details',
|
||||
description: 'Retrieves order details from store.',
|
||||
props: {
|
||||
orderId: quickzuCommon.orderId(true),
|
||||
},
|
||||
async run(context) {
|
||||
const { orderId } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.getOrderDetails(orderId!);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,24 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient } from '../../common';
|
||||
|
||||
export const listLiveOrdersAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_list_live_orders',
|
||||
displayName: 'List Live Orders',
|
||||
description: 'Retrieves live orders of store.',
|
||||
props: {
|
||||
limit: Property.Number({
|
||||
displayName:
|
||||
'Number of live orders that need to be fetched per order status',
|
||||
required: true,
|
||||
defaultValue: 15,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { limit } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.listLiveOrders(limit);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient } from '../../common';
|
||||
|
||||
export const listOrdersAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_list_orders',
|
||||
displayName: 'List Orders',
|
||||
description: 'Retrieves orders of store.',
|
||||
props: {
|
||||
page: Property.Number({
|
||||
displayName: 'Current page number',
|
||||
required: true,
|
||||
defaultValue: 1,
|
||||
}),
|
||||
limit: Property.Number({
|
||||
displayName: 'Number of orders per page',
|
||||
required: true,
|
||||
defaultValue: 20,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { page, limit } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.listOrders(page, limit);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,33 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
import { OrderStatus } from '../../common/constants';
|
||||
|
||||
export const updateOrderStatusAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_update_order_status',
|
||||
displayName: 'Update Order Status',
|
||||
description: 'Updates status of order in store.',
|
||||
props: {
|
||||
orderId: quickzuCommon.orderId(true),
|
||||
status: Property.StaticDropdown({
|
||||
displayName: 'Order Status',
|
||||
required: true,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: Object.values(OrderStatus).map((value) => {
|
||||
return {
|
||||
label: value,
|
||||
value: value,
|
||||
};
|
||||
}),
|
||||
},
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { orderId, status } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.updateOrderStatus(orderId!, status);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,104 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
import { ProductUnit } from '../../common/constants';
|
||||
|
||||
export const addProductAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_add_product',
|
||||
displayName: 'Add Product',
|
||||
description: 'Adds new product to store.',
|
||||
props: {
|
||||
name: Property.ShortText({
|
||||
displayName: 'Name',
|
||||
required: true,
|
||||
}),
|
||||
desc: Property.LongText({
|
||||
displayName: 'Description',
|
||||
required: false,
|
||||
}),
|
||||
categoryId: quickzuCommon.categoryId(true),
|
||||
mrp: Property.Number({
|
||||
displayName: 'MRP Price',
|
||||
required: true,
|
||||
}),
|
||||
price: Property.Number({
|
||||
displayName: 'Selling Price',
|
||||
required: false,
|
||||
description: 'Selling price should be equal or less than MRP.',
|
||||
}),
|
||||
unit: Property.StaticDropdown({
|
||||
displayName: 'Unit',
|
||||
required: true,
|
||||
defaultValue: 'kilogram',
|
||||
options: {
|
||||
disabled: false,
|
||||
options: Object.values(ProductUnit).map((val) => {
|
||||
return {
|
||||
label: val,
|
||||
value: val,
|
||||
};
|
||||
}),
|
||||
},
|
||||
}),
|
||||
value_per_unit: Property.Number({
|
||||
displayName: 'Unit Value',
|
||||
required: true,
|
||||
defaultValue: 1,
|
||||
}),
|
||||
availability: Property.Checkbox({
|
||||
displayName: 'Availability',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
exclude_tax: Property.Checkbox({
|
||||
displayName: 'Exclude Tax',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
enable_variants: Property.Checkbox({
|
||||
displayName: 'Enable Variants',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
status: Property.Checkbox({
|
||||
displayName: 'Status',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const {
|
||||
name,
|
||||
desc,
|
||||
categoryId,
|
||||
mrp,
|
||||
price,
|
||||
unit,
|
||||
value_per_unit,
|
||||
availability,
|
||||
exclude_tax,
|
||||
enable_variants,
|
||||
status,
|
||||
} = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
|
||||
return await client.createProduct({
|
||||
name,
|
||||
desc,
|
||||
category: categoryId!,
|
||||
mrp,
|
||||
price,
|
||||
unit,
|
||||
value_per_unit,
|
||||
availability,
|
||||
exclude_tax,
|
||||
enable_variants,
|
||||
status,
|
||||
meta: {
|
||||
nonveg: false,
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
|
||||
export const deleteProductAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_delete_product',
|
||||
displayName: 'Delete Product',
|
||||
description: 'Deletes an existing product from store.',
|
||||
props: {
|
||||
productId: quickzuCommon.productId(true),
|
||||
},
|
||||
async run(context) {
|
||||
const { productId } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.deleteProduct(productId!);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,23 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
|
||||
export const listProductsAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_list_products',
|
||||
displayName: 'List Products',
|
||||
description: 'Retrieves all or single product details from store.',
|
||||
props: {
|
||||
term: Property.ShortText({
|
||||
displayName: 'Product name that need to be search.',
|
||||
required: false,
|
||||
}),
|
||||
categoryId: quickzuCommon.categoryId(false),
|
||||
},
|
||||
async run(context) {
|
||||
const { term, categoryId } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.listProducts(term, categoryId);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,100 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../..';
|
||||
import { makeClient, quickzuCommon } from '../../common';
|
||||
import { ProductUnit } from '../../common/constants';
|
||||
|
||||
export const updateProductAction = createAction({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_update_product',
|
||||
displayName: 'Update Product',
|
||||
description: 'Updates an existing product in store.',
|
||||
props: {
|
||||
productId: quickzuCommon.productId(true),
|
||||
name: Property.ShortText({
|
||||
displayName: 'Name',
|
||||
required: false,
|
||||
}),
|
||||
desc: Property.LongText({
|
||||
displayName: 'Description',
|
||||
required: false,
|
||||
}),
|
||||
categoryId: quickzuCommon.categoryId(false),
|
||||
mrp: Property.Number({
|
||||
displayName: 'MRP Price',
|
||||
required: false,
|
||||
}),
|
||||
price: Property.Number({
|
||||
displayName: 'Selling Price',
|
||||
required: false,
|
||||
description: 'Selling price should be equal or less than MRP.',
|
||||
}),
|
||||
unit: Property.StaticDropdown({
|
||||
displayName: 'Unit',
|
||||
required: false,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: Object.values(ProductUnit).map((val) => {
|
||||
return {
|
||||
label: val,
|
||||
value: val,
|
||||
};
|
||||
}),
|
||||
},
|
||||
}),
|
||||
value_per_unit: Property.Number({
|
||||
displayName: 'Unit Value',
|
||||
required: false,
|
||||
}),
|
||||
availability: Property.Checkbox({
|
||||
displayName: 'Availability',
|
||||
required: false,
|
||||
}),
|
||||
exclude_tax: Property.Checkbox({
|
||||
displayName: 'Exclude Tax',
|
||||
required: false,
|
||||
}),
|
||||
enable_variants: Property.Checkbox({
|
||||
displayName: 'Enable Variants',
|
||||
required: false,
|
||||
}),
|
||||
status: Property.Checkbox({
|
||||
displayName: 'Status',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const {
|
||||
name,
|
||||
productId,
|
||||
desc,
|
||||
categoryId,
|
||||
mrp,
|
||||
price,
|
||||
unit,
|
||||
value_per_unit,
|
||||
availability,
|
||||
exclude_tax,
|
||||
enable_variants,
|
||||
status,
|
||||
} = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
|
||||
return await client.updateProduct(productId!, {
|
||||
name,
|
||||
desc,
|
||||
category: categoryId!,
|
||||
mrp,
|
||||
price,
|
||||
unit,
|
||||
value_per_unit,
|
||||
availability,
|
||||
exclude_tax,
|
||||
enable_variants,
|
||||
status,
|
||||
meta: {
|
||||
nonveg: false,
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,182 @@
|
||||
import {
|
||||
HttpMessageBody,
|
||||
HttpMethod,
|
||||
QueryParams,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { OrderStatus } from './constants';
|
||||
import {
|
||||
BusinessTimingInput,
|
||||
Category,
|
||||
CategoryInput,
|
||||
ListAPIResponse,
|
||||
Product,
|
||||
ProductDiscountInput,
|
||||
ProductInput,
|
||||
} from './types';
|
||||
|
||||
function emptyValueFilter(
|
||||
accessor: (key: string) => any
|
||||
): (key: string) => boolean {
|
||||
return (key: string) => {
|
||||
const val = accessor(key);
|
||||
return (
|
||||
val !== null &&
|
||||
val !== undefined &&
|
||||
(typeof val != 'string' || val.length > 0)
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
export function prepareQuery(request?: Record<string, any>): QueryParams {
|
||||
const params: QueryParams = {};
|
||||
if (!request) return params;
|
||||
Object.keys(request)
|
||||
.filter(emptyValueFilter((k) => request[k]))
|
||||
.forEach((k: string) => {
|
||||
params[k] = (request as Record<string, any>)[k].toString();
|
||||
});
|
||||
return params;
|
||||
}
|
||||
|
||||
export class QuickzuAPIClient {
|
||||
constructor(private apiToken: string) {}
|
||||
async makeRequest<T extends HttpMessageBody = any>(
|
||||
method: HttpMethod,
|
||||
resourceUri: string,
|
||||
query?: QueryParams,
|
||||
body: any | undefined = undefined
|
||||
): Promise<T> {
|
||||
// const baseUrl = this.apiTableUrl.replace(/\/$/, '');
|
||||
const res = await httpClient.sendRequest<any>({
|
||||
method: method,
|
||||
url: `https://app.quickzu.com/api` + resourceUri,
|
||||
headers: {
|
||||
Authorization: this.apiToken,
|
||||
},
|
||||
queryParams: query,
|
||||
body: body,
|
||||
});
|
||||
return res.body;
|
||||
}
|
||||
async createCategory(categoryInput: CategoryInput) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.POST,
|
||||
'/seller/categories/',
|
||||
undefined,
|
||||
categoryInput
|
||||
);
|
||||
}
|
||||
async updateCategory(
|
||||
categoryId: string,
|
||||
categoryInput: Partial<CategoryInput>
|
||||
) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.PUT,
|
||||
`/seller/categories/${categoryId}`,
|
||||
undefined,
|
||||
categoryInput
|
||||
);
|
||||
}
|
||||
async deleteCategory(categoryId: string) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.DELETE,
|
||||
`/seller/categories/${categoryId}`
|
||||
);
|
||||
}
|
||||
async listCategories(term?: string): Promise<ListAPIResponse<Category>> {
|
||||
return await this.makeRequest<ListAPIResponse<Category>>(
|
||||
HttpMethod.GET,
|
||||
'/seller/categories',
|
||||
prepareQuery({
|
||||
term: term,
|
||||
})
|
||||
);
|
||||
}
|
||||
async createProduct(productInput: ProductInput) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.POST,
|
||||
'/seller/products',
|
||||
undefined,
|
||||
productInput
|
||||
);
|
||||
}
|
||||
async updateProduct(productId: string, productInput: Partial<ProductInput>) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.PUT,
|
||||
`/seller/products/${productId}`,
|
||||
undefined,
|
||||
productInput
|
||||
);
|
||||
}
|
||||
async deleteProduct(productId: string) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.DELETE,
|
||||
`/seller/products/${productId}`
|
||||
);
|
||||
}
|
||||
async listProducts(
|
||||
term?: string,
|
||||
categoryId?: string
|
||||
): Promise<ListAPIResponse<Product>> {
|
||||
return await this.makeRequest<ListAPIResponse<Product>>(
|
||||
HttpMethod.GET,
|
||||
'/seller/products',
|
||||
prepareQuery({
|
||||
term: term,
|
||||
category: categoryId,
|
||||
})
|
||||
);
|
||||
}
|
||||
async getOrderDetails(orderId: string) {
|
||||
return await this.makeRequest(HttpMethod.GET, `/seller/orders/${orderId}`);
|
||||
}
|
||||
async updateOrderStatus(orderId: string, status: OrderStatus) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.PUT,
|
||||
`/seller/orders/${orderId}`,
|
||||
undefined,
|
||||
{
|
||||
status: status,
|
||||
}
|
||||
);
|
||||
}
|
||||
async listOrders(page: number, limit: number) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.GET,
|
||||
'/seller/orders/',
|
||||
prepareQuery({ page: page, limit: limit })
|
||||
);
|
||||
}
|
||||
async listLiveOrders(limit: number) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.GET,
|
||||
'/seller/orders/live',
|
||||
prepareQuery({ limit: limit })
|
||||
);
|
||||
}
|
||||
async createProductDiscount(discountInput: ProductDiscountInput) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.POST,
|
||||
'/seller/discounts',
|
||||
undefined,
|
||||
discountInput
|
||||
);
|
||||
}
|
||||
async createPromoCode(promocodeInput: ProductDiscountInput) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.POST,
|
||||
'/seller/discounts',
|
||||
undefined,
|
||||
promocodeInput
|
||||
);
|
||||
}
|
||||
async updateBusinessTime(timingInput: BusinessTimingInput) {
|
||||
return await this.makeRequest(
|
||||
HttpMethod.PUT,
|
||||
'/seller/settings',
|
||||
undefined,
|
||||
timingInput
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
export enum OrderStatus {
|
||||
PENDING = 'pending',
|
||||
PAID = 'paid',
|
||||
ACCEPTED = 'accepted',
|
||||
CANCELLED = 'cancelled',
|
||||
DONE = 'done',
|
||||
}
|
||||
export enum DiscountFilterType {
|
||||
PRODUCTS = 'PRODUCTS',
|
||||
CATEGORIES = 'CATEGORIES',
|
||||
ALL_PRODUCTS = 'ALL_PRODUCTS',
|
||||
}
|
||||
|
||||
export enum DiscountValueType {
|
||||
PERCENTAGE = 'PERCENTAGE',
|
||||
FLAT = 'FLAT',
|
||||
FIXED_PRICE = 'FIXED_PRICE',
|
||||
}
|
||||
|
||||
export enum DiscountMethod {
|
||||
ITEM_LEVEL = 'ITEM_LEVEL',
|
||||
SUB_TOTAL = 'SUB_TOTAL',
|
||||
}
|
||||
|
||||
export enum ProductUnit {
|
||||
PIECE = 'piece',
|
||||
KILOGRAM = 'kilogram',
|
||||
GRAM = 'Gram',
|
||||
POUND = 'pound',
|
||||
LITRE = 'litre',
|
||||
MILI_LITRE = 'mili litre',
|
||||
DOZEN = 'dozen',
|
||||
FEET = 'feet',
|
||||
METER = 'meter',
|
||||
SQUARE_FEET = 'square feet',
|
||||
SQUARE_METER = 'square meter',
|
||||
SET = 'set',
|
||||
HOUR = 'hour',
|
||||
DAY = 'day',
|
||||
SERVICE = 'service',
|
||||
COMBO = 'combo',
|
||||
BOX = 'box',
|
||||
PACK = 'pack',
|
||||
BOTTLE = 'bottle',
|
||||
WHOLE = 'whole',
|
||||
SLICE = 'slice',
|
||||
BULK = 'bulk',
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
import { AppConnectionValueForAuthProperty, PiecePropValueSchema, Property } from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../';
|
||||
import { QuickzuAPIClient } from './client';
|
||||
|
||||
export function makeClient(auth: AppConnectionValueForAuthProperty<typeof quickzuAuth>) {
|
||||
const client = new QuickzuAPIClient(auth.secret_text);
|
||||
return client;
|
||||
}
|
||||
|
||||
export const quickzuCommon = {
|
||||
categoryId: (required = false) =>
|
||||
Property.Dropdown({
|
||||
auth: quickzuAuth,
|
||||
displayName: 'Category',
|
||||
refreshers: [],
|
||||
required,
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please connect your account first.',
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listCategories();
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: res.data.map((category) => {
|
||||
return {
|
||||
label: category.name,
|
||||
value: category._id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
productId: (required = false) =>
|
||||
Property.Dropdown({
|
||||
auth: quickzuAuth,
|
||||
displayName: 'Product',
|
||||
refreshers: [],
|
||||
required,
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please connect your account first.',
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listProducts();
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: res.data.map((product) => {
|
||||
return {
|
||||
label: product.name,
|
||||
value: product._id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
orderId: (required = false) =>
|
||||
Property.Dropdown<string,boolean,typeof quickzuAuth>({
|
||||
auth: quickzuAuth,
|
||||
displayName: 'Order',
|
||||
refreshers: [],
|
||||
required,
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please connect your account first.',
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listOrders(1, 20);
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: res['data'].map(
|
||||
(order: { _id: string; order_id: number }) => {
|
||||
return {
|
||||
label: order.order_id.toString(),
|
||||
value: order._id,
|
||||
};
|
||||
}
|
||||
),
|
||||
};
|
||||
},
|
||||
}),
|
||||
};
|
||||
@@ -0,0 +1,92 @@
|
||||
import {
|
||||
DiscountFilterType,
|
||||
DiscountMethod,
|
||||
DiscountValueType,
|
||||
} from './constants';
|
||||
|
||||
export type ListAPIResponse<T> = {
|
||||
data: Array<T>;
|
||||
total: number;
|
||||
success: boolean;
|
||||
};
|
||||
|
||||
export type Category = {
|
||||
status: boolean;
|
||||
index: number;
|
||||
_id: string;
|
||||
name: string;
|
||||
shop: string;
|
||||
__v: number;
|
||||
};
|
||||
|
||||
export type CategoryInput = {
|
||||
name: string;
|
||||
status: boolean;
|
||||
};
|
||||
|
||||
export type Product = {
|
||||
desc: string;
|
||||
value_per_unit: number;
|
||||
status: boolean;
|
||||
availability: boolean;
|
||||
enable_variants: boolean;
|
||||
stock_enabled: boolean;
|
||||
available_stock: number;
|
||||
sku: string;
|
||||
exclude_tax: boolean;
|
||||
index: number;
|
||||
_id: string;
|
||||
name: string;
|
||||
mrp: number;
|
||||
price: number;
|
||||
category: Pick<Category, '_id' | 'name'>;
|
||||
unit: string;
|
||||
meta: { nonveg: boolean };
|
||||
picture: string;
|
||||
shop: string;
|
||||
__v: number;
|
||||
picture_thumb: string;
|
||||
id: string;
|
||||
};
|
||||
|
||||
export type ProductInput = {
|
||||
name: string;
|
||||
desc?: string;
|
||||
value_per_unit: number;
|
||||
status: boolean;
|
||||
availability: boolean;
|
||||
enable_variants: boolean;
|
||||
exclude_tax: boolean;
|
||||
mrp: number;
|
||||
price?: number;
|
||||
category: string;
|
||||
unit: string;
|
||||
meta: { nonveg: boolean };
|
||||
};
|
||||
|
||||
export type ProductDiscountInput = {
|
||||
discount_method: DiscountMethod;
|
||||
filter_type: DiscountFilterType;
|
||||
is_enabled: boolean;
|
||||
is_visible: boolean;
|
||||
start_date: string;
|
||||
end_date: string;
|
||||
max_users_limit?: number;
|
||||
minimum_cart_value?: number;
|
||||
selectedCategories?: string[];
|
||||
selectedProducts?: string[];
|
||||
promo_code?: string;
|
||||
title: string;
|
||||
type: DiscountValueType;
|
||||
value: string;
|
||||
};
|
||||
|
||||
export type BusinessTimingInput = {
|
||||
timing: {
|
||||
[key: string]: {
|
||||
status: boolean;
|
||||
start: string;
|
||||
end: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,253 @@
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { quickzuAuth } from '../../';
|
||||
import { WebhookHandshakeStrategy } from '@activepieces/shared';
|
||||
const markdown = `
|
||||
- Go to the **Settings->API and Webhooks** section.
|
||||
- In the webhook settings, paste this URL:
|
||||
\`{{webhookUrl}}\`
|
||||
- Click on **Save**.
|
||||
`;
|
||||
const sampleData = {
|
||||
payload: {
|
||||
id: '65cc96cfcf7028f638e20b0c',
|
||||
data: {
|
||||
id: '65cc96cfcf7028f638e20b0c',
|
||||
__v: 0,
|
||||
_id: '65cc96cfcf7028f638e20b0c',
|
||||
area: '63862620938a5552a9e6b',
|
||||
shop: '5fbe833cef26b83b8b7c3',
|
||||
status: 'pending',
|
||||
currency: 'INR',
|
||||
customer: {
|
||||
phone: '9039101337',
|
||||
address: 'okay mumbai',
|
||||
full_name: 'Mohit',
|
||||
},
|
||||
order_id: 233312,
|
||||
products: [
|
||||
{
|
||||
id: '65cc96cfcf70280fbde20b0d',
|
||||
_id: '65cc96cfcf70280fbde20b0d',
|
||||
qty: 1,
|
||||
addon: [],
|
||||
amount: 10,
|
||||
product: {
|
||||
id: '5fbe8677ef26b83b8f53b7cf',
|
||||
__v: 0,
|
||||
_id: '5fbe8677ef26b83b8f53b7cf',
|
||||
mrp: 10,
|
||||
sku: '',
|
||||
desc: '',
|
||||
meta: { nonveg: false },
|
||||
name: 'Shrewsbury Cookies',
|
||||
shop: '5fbe833cef26b8f53b7c3',
|
||||
unit: 'gram',
|
||||
index: 0,
|
||||
price: 10,
|
||||
addons: [],
|
||||
status: true,
|
||||
options: [],
|
||||
category: '5fbe83acef26bb8f53b7c7',
|
||||
variants: [],
|
||||
exclude_tax: false,
|
||||
availability: true,
|
||||
stock_enabled: false,
|
||||
value_per_unit: 200,
|
||||
available_stock: -1,
|
||||
enable_variants: true,
|
||||
},
|
||||
variant: [],
|
||||
createdAt: '2024-02-14T10:32:47.953Z',
|
||||
updatedAt: '2024-02-14T10:32:47.953Z',
|
||||
},
|
||||
],
|
||||
coupon_id: '',
|
||||
createdAt: '2024-02-14T10:32:47.953Z',
|
||||
sub_total: 29,
|
||||
updatedAt: '2024-02-14T10:32:47.953Z',
|
||||
order_type: 'delivery',
|
||||
coupon_code: '',
|
||||
instruction: 'spicy food',
|
||||
payment_mode: 'paylater',
|
||||
taxes_amount: 2.9,
|
||||
total_amount: '31.90',
|
||||
currency_data: {
|
||||
code: 'INR',
|
||||
name: 'Indian Rupee',
|
||||
symbol: 'Rs',
|
||||
rounding: 0,
|
||||
name_plural: 'Indian rupees',
|
||||
symbol_native: '₹',
|
||||
decimal_digits: 2,
|
||||
},
|
||||
payment_status: 'unpaid',
|
||||
transaction_id: '',
|
||||
delivery_charges: 0,
|
||||
stripe_session_id: '',
|
||||
subtotal_discount: 0,
|
||||
item_level_discount: 0,
|
||||
razorpay_session_id: '',
|
||||
},
|
||||
shop: {
|
||||
id: '5fbe833c6b83b8f53b7c3',
|
||||
__v: 0,
|
||||
_id: '5fbe833c6b83b8f53b7c3',
|
||||
css: '',
|
||||
apps: { analytics: '' },
|
||||
desc: 'pastries, sandwiches, cake',
|
||||
name: 'Classic Cakes',
|
||||
alias: 'ccake',
|
||||
header: '',
|
||||
timing: {
|
||||
'0': { end: '23:59', start: '00:00', status: true },
|
||||
'1': { end: '23:59', start: '00:00', status: false },
|
||||
'2': { end: '23:59', start: '00:00', status: true },
|
||||
'3': { end: '23:59', start: '00:00', status: true },
|
||||
'4': { end: '23:59', start: '00:00', status: true },
|
||||
'5': { end: '23:59', start: '00:00', status: true },
|
||||
'6': { end: '23:59', start: '00:00', status: true },
|
||||
createdAt: '2024-01-13T17:54:46.861Z',
|
||||
updatedAt: '2024-01-13T17:54:46.861Z',
|
||||
},
|
||||
address: '78 Washington St, Hoboken',
|
||||
country: 'IN',
|
||||
dine_in: true,
|
||||
domains: [],
|
||||
message: {},
|
||||
pick_up: true,
|
||||
category: 'restaurant',
|
||||
currency: 'INR',
|
||||
delivery: {
|
||||
cost: 0,
|
||||
free: 0,
|
||||
status: true,
|
||||
min_order: 0,
|
||||
is_free_delivery: true,
|
||||
},
|
||||
language: 'en',
|
||||
template: 'five',
|
||||
createdAt: '2020-11-25T16:15:56.049Z',
|
||||
is_closed: false,
|
||||
seller_id: {
|
||||
id: '5fbe8101ef26b83b8f53b7c1',
|
||||
__v: 0,
|
||||
_id: '5fbe8101ef26b83b8f53b7c1',
|
||||
email: 'focix@getnada.com',
|
||||
language: 'en-us',
|
||||
createdAt: '2020-11-25T16:06:25.546Z',
|
||||
full_name: 'focix',
|
||||
updatedAt: '2023-07-01T14:02:27.589Z',
|
||||
account_type: 'seller',
|
||||
is_email_verified: true,
|
||||
},
|
||||
updatedAt: '2024-01-29T10:22:46.775Z',
|
||||
is_blocked: false,
|
||||
receive_on: 'whatsapp',
|
||||
appointment: false,
|
||||
is_onlymenu: false,
|
||||
payment_inst: 'Pay Offline via UPI/CASH etc',
|
||||
currency_data: {
|
||||
code: 'INR',
|
||||
name: 'Indian Rupee',
|
||||
symbol: 'Rs',
|
||||
rounding: 0,
|
||||
name_plural: 'Indian rupees',
|
||||
symbol_native: '₹',
|
||||
decimal_digits: 2,
|
||||
},
|
||||
payment_modes: {
|
||||
stripe: {
|
||||
logo: '/public/assets/imgs/stripe.svg',
|
||||
name: 'stripe',
|
||||
enabled: true,
|
||||
test_mode: true,
|
||||
description: '',
|
||||
display_name: 'Stripe',
|
||||
},
|
||||
razorpay: {
|
||||
logo: '/public/assets/imgs/razorpay.svg',
|
||||
name: 'razorpay',
|
||||
key_id: 'as',
|
||||
enabled: false,
|
||||
test_mode: false,
|
||||
secret_key: 'da',
|
||||
description: '',
|
||||
test_key_id: '',
|
||||
display_name: 'Razorpay',
|
||||
test_secret_key: '',
|
||||
},
|
||||
},
|
||||
use_area_list: true,
|
||||
is_maintenance: false,
|
||||
manual_payments: true,
|
||||
payment_inst_title: 'Pay Later',
|
||||
term_condition_text: 'Bhgghhhbsbsbbsbnzja bhbb',
|
||||
condition_option_enabled: true,
|
||||
invoice_footer_thankyou_msg: '',
|
||||
},
|
||||
text: "Hi, I'd like to place an order",
|
||||
overiew: {
|
||||
TAXES: 'INR 2.90',
|
||||
TOTAL: 'INR 31.90',
|
||||
DELIVERY: 'INR 0.00',
|
||||
SUB_TOTAL: 'INR 29.00',
|
||||
ORDER_TYPE: 'Delivery',
|
||||
STORE_LINK: 'ccake.quickzu.com',
|
||||
STORE_NAME: 'Classic Cakes',
|
||||
PICKUP_TIME: '',
|
||||
ORDER_NUMBER: 233312,
|
||||
TABLE_NUMBER: '',
|
||||
CUSTOMER_NAME: 'Mohit',
|
||||
CUSTOMER_PHONE: '9039101337',
|
||||
PAYMENT_METHOD: 'PAYLATER',
|
||||
APPOINTMENT_TIME: '',
|
||||
CUSTOMER_ADDRESS: 'okay mumbai',
|
||||
ORDER_INSTRUCTION: 'spicy food',
|
||||
SUBTOTAL_DISCOUNT: 'INR 0.00',
|
||||
ITEM_LEVEL_DISCOUNT: 'INR 0.00',
|
||||
PAYMENT_INSTRUCTION: '\nPay Offline via UPI/CASH etc',
|
||||
},
|
||||
hyperlink: '',
|
||||
total_amount: '31.90',
|
||||
},
|
||||
resource: 'order',
|
||||
operation: 'create',
|
||||
};
|
||||
|
||||
export const orderCreatedTrigger = createTrigger({
|
||||
auth: quickzuAuth,
|
||||
name: 'quickzu_order_created_trigger',
|
||||
displayName: 'Order Created/Updated',
|
||||
description:
|
||||
'Triggers when a new order is created or a order status is changed in store.',
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
sampleData: sampleData,
|
||||
props: {
|
||||
md: Property.MarkDown({
|
||||
value: markdown,
|
||||
}),
|
||||
},
|
||||
async onEnable(context) {
|
||||
// Empty
|
||||
},
|
||||
async onDisable(context) {
|
||||
// Empty
|
||||
},
|
||||
async run(context) {
|
||||
return [context.payload];
|
||||
},
|
||||
handshakeConfiguration: {
|
||||
strategy: WebhookHandshakeStrategy.BODY_PARAM_PRESENT,
|
||||
paramName: 'test',
|
||||
},
|
||||
async onHandshake(context) {
|
||||
return {
|
||||
status: 200,
|
||||
body: {},
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"extends": "../../../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"noImplicitOverride": true,
|
||||
"noPropertyAccessFromIndexSignature": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
},
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user