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:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,18 @@
{
"extends": ["../../../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-vtex
This library was generated with [Nx](https://nx.dev).
## Running lint
Run `nx lint pieces-vtex` to execute the lint via [ESLint](https://eslint.org/).

View File

@@ -0,0 +1,4 @@
{
"name": "@activepieces/piece-vtex",
"version": "0.1.11"
}

View File

@@ -0,0 +1,51 @@
{
"name": "pieces-vtex",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/vtex/src",
"projectType": "library",
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/vtex",
"tsConfig": "packages/pieces/community/vtex/tsconfig.lib.json",
"packageJson": "packages/pieces/community/vtex/package.json",
"main": "packages/pieces/community/vtex/src/index.ts",
"assets": [
"packages/pieces/community/vtex/*.md",
{
"input": "packages/pieces/community/vtex/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/vtex",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
},
"tags": []
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "Unified Commerce-Plattform",
"Host Url": "Host Url",
"App Key": "App-Key",
"App Token": "App-Token",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "VTEX App-Schlüssel",
"VTEX App Token": "VTEX-App-Token",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: Der VTEX Store Host (z.B. `{{accountName}}.{{environment}}. om`)\n**App Key** und **App Token**: Um Ihren App Key und App Token zu erhalten, folgen Sie den folgenden Schritten:\n1. Gehen Sie zu Ihrem vtex-Konto unter **Kontoeinstellungen** -> **Konto** -> **Sicherheit**\n2. Klicken Sie auf **Zugangsschlüssel generieren und geheim**\n4. Kopiere den Zugangsschlüssel als **App Schlüssel** und das Geheimnis ist dein **App Token**.\n",
"Get Product By ID": "Produkt per ID erhalten",
"Create New Product": "Neues Produkt erstellen",
"Update a Product": "Produkt aktualisieren",
"Get Brand List": "Marken-Liste abrufen",
"Get Brand By ID": "Marke per ID erhalten",
"Create new Brand": "Neue Marke erstellen",
"Update Brand": "Marke aktualisieren",
"Delete Brand": "Marke löschen",
"Get Category": "Kategorie abrufen",
"Get SKU By Product ID": "Kaufe SKU per Produkt-ID",
"Create New Sku": "Neuen Sku erstellen",
"Create New Sku File": "Neue Sku-Datei erstellen",
"Get Client List": "Kundenliste abrufen",
"Get Client By ID": "Kunde per ID erhalten",
"Get Order By ID": "Bestellung per ID erhalten",
"Get Orders List": "Bestellliste abrufen",
"Custom API Call": "Eigener API-Aufruf",
"Find a product in your catalog by it's id": "Finden Sie ein Produkt in Ihrem Katalog mit Id",
"Create a new product in your catalog": "Erstellen Sie ein neues Produkt in Ihrem Katalog",
"Update a product in your catalog": "Ein Produkt in Ihrem Katalog aktualisieren",
"Find all Brands in your catalog": "Finde alle Marken in deinem Katalog",
"Find a Brand in your catalog by it's id": "Finde eine Marke in deinem Katalog mit Id",
"Create a new Brand to your catalog": "Erstellen Sie eine neue Marke in Ihrem Katalog",
"Update a Brand in your catalog": "Eine Marke in Ihrem Katalog aktualisieren",
"Delete a Brand in your catalog by it's id": "Eine Marke aus Ihrem Katalog mit Id löschen",
"Find a Category in your catalog by it's id": "Finde eine Kategorie in deinem Katalog mit Id",
"Find a Sku in your catalog by a Product id": "Finden Sie einen Sku in Ihrem Katalog mit einer Artikelnummer",
"Create a new SKU to your catalog": "Erstellen Sie eine neue SKU in Ihrem Katalog",
"Create a new SKU File to your catalog": "Erstellen Sie eine neue SKU-Datei in Ihrem Katalog",
"Find all Clients": "Alle Kunden finden",
"Find a Client by Id": "Einen Client über Id finden",
"Find a Order by Id": "Eine Bestellung nach Id finden",
"Find Orders": "Aufträge finden",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Product ID": "Produkt-ID",
"Name": "Name",
"Title": "Titel",
"Description": "Beschreibung",
"Brand ID": "Marke ID",
"Category ID": "Kategorie-ID",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Ist sichtbar",
"Short Description": "Kurzbeschreibung",
"Release Date": "Freigabedatum",
"Key Words": "Schlüsselwörter",
"Is Active": "Ist aktiv",
"Tax Code": "Steuercode",
"Metatag description": "Metatag-Beschreibung",
"Show Without Stock": "Ohne Lager anzeigen",
"Score": "Punktzahl",
"DepartmentId": "Abteilungsnummer",
"Brand Name": "Markenname",
"Site Title": "Seitentitel",
"Text": "Text",
"Menu Home": "Menü-Startseite",
"Keywords": "Stichwörter",
"Active": "Aktiv",
"SKU Name": "SKU-Name",
"Package Height": "Pakethöhe",
"Package Length": "Paketlänge",
"Package Width": "Paketbreite",
"Package Weight (Kg)": "Paketgewicht (Kg)",
"Is Kit": "Ist Kit",
"Sku ID": "Sku ID",
"Image Url": "Bild-Url",
"Image Name": "Bildname",
"Is Main Image": "Ist Hauptbild",
"Image Label": "Bildbezeichnung",
"Client ID": "Kunden-ID",
"Order ID": "Bestell-ID",
"From (Year)": "Von (Jahr)",
"To (Year)": "Bis (Jahr)",
"From (Month)": "Von (Monat)",
"To (Month)": "An (Monat)",
"From (Day)": "Von (Day)",
"To (Day)": "Zu (Day)",
"Method": "Methode",
"Headers": "Kopfzeilen",
"Query Parameters": "Abfrageparameter",
"Body": "Körper",
"Response is Binary ?": "Antwort ist binär?",
"No Error on Failure": "Kein Fehler bei Fehler",
"Timeout (in seconds)": "Timeout (in Sekunden)",
"The product ID": "Die Produkt-ID",
"Set the product ID": "Produkt-ID festlegen",
"Similar words": "Ähnliche Wörter",
"The Brand ID": "Die Marke ID",
"Set the brand ID": "Marken-ID festlegen",
"The Category ID": "Die Kategorie-ID",
"The Product ID": "Die Produkt-ID",
"ID of the product to be associated with this SKU": "ID des Produkts, das dieser SKU zugeordnet werden soll",
"Name the variation of the product": "Variation des Produkts benennen",
"Set the Sku ID": "Setze die Sku ID",
"General text of the image": "Allgemeiner Text des Bildes",
"The Client ID": "Die Kunden-ID",
"The Order ID": "Bestell-ID",
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "Plataforma de comercio unificada",
"Host Url": "Url del Host",
"App Key": "Clave App",
"App Token": "App Token",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "Clave de aplicación VTEX",
"VTEX App Token": "Token de aplicación VTEX",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n",
"Get Product By ID": "Obtener producto por ID",
"Create New Product": "Crear nuevo producto",
"Update a Product": "Actualizar un producto",
"Get Brand List": "Obtener lista de marca",
"Get Brand By ID": "Obtener marca por ID",
"Create new Brand": "Crear nueva marca",
"Update Brand": "Actualizar marca",
"Delete Brand": "Eliminar Marca",
"Get Category": "Obtener categoría",
"Get SKU By Product ID": "Obtener SKU por ID de producto",
"Create New Sku": "Crear nuevo Sku",
"Create New Sku File": "Crear nuevo archivo Sku",
"Get Client List": "Obtener lista de clientes",
"Get Client By ID": "Obtener cliente por ID",
"Get Order By ID": "Obtener orden por ID",
"Get Orders List": "Obtener lista de pedidos",
"Custom API Call": "Llamada API personalizada",
"Find a product in your catalog by it's id": "Encuentra un producto en tu catálogo por su id",
"Create a new product in your catalog": "Crear un nuevo producto en su catálogo",
"Update a product in your catalog": "Actualizar un producto en su catálogo",
"Find all Brands in your catalog": "Encuentra todas las marcas en tu catálogo",
"Find a Brand in your catalog by it's id": "Encuentra una marca en tu catálogo por su id",
"Create a new Brand to your catalog": "Crear una nueva marca en su catálogo",
"Update a Brand in your catalog": "Actualizar una marca en su catálogo",
"Delete a Brand in your catalog by it's id": "Eliminar una marca en su catálogo por su id",
"Find a Category in your catalog by it's id": "Encuentra una Categoría en tu catálogo por su id",
"Find a Sku in your catalog by a Product id": "Encuentra un Sku en tu catálogo por un ID de producto",
"Create a new SKU to your catalog": "Crear un nuevo SKU en su catálogo",
"Create a new SKU File to your catalog": "Crear un nuevo archivo SKU en su catálogo",
"Find all Clients": "Encontrar todos los clientes",
"Find a Client by Id": "Encontrar un cliente por Id",
"Find a Order by Id": "Buscar un pedido por Id",
"Find Orders": "Buscar pedidos",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Product ID": "ID producto",
"Name": "Nombre",
"Title": "Título",
"Description": "Descripción",
"Brand ID": "Marca ID",
"Category ID": "ID de categoría",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Es visible",
"Short Description": "Descripción corta",
"Release Date": "Fecha de lanzamiento",
"Key Words": "Palabras clave",
"Is Active": "Está activo",
"Tax Code": "Código fiscal",
"Metatag description": "Descripción de Metatag",
"Show Without Stock": "Mostrar sin stock",
"Score": "Puntaje",
"DepartmentId": "Id del departamento",
"Brand Name": "Marca",
"Site Title": "Título del sitio",
"Text": "Texto",
"Menu Home": "Menú Inicio",
"Keywords": "Palabras clave",
"Active": "Activo",
"SKU Name": "Nombre SKU",
"Package Height": "Altura del paquete",
"Package Length": "Longitud del paquete",
"Package Width": "Ancho del Paquete",
"Package Weight (Kg)": "Peso del paquete (Kg)",
"Is Kit": "Es Kit",
"Sku ID": "Sku ID",
"Image Url": "Url de imagen",
"Image Name": "Nombre de imagen",
"Is Main Image": "Es imagen principal",
"Image Label": "Nombre de imagen",
"Client ID": "ID de cliente",
"Order ID": "ID del pedido",
"From (Year)": "Desde (año)",
"To (Year)": "A (año)",
"From (Month)": "Desde (mes)",
"To (Month)": "Hasta (Mes)",
"From (Day)": "Desde (Día)",
"To (Day)": "Para (Día)",
"Method": "Método",
"Headers": "Encabezados",
"Query Parameters": "Parámetros de consulta",
"Body": "Cuerpo",
"Response is Binary ?": "¿Respuesta es binaria?",
"No Error on Failure": "No hay ningún error en fallo",
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
"The product ID": "El ID del producto",
"Set the product ID": "Establecer el ID del producto",
"Similar words": "Palabras similares",
"The Brand ID": "El ID de la marca",
"Set the brand ID": "Establecer el ID de la marca",
"The Category ID": "El ID de Categoría",
"The Product ID": "El ID del producto",
"ID of the product to be associated with this SKU": "ID del producto a ser asociado con este SKU",
"Name the variation of the product": "Nombra la variación del producto",
"Set the Sku ID": "Establecer el ID de Sku",
"General text of the image": "Texto general de la imagen",
"The Client ID": "El ID del cliente",
"The Order ID": "El ID del pedido",
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO"
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "Plateforme commerciale unifiée",
"Host Url": "Url de l'hôte",
"App Key": "Clé de l'application",
"App Token": "Jeton d'application",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "Clé d'application VTEX",
"VTEX App Token": "Jeton d'application VTEX",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n",
"Get Product By ID": "Obtenir le produit par ID",
"Create New Product": "Créer un nouveau produit",
"Update a Product": "Mettre à jour un produit",
"Get Brand List": "Obtenir la liste des marques",
"Get Brand By ID": "Obtenir la marque par ID",
"Create new Brand": "Créer une nouvelle marque",
"Update Brand": "Mettre à jour la marque",
"Delete Brand": "Supprimer la marque",
"Get Category": "Récupérer la catégorie",
"Get SKU By Product ID": "Obtenir la REF par ID de produit",
"Create New Sku": "Créer une nouvelle UGS",
"Create New Sku File": "Créer un nouveau fichier UGS",
"Get Client List": "Obtenir la liste des clients",
"Get Client By ID": "Obtenir le client par ID",
"Get Order By ID": "Obtenir une commande par ID",
"Get Orders List": "Obtenir la liste des commandes",
"Custom API Call": "Appel d'API personnalisé",
"Find a product in your catalog by it's id": "Trouver un produit dans votre catalogue par son id",
"Create a new product in your catalog": "Créer un nouveau produit dans votre catalogue",
"Update a product in your catalog": "Mettre à jour un produit dans votre catalogue",
"Find all Brands in your catalog": "Trouvez toutes les Marques dans votre catalogue",
"Find a Brand in your catalog by it's id": "Trouvez une marque dans votre catalogue par son id",
"Create a new Brand to your catalog": "Créer une nouvelle marque dans votre catalogue",
"Update a Brand in your catalog": "Mettre à jour une Marque dans votre catalogue",
"Delete a Brand in your catalog by it's id": "Supprimer une marque dans votre catalogue par son id",
"Find a Category in your catalog by it's id": "Trouver une catégorie dans votre catalogue par son id",
"Find a Sku in your catalog by a Product id": "Trouvez une UGS dans votre catalogue par un id de produit",
"Create a new SKU to your catalog": "Créer une nouvelle REF dans votre catalogue",
"Create a new SKU File to your catalog": "Créez un nouveau fichier REF dans votre catalogue",
"Find all Clients": "Trouver tous les clients",
"Find a Client by Id": "Trouver un Client par Id",
"Find a Order by Id": "Trouver une commande par Id",
"Find Orders": "Trouver des commandes",
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
"Product ID": "ID du produit",
"Name": "Nom",
"Title": "Titre de la page",
"Description": "Libellé",
"Brand ID": "ID de la marque",
"Category ID": "ID de la catégorie",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Est visible",
"Short Description": "Courte description",
"Release Date": "Date de sortie",
"Key Words": "Mots clés",
"Is Active": "Est actif",
"Tax Code": "Code de Taxe",
"Metatag description": "Description du Metatag",
"Show Without Stock": "Afficher sans stock",
"Score": "Score",
"DepartmentId": "ID du service",
"Brand Name": "Nom de la marque",
"Site Title": "Titre du site",
"Text": "Texte du texte",
"Menu Home": "Menu Accueil",
"Keywords": "Mots clés",
"Active": "Actif",
"SKU Name": "Nom UGS",
"Package Height": "Hauteur du paquet",
"Package Length": "Longueur du paquet",
"Package Width": "Largeur du paquet",
"Package Weight (Kg)": "Poids du paquet (Kg)",
"Is Kit": "Est un kit",
"Sku ID": "Sku ID",
"Image Url": "Url de l'image",
"Image Name": "Nom de l'image",
"Is Main Image": "Est l'image principale",
"Image Label": "Libellé de l'image",
"Client ID": "ID client",
"Order ID": "ID de la commande",
"From (Year)": "À partir de (Année)",
"To (Year)": "À (Année)",
"From (Month)": "À partir de (mois)",
"To (Month)": "Vers (mois)",
"From (Day)": "À partir de (Day)",
"To (Day)": "À (Day)",
"Method": "Méthode",
"Headers": "En-têtes",
"Query Parameters": "Paramètres de requête",
"Body": "Corps",
"Response is Binary ?": "La réponse est Binaire ?",
"No Error on Failure": "Aucune erreur en cas d'échec",
"Timeout (in seconds)": "Délai d'expiration (en secondes)",
"The product ID": "L'ID du produit",
"Set the product ID": "Définir l'ID du produit",
"Similar words": "Mots similaires",
"The Brand ID": "L'ID de la marque",
"Set the brand ID": "Définir l'ID de la marque",
"The Category ID": "L'ID de la catégorie",
"The Product ID": "L'ID du produit",
"ID of the product to be associated with this SKU": "ID du produit à associer à cette REF",
"Name the variation of the product": "Nommer la variation du produit",
"Set the Sku ID": "Définir l'ID de l'UGS",
"General text of the image": "Texte général de l'image",
"The Client ID": "L'ID du client",
"The Order ID": "L'ID de la commande",
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "統合コマースプラットフォーム",
"Host Url": "ホスト Url",
"App Key": "アプリキー",
"App Token": "アプリトークン",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "VTEXアプリキー",
"VTEX App Token": "VTEXアプリトークン",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n",
"Get Product By ID": "商品IDで取得",
"Create New Product": "新しい商品を作成",
"Update a Product": "商品を更新",
"Get Brand List": "ブランド一覧を取得",
"Get Brand By ID": "IDでブランドを取得",
"Create new Brand": "新しいブランドを作成",
"Update Brand": "ブランドを更新",
"Delete Brand": "ブランドを削除",
"Get Category": "カテゴリを取得",
"Get SKU By Product ID": "商品IDでSKUを取得",
"Create New Sku": "新しいSkuを作成",
"Create New Sku File": "新しいSku ファイルを作成",
"Get Client List": "クライアントリストの取得",
"Get Client By ID": "IDでクライアントを取得",
"Get Order By ID": "注文IDで取得",
"Get Orders List": "注文一覧の取得",
"Custom API Call": "カスタムAPI通話",
"Find a product in your catalog by it's id": "商品IDでカタログ内の商品を検索",
"Create a new product in your catalog": "カタログに新しい製品を作成する",
"Update a product in your catalog": "カタログ内の商品を更新",
"Find all Brands in your catalog": "カタログ内のすべてのブランドを検索",
"Find a Brand in your catalog by it's id": "IDでカタログ内のブランドを探す",
"Create a new Brand to your catalog": "カタログに新しいブランドを作成",
"Update a Brand in your catalog": "カタログのブランドを更新",
"Delete a Brand in your catalog by it's id": "IDでカタログ内のブランドを削除する",
"Find a Category in your catalog by it's id": "IDでカタログ内のカテゴリを検索",
"Find a Sku in your catalog by a Product id": "商品IDでカタログ内のSKUを検索",
"Create a new SKU to your catalog": "あなたのカタログに新しいSKUを作成します",
"Create a new SKU File to your catalog": "あなたのカタログに新しいSKUファイルを作成",
"Find all Clients": "すべてのクライアントを検索",
"Find a Client by Id": "ID でクライアントを検索",
"Find a Order by Id": "ID で注文を検索",
"Find Orders": "注文を検索",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Product ID": "商品ID",
"Name": "Name",
"Title": "タイトル",
"Description": "説明",
"Brand ID": "ブランドID",
"Category ID": "カテゴリID",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "表示可能",
"Short Description": "簡単な説明",
"Release Date": "公開日",
"Key Words": "キーワード数",
"Is Active": "有効です",
"Tax Code": "税コード",
"Metatag description": "メタタグの説明",
"Show Without Stock": "在庫なしで表示",
"Score": "スコア",
"DepartmentId": "DepartmentId",
"Brand Name": "ブランド名",
"Site Title": "サイトタイトル",
"Text": "テキスト",
"Menu Home": "メニューホーム",
"Keywords": "キーワード",
"Active": "有効",
"SKU Name": "SKU名",
"Package Height": "パッケージの高さ",
"Package Length": "パッケージの長さ",
"Package Width": "パッケージ幅",
"Package Weight (Kg)": "パッケージの重量 (Kg)",
"Is Kit": "キットです",
"Sku ID": "Sku ID",
"Image Url": "画像URL",
"Image Name": "画像名",
"Is Main Image": "メイン画像",
"Image Label": "画像ラベル",
"Client ID": "クライアント ID",
"Order ID": "注文ID",
"From (Year)": "開始日 (年)",
"To (Year)": "To (年)",
"From (Month)": "開始(月)",
"To (Month)": "To (月)",
"From (Day)": "開始日 (日)",
"To (Day)": "宛先(日)",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"The product ID": "製品ID",
"Set the product ID": "製品IDを設定",
"Similar words": "類似の単語",
"The Brand ID": "ブランドID",
"Set the brand ID": "ブランドIDを設定",
"The Category ID": "カテゴリID",
"The Product ID": "商品ID",
"ID of the product to be associated with this SKU": "このSKUに関連付けられる製品のID",
"Name the variation of the product": "製品のバリエーションに名前を付ける",
"Set the Sku ID": "Sku IDを設定",
"General text of the image": "画像の一般的なテキスト",
"The Client ID": "クライアントID",
"The Order ID": "注文ID",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭"
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "Gecombineerd handelsplatform",
"Host Url": "Host Url",
"App Key": "App sleutel",
"App Token": "App Token",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "VTEX App Sleutel",
"VTEX App Token": "VTEX App Token",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (bijv. `{{accountName}}.{{environment}}. om`)\n**App Key** en **App Token**: Om je app key en app token te krijgen, volg je onderstaande stappen:\n1. Ga naar je vtex account in **Account Instellingen** -> **Account** -> **Security**\n2. Klik op **Genereer toegangssleutel en geheim**\n4. Kopieer de toegangssleutel als jouw **App Key** en het geheim is jouw **App Token**.\n",
"Get Product By ID": "Product op ID verkrijgen",
"Create New Product": "Nieuw product aanmaken",
"Update a Product": "Product bijwerken",
"Get Brand List": "Haal Merklijst op",
"Get Brand By ID": "Download merk via ID",
"Create new Brand": "Maak een nieuw merk",
"Update Brand": "Merk bijwerken",
"Delete Brand": "Verwijder merk",
"Get Category": "Categorie opvragen",
"Get SKU By Product ID": "Krijg Art.nr. op product-ID",
"Create New Sku": "Nieuwe Sku aanmaken",
"Create New Sku File": "Nieuw Sku bestand maken",
"Get Client List": "Clientlijst ophalen",
"Get Client By ID": "Client via ID verkrijgen",
"Get Order By ID": "Bestel via ID",
"Get Orders List": "Verkrijg bestellingen lijst",
"Custom API Call": "Custom API Call",
"Find a product in your catalog by it's id": "Zoek een product in uw catalogus op ID",
"Create a new product in your catalog": "Maak een nieuw product aan in uw catalogus",
"Update a product in your catalog": "Werk een product bij in uw catalogus",
"Find all Brands in your catalog": "Vind alle Merken in uw catalogus",
"Find a Brand in your catalog by it's id": "Vind een Merk in uw catalogus op ID",
"Create a new Brand to your catalog": "Maak een nieuw merk in uw catalogus",
"Update a Brand in your catalog": "Update een merk in uw catalogus",
"Delete a Brand in your catalog by it's id": "Verwijder een merk in uw catalogus door het ID ervan",
"Find a Category in your catalog by it's id": "Zoek een categorie in uw catalogus via de ID",
"Find a Sku in your catalog by a Product id": "Zoek een Sku in uw catalogus op product-id",
"Create a new SKU to your catalog": "Maak een nieuw art.nr. aan in uw catalogus",
"Create a new SKU File to your catalog": "Maak een nieuw SKU bestand aan in uw catalogus",
"Find all Clients": "Vind alle Clienten",
"Find a Client by Id": "Zoek een client op Id",
"Find a Order by Id": "Zoek een bestelling op Id",
"Find Orders": "Zoek bestellingen",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Product ID": "Product ID",
"Name": "Naam",
"Title": "Aanspreektitel",
"Description": "Beschrijving",
"Brand ID": "Merk ID",
"Category ID": "Categorie ID",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Is zichtbaar",
"Short Description": "Korte omschrijving",
"Release Date": "Datum van publicatie",
"Key Words": "Sleutel woorden",
"Is Active": "Is actief",
"Tax Code": "BTW code",
"Metatag description": "Metatag omschrijving",
"Show Without Stock": "Toon zonder voorraad",
"Score": "Beoordeling",
"DepartmentId": "AfdelingID",
"Brand Name": "Merk naam",
"Site Title": "Naam site:",
"Text": "Tekstveld",
"Menu Home": "Menu Startpagina",
"Keywords": "Sleutelwoorden",
"Active": "Actief",
"SKU Name": "Art.nr. naam",
"Package Height": "Pakket hoogte",
"Package Length": "Pakket Lengte",
"Package Width": "Pakket Breedte",
"Package Weight (Kg)": "Gewicht pakket (kg)",
"Is Kit": "Is Uitrusting",
"Sku ID": "Sku ID",
"Image Url": "URL van afbeelding",
"Image Name": "Naam afbeelding",
"Is Main Image": "Is hoofdafbeelding",
"Image Label": "Afbeelding label",
"Client ID": "Klant ID",
"Order ID": "Bestelling ID",
"From (Year)": "Van (jaar)",
"To (Year)": "Naar (jaar)",
"From (Month)": "Van (maand)",
"To (Month)": "Naar (maand)",
"From (Day)": "Vanaf (dag)",
"To (Day)": "Naar (dag)",
"Method": "Methode",
"Headers": "Kopteksten",
"Query Parameters": "Query parameters",
"Body": "Lichaam",
"Response is Binary ?": "Antwoord is binair?",
"No Error on Failure": "Geen fout bij fout",
"Timeout (in seconds)": "Time-out (in seconden)",
"The product ID": "Het product ID",
"Set the product ID": "Stel het product ID in",
"Similar words": "Vergelijkbare woorden",
"The Brand ID": "Het Merk ID",
"Set the brand ID": "Merk ID instellen",
"The Category ID": "De categorie ID",
"The Product ID": "Het Product ID",
"ID of the product to be associated with this SKU": "ID van het product dat geassocieerd wordt met deze SKU",
"Name the variation of the product": "Naam van de variatie van het product",
"Set the Sku ID": "Sku ID instellen",
"General text of the image": "Algemene tekst van de afbeelding",
"The Client ID": "De klant-ID",
"The Order ID": "De order-ID",
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD"
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "Plataforma de comércio unificada",
"Host Url": "URL do Host",
"App Key": "Chave da App",
"App Token": "Token do Aplicativo",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "Chave Aplicativo VTEX",
"VTEX App Token": "Token do App VTEX",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Url do Anfitrião**: O host da loja VTEX (ex.: `{{accountName}}.{{environment}}. O`)\n**Chave do aplicativo** e **Token do aplicativo**: Para obter sua chave de aplicativo e seu token do aplicativo, siga os passos abaixo:\n1. Vá para sua conta vtex em **Configurações da Conta** -> **Conta** -> **Segurança**\n2. Clique em **Gerar chave de acesso e segredo**\n4. Copie a chave de acesso como sua **Chave do Aplicativo** e o segredo é seu **Token do Aplicativo**.\n",
"Get Product By ID": "Obter produto por ID",
"Create New Product": "Criar Novo Produto",
"Update a Product": "Atualizar um produto",
"Get Brand List": "Obter Lista de Marcas",
"Get Brand By ID": "Obter Marca Por ID",
"Create new Brand": "Criar nova Marca",
"Update Brand": "Atualizar Marca",
"Delete Brand": "Excluir Marca",
"Get Category": "Obter categoria",
"Get SKU By Product ID": "Obter SKU por ID do Produto",
"Create New Sku": "Criar Novo Sku",
"Create New Sku File": "Criar novo arquivo Sku",
"Get Client List": "Obter lista de clientes",
"Get Client By ID": "Obter Cliente pelo ID",
"Get Order By ID": "Obter Ordem pelo ID",
"Get Orders List": "Obter Lista de Pedidos",
"Custom API Call": "Chamada de API personalizada",
"Find a product in your catalog by it's id": "Encontre um produto no seu catálogo por id",
"Create a new product in your catalog": "Criar um novo produto no seu catálogo",
"Update a product in your catalog": "Atualizar um produto em seu catálogo",
"Find all Brands in your catalog": "Encontre todas as marcas do seu catálogo",
"Find a Brand in your catalog by it's id": "Encontre uma Marca no seu catálogo por sua id",
"Create a new Brand to your catalog": "Criar uma nova marca no seu catálogo",
"Update a Brand in your catalog": "Atualizar uma Marca no seu catálogo",
"Delete a Brand in your catalog by it's id": "Exclua uma Marca no seu catálogo por id",
"Find a Category in your catalog by it's id": "Encontre uma categoria no seu catálogo por id",
"Find a Sku in your catalog by a Product id": "Encontre um Sku no seu catálogo por um Id de produto",
"Create a new SKU to your catalog": "Criar um novo SKU para o seu catálogo",
"Create a new SKU File to your catalog": "Criar um novo arquivo SKU para o seu catálogo",
"Find all Clients": "Encontrar todos os clientes",
"Find a Client by Id": "Encontrar um Cliente pelo ID",
"Find a Order by Id": "Encontrar uma ordem por ID",
"Find Orders": "Encontrar Pedidos",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Product ID": "ID do Produto",
"Name": "Nome",
"Title": "Título",
"Description": "Descrição",
"Brand ID": "ID da Marca",
"Category ID": "ID da Categoria",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "É visível",
"Short Description": "Descrição Resumida:",
"Release Date": "Data de Lançamento",
"Key Words": "Palavras-chave",
"Is Active": "Está ativo",
"Tax Code": "Código de imposto",
"Metatag description": "Descrição da Metatag",
"Show Without Stock": "Mostrar sem estoque",
"Score": "Pontuação",
"DepartmentId": "Departamento",
"Brand Name": "Nome da Marca",
"Site Title": "Título do Site:",
"Text": "texto",
"Menu Home": "Menu Inicial",
"Keywords": "Palavras-chave",
"Active": "Ativo",
"SKU Name": "Nome SKU",
"Package Height": "Altura do pacote",
"Package Length": "Comprimento do Pacote",
"Package Width": "Largura do pacote",
"Package Weight (Kg)": "Peso do Pacote (Kg)",
"Is Kit": "É Kit",
"Sku ID": "Sku ID",
"Image Url": "URL da Imagem",
"Image Name": "Nome da Imagem",
"Is Main Image": "É a imagem principal",
"Image Label": "Etiqueta da Imagem",
"Client ID": "ID do Cliente",
"Order ID": "ID da encomenda",
"From (Year)": "De (ano)",
"To (Year)": "Para (Ano)",
"From (Month)": "De (Mês)",
"To (Month)": "Para (Mês)",
"From (Day)": "De (Dia)",
"To (Day)": "Para (dia)",
"Method": "Método",
"Headers": "Cabeçalhos",
"Query Parameters": "Parâmetros da consulta",
"Body": "Conteúdo",
"Response is Binary ?": "A resposta é binária ?",
"No Error on Failure": "Nenhum erro no Failure",
"Timeout (in seconds)": "Tempo limite (em segundos)",
"The product ID": "O ID do produto",
"Set the product ID": "Configura o ID do produto",
"Similar words": "Palavras similares",
"The Brand ID": "O ID da Marca",
"Set the brand ID": "Definir ID da marca",
"The Category ID": "O ID da Categoria",
"The Product ID": "O ID do produto",
"ID of the product to be associated with this SKU": "ID do produto a ser associado a este SKU",
"Name the variation of the product": "Nomeie a variação do produto",
"Set the Sku ID": "Definir o Sku ID",
"General text of the image": "Texto geral da imagem",
"The Client ID": "O ID do Cliente",
"The Order ID": "O ID do pedido",
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA"
}

View File

@@ -0,0 +1,114 @@
{
"VTEX": "VTEX",
"Unified commerce platform": "Унифицированная коммерческая платформа",
"Host Url": "Адрес хоста",
"App Key": "Ключ приложения",
"App Token": "Маркер приложения",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "Ключ приложения VTEX",
"VTEX App Token": "VTEX App Token",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (например `{{accountName}}.{{environment}}. om`)\n**App Key** и **App Token**: Чтобы получить ключ приложения и ключ приложения, следуйте инструкциям ниже:\n1. Перейдите на свой аккаунт vtex в **Настройках аккаунта** -> **Аккаунт** -> **Безопасность**\n2. Нажмите на **Создать ключ доступа и секрет**\n4. Скопируйте ключ доступа как Ваш **App Key** и секрет **App Token**.\n",
"Get Product By ID": "Получить продукт по ID",
"Create New Product": "Создать новый товар",
"Update a Product": "Изменить продукт",
"Get Brand List": "Получить список брендов",
"Get Brand By ID": "Получить Бренд по ID",
"Create new Brand": "Создать новый бренд",
"Update Brand": "Обновить бренд",
"Delete Brand": "Удалить Бренд",
"Get Category": "Получить категорию",
"Get SKU By Product ID": "Получить артикул по ID товара",
"Create New Sku": "Создать новый Sku",
"Create New Sku File": "Создать новый Sku файл",
"Get Client List": "Получить список клиентов",
"Get Client By ID": "Получить клиента по ID",
"Get Order By ID": "Получить заказ по ID",
"Get Orders List": "Получить список заказов",
"Custom API Call": "Пользовательский вызов API",
"Find a product in your catalog by it's id": "Найдите товар в каталоге по его id",
"Create a new product in your catalog": "Создать новый товар в каталоге",
"Update a product in your catalog": "Обновить товар в каталоге",
"Find all Brands in your catalog": "Найти все бренды в вашем каталоге",
"Find a Brand in your catalog by it's id": "Найдите Бренд в вашем каталоге по идентификатору",
"Create a new Brand to your catalog": "Создать новый бренд в каталоге",
"Update a Brand in your catalog": "Обновить бренд в вашем каталоге",
"Delete a Brand in your catalog by it's id": "Удалить Бренд в вашем каталоге по идентификатору",
"Find a Category in your catalog by it's id": "Найти категорию в каталоге по его id",
"Find a Sku in your catalog by a Product id": "Найдите Sku в вашем каталоге по идентификатору товара",
"Create a new SKU to your catalog": "Создать новый артикул в каталоге",
"Create a new SKU File to your catalog": "Создать новый файл SKU в каталоге",
"Find all Clients": "Найти всех клиентов",
"Find a Client by Id": "Найти клиента по Id",
"Find a Order by Id": "Найти заказ по Id",
"Find Orders": "Найти заказы",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Product ID": "ID товара",
"Name": "Наименование",
"Title": "Заголовок",
"Description": "Описание",
"Brand ID": "ID бренда",
"Category ID": "ID категории",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Видимый",
"Short Description": "Краткое описание",
"Release Date": "Дата выпуска",
"Key Words": "Ключевые слова",
"Is Active": "Активно",
"Tax Code": "Код налога",
"Metatag description": "Описание метаданных",
"Show Without Stock": "Показать без стока",
"Score": "Счет",
"DepartmentId": "Id отдела",
"Brand Name": "Название бренда",
"Site Title": "Название сайта",
"Text": "Текст",
"Menu Home": "Главное меню",
"Keywords": "Ключевые слова",
"Active": "Активен",
"SKU Name": "Название артикула",
"Package Height": "Высота упаковки",
"Package Length": "Длина пакета",
"Package Width": "Ширина пакета",
"Package Weight (Kg)": "Вес упаковки (Kg)",
"Is Kit": "Набор",
"Sku ID": "Sku ID",
"Image Url": "Ссылка на изображение",
"Image Name": "Имя изображения",
"Is Main Image": "Основное изображение",
"Image Label": "Метка изображения",
"Client ID": "ID клиента",
"Order ID": "ID Заказа",
"From (Year)": "С (год)",
"To (Year)": "По (год)",
"From (Month)": "С (месяц)",
"To (Month)": "По (месяц)",
"From (Day)": "От (Day)",
"To (Day)": "До (Day)",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"The product ID": "ID товара",
"Set the product ID": "Установка ID товара",
"Similar words": "Похожие слова",
"The Brand ID": "ID бренда",
"Set the brand ID": "Установка ID бренда",
"The Category ID": "ID категории",
"The Product ID": "ID товара",
"ID of the product to be associated with this SKU": "ID товара, связанного с этим артикулом",
"Name the variation of the product": "Назовите вариант продукта",
"Set the Sku ID": "Установить Sku ID",
"General text of the image": "Общий текст изображения",
"The Client ID": "ID клиента",
"The Order ID": "ID заказа",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "Unified commerce platform",
"Host Url": "Host Url",
"App Key": "App Key",
"App Token": "App Token",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "VTEX App Key",
"VTEX App Token": "VTEX App Token",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n",
"Get Product By ID": "Get Product By ID",
"Create New Product": "Create New Product",
"Update a Product": "Update a Product",
"Get Brand List": "Get Brand List",
"Get Brand By ID": "Get Brand By ID",
"Create new Brand": "Create new Brand",
"Update Brand": "Update Brand",
"Delete Brand": "Delete Brand",
"Get Category": "Get Category",
"Get SKU By Product ID": "Get SKU By Product ID",
"Create New Sku": "Create New Sku",
"Create New Sku File": "Create New Sku File",
"Get Client List": "Get Client List",
"Get Client By ID": "Get Client By ID",
"Get Order By ID": "Get Order By ID",
"Get Orders List": "Get Orders List",
"Custom API Call": "Custom API Call",
"Find a product in your catalog by it's id": "Find a product in your catalog by it's id",
"Create a new product in your catalog": "Create a new product in your catalog",
"Update a product in your catalog": "Update a product in your catalog",
"Find all Brands in your catalog": "Find all Brands in your catalog",
"Find a Brand in your catalog by it's id": "Find a Brand in your catalog by it's id",
"Create a new Brand to your catalog": "Create a new Brand to your catalog",
"Update a Brand in your catalog": "Update a Brand in your catalog",
"Delete a Brand in your catalog by it's id": "Delete a Brand in your catalog by it's id",
"Find a Category in your catalog by it's id": "Find a Category in your catalog by it's id",
"Find a Sku in your catalog by a Product id": "Find a Sku in your catalog by a Product id",
"Create a new SKU to your catalog": "Create a new SKU to your catalog",
"Create a new SKU File to your catalog": "Create a new SKU File to your catalog",
"Find all Clients": "Find all Clients",
"Find a Client by Id": "Find a Client by Id",
"Find a Order by Id": "Find a Order by Id",
"Find Orders": "Find Orders",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Product ID": "Product ID",
"Name": "Name",
"Title": "Title",
"Description": "Description",
"Brand ID": "Brand ID",
"Category ID": "Category ID",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Is Visible",
"Short Description": "Short Description",
"Release Date": "Release Date",
"Key Words": "Key Words",
"Is Active": "Is Active",
"Tax Code": "Tax Code",
"Metatag description": "Metatag description",
"Show Without Stock": "Show Without Stock",
"Score": "Score",
"DepartmentId": "DepartmentId",
"Brand Name": "Brand Name",
"Site Title": "Site Title",
"Text": "Text",
"Menu Home": "Menu Home",
"Keywords": "Keywords",
"Active": "Active",
"SKU Name": "SKU Name",
"Package Height": "Package Height",
"Package Length": "Package Length",
"Package Width": "Package Width",
"Package Weight (Kg)": "Package Weight (Kg)",
"Is Kit": "Is Kit",
"Sku ID": "Sku ID",
"Image Url": "Image Url",
"Image Name": "Image Name",
"Is Main Image": "Is Main Image",
"Image Label": "Image Label",
"Client ID": "Client ID",
"Order ID": "Order ID",
"From (Year)": "From (Year)",
"To (Year)": "To (Year)",
"From (Month)": "From (Month)",
"To (Month)": "To (Month)",
"From (Day)": "From (Day)",
"To (Day)": "To (Day)",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"The product ID": "The product ID",
"Set the product ID": "Set the product ID",
"Similar words": "Similar words",
"The Brand ID": "The Brand ID",
"Set the brand ID": "Set the brand ID",
"The Category ID": "The Category ID",
"The Product ID": "The Product ID",
"ID of the product to be associated with this SKU": "ID of the product to be associated with this SKU",
"Name the variation of the product": "Name the variation of the product",
"Set the Sku ID": "Set the Sku ID",
"General text of the image": "General text of the image",
"The Client ID": "The Client ID",
"The Order ID": "The Order ID",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,114 @@
{
"VTEX": "VTEX",
"Unified commerce platform": "Unified commerce platform",
"Host Url": "Host Url",
"App Key": "App Key",
"App Token": "App Token",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "VTEX App Key",
"VTEX App Token": "VTEX App Token",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n",
"Get Product By ID": "Get Product By ID",
"Create New Product": "Create New Product",
"Update a Product": "Update a Product",
"Get Brand List": "Get Brand List",
"Get Brand By ID": "Get Brand By ID",
"Create new Brand": "Create new Brand",
"Update Brand": "Update Brand",
"Delete Brand": "Delete Brand",
"Get Category": "Get Category",
"Get SKU By Product ID": "Get SKU By Product ID",
"Create New Sku": "Create New Sku",
"Create New Sku File": "Create New Sku File",
"Get Client List": "Get Client List",
"Get Client By ID": "Get Client By ID",
"Get Order By ID": "Get Order By ID",
"Get Orders List": "Get Orders List",
"Custom API Call": "Custom API Call",
"Find a product in your catalog by it's id": "Find a product in your catalog by it's id",
"Create a new product in your catalog": "Create a new product in your catalog",
"Update a product in your catalog": "Update a product in your catalog",
"Find all Brands in your catalog": "Find all Brands in your catalog",
"Find a Brand in your catalog by it's id": "Find a Brand in your catalog by it's id",
"Create a new Brand to your catalog": "Create a new Brand to your catalog",
"Update a Brand in your catalog": "Update a Brand in your catalog",
"Delete a Brand in your catalog by it's id": "Delete a Brand in your catalog by it's id",
"Find a Category in your catalog by it's id": "Find a Category in your catalog by it's id",
"Find a Sku in your catalog by a Product id": "Find a Sku in your catalog by a Product id",
"Create a new SKU to your catalog": "Create a new SKU to your catalog",
"Create a new SKU File to your catalog": "Create a new SKU File to your catalog",
"Find all Clients": "Find all Clients",
"Find a Client by Id": "Find a Client by Id",
"Find a Order by Id": "Find a Order by Id",
"Find Orders": "Find Orders",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Product ID": "Product ID",
"Name": "Name",
"Title": "Title",
"Description": "Description",
"Brand ID": "Brand ID",
"Category ID": "Category ID",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Is Visible",
"Short Description": "Short Description",
"Release Date": "Release Date",
"Key Words": "Key Words",
"Is Active": "Is Active",
"Tax Code": "Tax Code",
"Metatag description": "Metatag description",
"Show Without Stock": "Show Without Stock",
"Score": "Score",
"DepartmentId": "DepartmentId",
"Brand Name": "Brand Name",
"Site Title": "Site Title",
"Text": "Text",
"Menu Home": "Menu Home",
"Keywords": "Keywords",
"Active": "Tích cực",
"SKU Name": "SKU Name",
"Package Height": "Package Height",
"Package Length": "Package Length",
"Package Width": "Package Width",
"Package Weight (Kg)": "Package Weight (Kg)",
"Is Kit": "Is Kit",
"Sku ID": "Sku ID",
"Image Url": "Image Url",
"Image Name": "Image Name",
"Is Main Image": "Is Main Image",
"Image Label": "Image Label",
"Client ID": "ID khách hàng",
"Order ID": "Order ID",
"From (Year)": "From (Year)",
"To (Year)": "To (Year)",
"From (Month)": "From (Month)",
"To (Month)": "To (Month)",
"From (Day)": "From (Day)",
"To (Day)": "To (Day)",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"The product ID": "The product ID",
"Set the product ID": "Set the product ID",
"Similar words": "Similar words",
"The Brand ID": "The Brand ID",
"Set the brand ID": "Set the brand ID",
"The Category ID": "The Category ID",
"The Product ID": "The Product ID",
"ID of the product to be associated with this SKU": "ID of the product to be associated with this SKU",
"Name the variation of the product": "Name the variation of the product",
"Set the Sku ID": "Set the Sku ID",
"General text of the image": "General text of the image",
"The Client ID": "The Client ID",
"The Order ID": "The Order ID",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,115 @@
{
"Unified commerce platform": "Unified commerce platform",
"Host Url": "Host Url",
"App Key": "App Key",
"App Token": "App Token",
"{accountName}.{environment}.com": "{accountName}.{environment}.com",
"VTEX App Key": "VTEX App Key",
"VTEX App Token": "VTEX App Token",
"\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n": "\n**Host Url**: The VTEX store host (e.g `{{accountName}}.{{environment}}.com`)\n**App Key** and **App Token**: To get your app key and app token, follow the steps below:\n1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**\n2. Click on **Generate access key and secret**\n4. Copy the access key as your **App Key** and the secret is your **App Token**.\n",
"Get Product By ID": "Get Product By ID",
"Create New Product": "Create New Product",
"Update a Product": "Update a Product",
"Get Brand List": "Get Brand List",
"Get Brand By ID": "Get Brand By ID",
"Create new Brand": "Create new Brand",
"Update Brand": "Update Brand",
"Delete Brand": "Delete Brand",
"Get Category": "Get Category",
"Get SKU By Product ID": "Get SKU By Product ID",
"Create New Sku": "Create New Sku",
"Create New Sku File": "Create New Sku File",
"Get Client List": "Get Client List",
"Get Client By ID": "Get Client By ID",
"Get Order By ID": "Get Order By ID",
"Get Orders List": "Get Orders List",
"Custom API Call": "自定义 API 呼叫",
"Find a product in your catalog by it's id": "Find a product in your catalog by it's id",
"Create a new product in your catalog": "Create a new product in your catalog",
"Update a product in your catalog": "Update a product in your catalog",
"Find all Brands in your catalog": "Find all Brands in your catalog",
"Find a Brand in your catalog by it's id": "Find a Brand in your catalog by it's id",
"Create a new Brand to your catalog": "Create a new Brand to your catalog",
"Update a Brand in your catalog": "Update a Brand in your catalog",
"Delete a Brand in your catalog by it's id": "Delete a Brand in your catalog by it's id",
"Find a Category in your catalog by it's id": "Find a Category in your catalog by it's id",
"Find a Sku in your catalog by a Product id": "Find a Sku in your catalog by a Product id",
"Create a new SKU to your catalog": "Create a new SKU to your catalog",
"Create a new SKU File to your catalog": "Create a new SKU File to your catalog",
"Find all Clients": "Find all Clients",
"Find a Client by Id": "Find a Client by Id",
"Find a Order by Id": "Find a Order by Id",
"Find Orders": "Find Orders",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Product ID": "Product ID",
"Name": "名称",
"Title": "标题",
"Description": "描述",
"Brand ID": "Brand ID",
"Category ID": "Category ID",
"Link ID": "Link ID",
"Ref ID": "Ref ID",
"Is Visible": "Is Visible",
"Short Description": "Short Description",
"Release Date": "Release Date",
"Key Words": "Key Words",
"Is Active": "Is Active",
"Tax Code": "Tax Code",
"Metatag description": "Metatag description",
"Show Without Stock": "Show Without Stock",
"Score": "Score",
"DepartmentId": "DepartmentId",
"Brand Name": "Brand Name",
"Site Title": "Site Title",
"Text": "文本",
"Menu Home": "Menu Home",
"Keywords": "Keywords",
"Active": "使用中",
"SKU Name": "SKU Name",
"Package Height": "Package Height",
"Package Length": "Package Length",
"Package Width": "Package Width",
"Package Weight (Kg)": "Package Weight (Kg)",
"Is Kit": "Is Kit",
"Sku ID": "Sku ID",
"Image Url": "Image Url",
"Image Name": "Image Name",
"Is Main Image": "Is Main Image",
"Image Label": "Image Label",
"Client ID": "客户端ID",
"Order ID": "Order ID",
"From (Year)": "From (Year)",
"To (Year)": "To (Year)",
"From (Month)": "From (Month)",
"To (Month)": "To (Month)",
"From (Day)": "From (Day)",
"To (Day)": "To (Day)",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"The product ID": "The product ID",
"Set the product ID": "Set the product ID",
"Similar words": "Similar words",
"The Brand ID": "The Brand ID",
"Set the brand ID": "Set the brand ID",
"The Category ID": "The Category ID",
"The Product ID": "The Product ID",
"ID of the product to be associated with this SKU": "ID of the product to be associated with this SKU",
"Name the variation of the product": "Name the variation of the product",
"Set the Sku ID": "Set the Sku ID",
"General text of the image": "General text of the image",
"The Client ID": "The Client ID",
"The Order ID": "The Order ID",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色"
}

View File

@@ -0,0 +1,90 @@
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import {
PieceAuth,
Property,
createPiece,
} from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { createBrand } from './lib/actions/Brand/create-brand';
import { deleteBrand } from './lib/actions/Brand/delete-brand';
import { getBrandById } from './lib/actions/Brand/get-brand-by-id';
import { getBrandList } from './lib/actions/Brand/get-brand-list';
import { updateBrand } from './lib/actions/Brand/update-brand';
import { getCategoryById } from './lib/actions/Category/get-category-by-id';
import { getClientById } from './lib/actions/Client/get-client-by-id';
import { getClientList } from './lib/actions/Client/get-client-list';
import { getOrderById } from './lib/actions/Order/get-order-by-id';
import { getOrderList } from './lib/actions/Order/get-order-list';
import { createProduct } from './lib/actions/Product/create-product';
import { getProductById } from './lib/actions/Product/get-product-by-id';
import { updateProduct } from './lib/actions/Product/update-product';
import { createSkuFile } from './lib/actions/SKU-File/create-sku-file';
import { createSku } from './lib/actions/SKU/create-sku';
import { getSkuByProductId } from './lib/actions/SKU/get-sku-by-product-id';
const markdownDescription = `
**Host Url**: The VTEX store host (e.g \`{{accountName}}.{{environment}}.com\`)
**App Key** and **App Token**: To get your app key and app token, follow the steps below:
1. Go to your vtex account on **Account Settings** -> **Account** -> **Security**
2. Click on **Generate access key and secret**
4. Copy the access key as your **App Key** and the secret is your **App Token**.
`;
export const vtexAuth = PieceAuth.CustomAuth({
description: markdownDescription,
props: {
hostUrl: Property.ShortText({
displayName: 'Host Url',
description: '{accountName}.{environment}.com',
required: true,
}),
appKey: PieceAuth.SecretText({
displayName: 'App Key',
description: 'VTEX App Key',
required: true,
}),
appToken: PieceAuth.SecretText({
displayName: 'App Token',
description: 'VTEX App Token',
required: true,
}),
},
required: true,
});
export const vtex = createPiece({
displayName: 'VTEX',
description: 'Unified commerce platform',
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/vtex.png',
categories: [PieceCategory.COMMERCE],
authors: ["Willianwg","kishanprmr","MoShizzle","AbdulTheActivePiecer","khaledmashaly","abuaboud"],
auth: vtexAuth,
actions: [
getProductById,
createProduct,
updateProduct,
getBrandList,
getBrandById,
createBrand,
updateBrand,
deleteBrand,
getCategoryById,
getSkuByProductId,
createSku,
createSkuFile,
getClientList,
getClientById,
getOrderById,
getOrderList,
createCustomApiCallAction({
baseUrl: (auth) => `https://${(auth)?.props.hostUrl}`,
auth: vtexAuth,
authMapping: async (auth) => ({
'X-VTEX-API-AppKey': auth.props.appKey,
'X-VTEX-API-AppToken': auth.props.appToken,
}),
}),
],
triggers: [],
});

View File

@@ -0,0 +1,73 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Brand } from '../../common/Brand';
import { Replace } from '../../common/types';
import { vtexAuth } from '../../..';
export const createBrand = createAction({
auth: vtexAuth,
name: 'create-brand',
displayName: 'Create new Brand',
description: 'Create a new Brand to your catalog',
props: {
Name: Property.ShortText({
displayName: 'Name',
required: true,
}),
SiteTitle: Property.ShortText({
displayName: 'Site Title',
required: false,
}),
LinkId: Property.ShortText({
displayName: 'Link ID',
required: false,
}),
Id: Property.Number({
displayName: 'Brand ID',
description: 'Set the brand ID',
required: false,
}),
Text: Property.ShortText({
displayName: 'Text',
required: false,
}),
MenuHome: Property.Checkbox({
displayName: 'Menu Home',
required: false,
}),
Keywords: Property.ShortText({
displayName: 'Keywords',
description: 'Similar words',
required: false,
}),
Active: Property.Checkbox({
displayName: 'Active',
required: false,
}),
Score: Property.Number({
displayName: 'Score',
required: false,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const brandData: Replace<
typeof context.propsValue,
{ authentication?: typeof context.auth }
> = { ...context.propsValue };
delete brandData.authentication;
const brand = new Brand(hostUrl, appKey, appToken);
return await brand.createBrand({
Id: context.propsValue.Id,
Name: context.propsValue.Name,
Text: context.propsValue.Text,
Keywords: context.propsValue.Keywords,
SiteTitle: context.propsValue.SiteTitle,
Active: context.propsValue.Active,
MenuHome: context.propsValue.MenuHome,
Score: context.propsValue.Score,
LinkId: context.propsValue.LinkId,
});
},
});

View File

@@ -0,0 +1,25 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Brand } from '../../common/Brand';
import { vtexAuth } from '../../..';
export const deleteBrand = createAction({
auth: vtexAuth,
name: 'delete-brand',
displayName: 'Delete Brand',
description: "Delete a Brand in your catalog by it's id",
props: {
brandId: Property.Number({
displayName: 'Brand ID',
description: 'The Brand ID',
required: true,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { brandId } = context.propsValue;
const brand = new Brand(hostUrl, appKey, appToken);
return await brand.deleteBrand(brandId);
},
});

View File

@@ -0,0 +1,25 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Brand } from '../../common/Brand';
import { vtexAuth } from '../../..';
export const getBrandById = createAction({
auth: vtexAuth,
name: 'get-brand-by-id',
displayName: 'Get Brand By ID',
description: "Find a Brand in your catalog by it's id",
props: {
BrandId: Property.Number({
displayName: 'Brand ID',
description: 'The Brand ID',
required: true,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { BrandId } = context.propsValue;
const brand = new Brand(hostUrl, appKey, appToken);
return await brand.getBrandById(BrandId);
},
});

View File

@@ -0,0 +1,18 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Brand } from '../../common/Brand';
import { vtexAuth } from '../../..';
export const getBrandList = createAction({
auth: vtexAuth,
name: 'get-brand-list',
displayName: 'Get Brand List',
description: 'Find all Brands in your catalog',
props: {},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const brand = new Brand(hostUrl, appKey, appToken);
return await brand.getBrandList();
},
});

View File

@@ -0,0 +1,81 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Brand } from '../../common/Brand';
import { Replace } from '../../common/types';
import { vtexAuth } from '../../..';
export const updateBrand = createAction({
auth: vtexAuth,
name: 'update-brand',
displayName: 'Update Brand',
description: 'Update a Brand in your catalog',
props: {
Id: Property.Number({
displayName: 'Brand ID',
description: 'Set the brand ID',
required: true,
}),
Name: Property.ShortText({
displayName: 'Name',
required: true,
}),
SiteTitle: Property.ShortText({
displayName: 'Site Title',
required: true,
}),
LinkId: Property.ShortText({
displayName: 'Link ID',
required: true,
}),
Text: Property.ShortText({
displayName: 'Text',
required: true,
}),
MenuHome: Property.Checkbox({
displayName: 'Menu Home',
required: true,
}),
Keywords: Property.ShortText({
displayName: 'Keywords',
description: 'Similar words',
required: true,
}),
Active: Property.Checkbox({
displayName: 'Active',
required: true,
}),
Score: Property.Number({
displayName: 'Score',
required: true,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const {
Id,
Name,
SiteTitle,
LinkId,
Text,
MenuHome,
Keywords,
Active,
Score,
} = context.propsValue;
const brandData = {
Id,
Name,
SiteTitle,
LinkId,
Text,
MenuHome,
Keywords,
Active,
Score,
};
const brand = new Brand(hostUrl, appKey, appToken);
return await brand.updateBrand(Id, brandData);
},
});

View File

@@ -0,0 +1,25 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Category } from '../../common/Category';
import { vtexAuth } from '../../..';
export const getCategoryById = createAction({
auth: vtexAuth,
name: 'get-category-by-id',
displayName: 'Get Category',
description: "Find a Category in your catalog by it's id",
props: {
categoryId: Property.Number({
displayName: 'Category ID',
description: 'The Category ID',
required: false,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { categoryId } = context.propsValue;
const category = new Category(hostUrl, appKey, appToken);
return await category.getCategory(categoryId);
},
});

View File

@@ -0,0 +1,25 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Client } from '../../common/Client';
import { vtexAuth } from '../../..';
export const getClientById = createAction({
auth: vtexAuth,
name: 'get-client-by-id',
displayName: 'Get Client By ID',
description: 'Find a Client by Id',
props: {
clientId: Property.Number({
displayName: 'Client ID',
description: 'The Client ID',
required: true,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { clientId } = context.propsValue;
const client = new Client(hostUrl, appKey, appToken);
return await client.getClientById(clientId);
},
});

View File

@@ -0,0 +1,18 @@
import { createAction } from '@activepieces/pieces-framework';
import { Client } from '../../common/Client';
import { vtexAuth } from '../../..';
export const getClientList = createAction({
auth: vtexAuth,
name: 'get-client-list',
displayName: 'Get Client List',
description: 'Find all Clients',
props: {},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const client = new Client(hostUrl, appKey, appToken);
return await client.getClientList();
},
});

View File

@@ -0,0 +1,25 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Order } from '../../common/Order';
import { vtexAuth } from '../../..';
export const getOrderById = createAction({
auth: vtexAuth,
name: 'get-order-by-id',
displayName: 'Get Order By ID',
description: 'Find a Order by Id',
props: {
OrderId: Property.Number({
displayName: 'Order ID',
description: 'The Order ID',
required: true,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { OrderId } = context.propsValue;
const order = new Order(hostUrl, appKey, appToken);
return await order.getOrderById(OrderId);
},
});

View File

@@ -0,0 +1,57 @@
import { Property, createAction } from '@activepieces/pieces-framework';
import { Order } from '../../common/Order';
import { vtexAuth } from '../../..';
const year = new Date().getFullYear().toString();
export const getOrderList = createAction({
auth: vtexAuth,
name: 'get-order-list',
displayName: 'Get Orders List',
description: 'Find Orders',
props: {
fromYear: Property.Number({
displayName: 'From (Year)',
required: true,
}),
toYear: Property.ShortText({
displayName: 'To (Year)',
defaultValue: year,
required: true,
}),
fromMonth: Property.ShortText({
displayName: 'From (Month)',
defaultValue: '01',
required: false,
}),
toMonth: Property.ShortText({
displayName: 'To (Month)',
defaultValue: '12',
required: false,
}),
fromDay: Property.ShortText({
displayName: 'From (Day)',
defaultValue: '01',
required: false,
}),
toDay: Property.ShortText({
displayName: 'To (Day)',
defaultValue: '28',
required: false,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { fromYear, toYear, fromMonth, toMonth, fromDay, toDay } =
context.propsValue;
const order = new Order(hostUrl, appKey, appToken);
const fromDate = new Date(
`${fromYear}-${fromMonth || '01'}-${fromDay || '01'}`
);
const toDate = new Date(`${toYear}-${toMonth || '12'}-${toDay || '28'}`);
return await order.getOrderList(fromDate, toDate);
},
});

View File

@@ -0,0 +1,110 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Product } from '../../common/Product';
import { vtexAuth } from '../../..';
export const createProduct = createAction({
auth: vtexAuth,
name: 'create-product',
displayName: 'Create New Product',
description: 'Create a new product in your catalog',
props: {
Name: Property.ShortText({
displayName: 'Name',
required: true,
}),
Title: Property.ShortText({
displayName: 'Title',
required: true,
}),
Description: Property.ShortText({
displayName: 'Description',
required: true,
}),
BrandId: Property.Number({
displayName: 'Brand ID',
required: true,
}),
CategoryId: Property.Number({
displayName: 'Category ID',
required: true,
}),
LinkId: Property.ShortText({
displayName: 'Link ID',
required: false,
}),
RefId: Property.ShortText({
displayName: 'Ref ID',
required: false,
}),
Id: Property.Number({
displayName: 'Product ID',
description: 'Set the product ID',
required: false,
}),
IsVisible: Property.Checkbox({
displayName: 'Is Visible',
required: false,
}),
DescriptionShort: Property.ShortText({
displayName: 'Short Description',
required: false,
}),
ReleaseDate: Property.ShortText({
displayName: 'Release Date',
required: false,
}),
KeyWords: Property.ShortText({
displayName: 'Key Words',
description: 'Similar words',
required: false,
}),
IsActive: Property.Checkbox({
displayName: 'Is Active',
required: false,
}),
TaxCode: Property.ShortText({
displayName: 'Tax Code',
required: false,
}),
MetaTagDescription: Property.ShortText({
displayName: 'Metatag description',
required: false,
}),
ShowWithoutStock: Property.Checkbox({
displayName: 'Show Without Stock',
required: false,
}),
Score: Property.Number({
displayName: 'Score',
required: false,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const product = new Product(hostUrl, appKey, appToken);
const productData = {
Name: context.propsValue.Name,
Title: context.propsValue.Title,
Description: context.propsValue.Description,
BrandId: context.propsValue.BrandId,
CategoryId: context.propsValue.CategoryId,
LinkId: context.propsValue.LinkId,
RefId: context.propsValue.RefId,
Id: context.propsValue.Id,
IsVisible: context.propsValue.IsVisible,
DescriptionShort: context.propsValue.DescriptionShort,
ReleaseDate: context.propsValue.ReleaseDate,
KeyWords: context.propsValue.KeyWords,
IsActive: context.propsValue.IsActive,
TaxCode: context.propsValue.TaxCode,
MetaTagDescription: context.propsValue.MetaTagDescription,
ShowWithoutStock: context.propsValue.ShowWithoutStock,
Score: context.propsValue.Score,
};
const result = await product.createProduct(productData);
return result;
},
});

View File

@@ -0,0 +1,25 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Product } from '../../common/Product';
import { vtexAuth } from '../../..';
export const getProductById = createAction({
auth: vtexAuth,
name: 'get-product-by-id',
displayName: 'Get Product By ID',
description: "Find a product in your catalog by it's id",
props: {
productId: Property.Number({
displayName: 'Product ID',
description: 'The product ID',
required: true,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { productId } = context.propsValue;
const product = new Product(hostUrl, appKey, appToken);
return await product.getProductById(productId);
},
});

View File

@@ -0,0 +1,121 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Product } from '../../common/Product';
import { Replace } from '../../common/types';
import { vtexAuth } from '../../..';
export const updateProduct = createAction({
auth: vtexAuth,
name: 'Update-product',
displayName: 'Update a Product',
description: 'Update a product in your catalog',
props: {
productId: Property.Number({
displayName: 'Product ID',
description: 'Set the product ID',
required: true,
}),
Name: Property.ShortText({
displayName: 'Name',
required: true,
}),
Title: Property.ShortText({
displayName: 'Title',
required: true,
}),
Description: Property.ShortText({
displayName: 'Description',
required: true,
}),
BrandId: Property.Number({
displayName: 'Brand ID',
required: true,
}),
CategoryId: Property.Number({
displayName: 'Category ID',
required: true,
}),
DepartmentId: Property.Number({
displayName: 'DepartmentId',
required: true,
}),
LinkId: Property.ShortText({
displayName: 'Link ID',
required: false,
}),
RefId: Property.ShortText({
displayName: 'Ref ID',
required: false,
}),
BrandName: Property.ShortText({
displayName: 'Brand Name',
required: false,
}),
IsVisible: Property.Checkbox({
displayName: 'Is Visible',
required: false,
}),
DescriptionShort: Property.ShortText({
displayName: 'Short Description',
required: false,
}),
ReleaseDate: Property.ShortText({
displayName: 'Release Date',
required: false,
}),
KeyWords: Property.ShortText({
displayName: 'Key Words',
description: 'Similar words',
required: false,
}),
IsActive: Property.Checkbox({
displayName: 'Is Active',
required: false,
}),
TaxCode: Property.ShortText({
displayName: 'Tax Code',
required: false,
}),
MetaTagDescription: Property.ShortText({
displayName: 'Metatag description',
required: false,
}),
ShowWithoutStock: Property.Checkbox({
displayName: 'Show Without Stock',
required: false,
}),
Score: Property.Number({
displayName: 'Score',
required: false,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { productId, ...restProps } = context.propsValue;
const updatedProduct = {
productId,
Name: restProps.Name,
Title: restProps.Title,
Description: restProps.Description,
BrandId: restProps.BrandId,
CategoryId: restProps.CategoryId,
DepartmentId: restProps.DepartmentId,
LinkId: restProps.LinkId,
RefId: restProps.RefId,
BrandName: restProps.BrandName,
IsVisible: restProps.IsVisible,
DescriptionShort: restProps.DescriptionShort,
ReleaseDate: restProps.ReleaseDate,
KeyWords: restProps.KeyWords,
IsActive: restProps.IsActive,
TaxCode: restProps.TaxCode,
MetaTagDescription: restProps.MetaTagDescription,
ShowWithoutStock: restProps.ShowWithoutStock,
Score: restProps.Score,
};
const product = new Product(hostUrl, appKey, appToken);
return await product.updateProduct(productId, updatedProduct);
},
});

View File

@@ -0,0 +1,51 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { vtexAuth } from '../../..';
import { SkuFile } from '../../common/SKU-File';
import { Replace } from '../../common/types';
export const createSkuFile = createAction({
auth: vtexAuth,
name: 'create-sku-file',
displayName: 'Create New Sku File',
description: 'Create a new SKU File to your catalog',
props: {
SkuId: Property.Number({
displayName: 'Sku ID',
description: 'Set the Sku ID',
required: true,
}),
Url: Property.ShortText({
displayName: 'Image Url',
required: true,
}),
Name: Property.ShortText({
displayName: 'Image Name',
required: true,
}),
IsMain: Property.Checkbox({
displayName: 'Is Main Image',
required: true,
}),
Label: Property.ShortText({
displayName: 'Image Label',
required: false,
}),
Text: Property.ShortText({
displayName: 'Image Name',
description: 'General text of the image',
required: false,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const skuFile = new SkuFile(hostUrl, appKey, appToken);
return await skuFile.createSkuFile(context.propsValue.SkuId, {
Url: context.propsValue.Url,
Name: context.propsValue.Name,
IsMain: context.propsValue.IsMain,
Label: context.propsValue.Label,
Text: context.propsValue.Text,
});
},
});

View File

@@ -0,0 +1,68 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Sku } from '../../common/SKU';
import { Replace } from '../../common/types';
import { vtexAuth } from '../../..';
export const createSku = createAction({
auth: vtexAuth,
name: 'create-sku',
displayName: 'Create New Sku',
description: 'Create a new SKU to your catalog',
props: {
ProductId: Property.Number({
displayName: 'Product ID',
description: 'ID of the product to be associated with this SKU',
required: true,
}),
Name: Property.ShortText({
displayName: 'SKU Name',
description: 'Name the variation of the product',
required: true,
}),
PackagedHeight: Property.Number({
displayName: 'Package Height',
required: true,
}),
PackagedLength: Property.Number({
displayName: 'Package Length',
required: true,
}),
PackagedWidth: Property.Number({
displayName: 'Package Width',
required: true,
}),
PackagedWeightKg: Property.Number({
displayName: 'Package Weight (Kg)',
required: true,
}),
IsActive: Property.Checkbox({
displayName: 'Is Active',
required: false,
}),
IsKit: Property.Checkbox({
displayName: 'Is Kit',
required: false,
}),
Id: Property.Number({
displayName: 'Sku ID',
description: 'Set the Sku ID',
required: false,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const sku = new Sku(hostUrl, appKey, appToken);
return await sku.createSku({
ProductId: context.propsValue.ProductId,
Name: context.propsValue.Name,
PackagedHeight: context.propsValue.PackagedHeight,
PackagedLength: context.propsValue.PackagedLength,
PackagedWidth: context.propsValue.PackagedWidth,
PackagedWeightKg: context.propsValue.PackagedWeightKg,
IsActive: context.propsValue.IsActive,
IsKit: context.propsValue.IsKit,
Id: context.propsValue.Id,
});
},
});

View File

@@ -0,0 +1,25 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { Sku } from '../../common/SKU';
import { vtexAuth } from '../../..';
export const getSkuByProductId = createAction({
auth: vtexAuth,
name: 'get-sku-by-product-id',
displayName: 'Get SKU By Product ID',
description: 'Find a Sku in your catalog by a Product id',
props: {
productId: Property.Number({
displayName: 'Product ID',
description: 'The Product ID',
required: true,
}),
},
async run(context) {
const { hostUrl, appKey, appToken } = context.auth.props;
const { productId } = context.propsValue;
const sku = new Sku(hostUrl, appKey, appToken);
return await sku.getSkuListByProductId(productId);
},
});

View File

@@ -0,0 +1,46 @@
import axios, { Axios } from 'axios';
import { CreateBrandParams, UpdateBrandParams } from './types';
export class Brand {
api: Axios;
constructor(host: string, appKey: string, appToken: string) {
this.api = axios.create({
baseURL: 'https://' + host,
headers: {
'X-VTEX-API-AppKey': appKey,
'X-VTEX-API-AppToken': appToken,
},
});
}
async getBrandById(brandID: number) {
const route = '/api/catalog_system/pvt/brand/';
const response = await this.api.get(route + brandID);
return response.data;
}
async getBrandList() {
const route = '/api/catalog_system/pvt/brand/list';
const response = await this.api.get(route);
return response.data;
}
async createBrand(newBrandData: CreateBrandParams) {
const route = '/api/catalog/pvt/brand';
const response = await this.api.post(route, newBrandData);
return response.data;
}
async updateBrand(brandID: number, updatedBrandData: UpdateBrandParams) {
const route = '/api/catalog/pvt/brand/';
const response = await this.api.put(route + brandID, updatedBrandData);
return response.data;
}
async deleteBrand(brandID: number) {
const route = '/api/catalog/pvt/brand/';
const response = await this.api.delete(route + brandID);
return response.data;
}
}

View File

@@ -0,0 +1,46 @@
import axios, { Axios } from 'axios';
import { CreateCategoryParams, UpdateCategoryParams } from './types';
export class Category {
api: Axios;
constructor(host: string, appKey: string, appToken: string) {
this.api = axios.create({
baseURL: 'https://' + host,
headers: {
'X-VTEX-API-AppKey': appKey,
'X-VTEX-API-AppToken': appToken,
},
});
}
async getCategory(CategoryID?: number) {
const route = '/api/catalog/pvt/category/';
const response = await this.api.get(route + (CategoryID ? CategoryID : ''));
return response.data;
}
async getCategoryTree(categoryLevels: number) {
const route = '/api/catalog_system/pub/category/tree/';
const response = await this.api.get(route + categoryLevels);
return response.data;
}
async createCategory(newCategoryData: CreateCategoryParams) {
const route = '/api/catalog/pvt/category';
const response = await this.api.post(route, newCategoryData);
return response.data;
}
async updateCategory(
CategoryID: number,
updatedCategoryData: UpdateCategoryParams
) {
const route = '/api/catalog/pvt/category/';
const response = await this.api.put(
route + CategoryID,
updatedCategoryData
);
return response.data;
}
}

View File

@@ -0,0 +1,39 @@
import axios, { Axios } from 'axios';
type GetClientByIdResponse = {
email: string;
id: string;
accountId: string;
accountName: string;
dataEntityId: string;
};
type GetClientListResponse = GetClientByIdResponse[];
export class Client {
api: Axios;
constructor(host: string, appKey: string, appToken: string) {
this.api = axios.create({
baseURL: 'https://' + host,
headers: {
'X-VTEX-API-AppKey': appKey,
'X-VTEX-API-AppToken': appToken,
},
});
}
async getClientById(clientID: number): Promise<GetClientByIdResponse> {
const route = `/api/dataentities/CL/documents/`;
const response = await this.api.get<GetClientByIdResponse>(
route + clientID
);
return response.data;
}
async getClientList(): Promise<GetClientListResponse> {
const route = '/api/dataentities/CL/search';
const response = await this.api.get<GetClientListResponse>(route);
return response.data;
}
}

View File

@@ -0,0 +1,27 @@
import axios, { Axios } from 'axios';
export class Order {
api: Axios;
constructor(host: string, appKey: string, appToken: string) {
this.api = axios.create({
baseURL: 'https://' + host,
headers: {
'X-VTEX-API-AppKey': appKey,
'X-VTEX-API-AppToken': appToken,
},
});
}
async getOrderById(OrderID: number) {
const route = `/api/oms/pvt/orders/`;
const response = await this.api.get(route + OrderID);
return response.data;
}
async getOrderList(from: Date, to: Date) {
const route = `/api/oms/pvt/orders?f_creationDate=creationDate:[${from.toISOString()} TO ${to.toISOString()}]`;
const response = await this.api.get(route);
return response.data;
}
}

View File

@@ -0,0 +1,41 @@
import axios, { Axios } from 'axios';
import {
CreateProductParams,
UpdateProductParams,
GetProductByIdResponse,
} from './types';
export class Product {
api: Axios;
constructor(host: string, appKey: string, appToken: string) {
this.api = axios.create({
baseURL: 'https://' + host,
headers: {
'X-VTEX-API-AppKey': appKey,
'X-VTEX-API-AppToken': appToken,
},
});
}
async getProductById(productID: number): Promise<GetProductByIdResponse> {
const route = '/api/catalog/pvt/product/';
const response = await this.api.get(route + productID);
return response.data;
}
async createProduct(newProductData: CreateProductParams) {
const route = '/api/catalog/pvt/product';
const response = await this.api.post(route, newProductData);
return response.data;
}
async updateProduct(
productID: number,
updatedProductData: UpdateProductParams
) {
const route = '/api/catalog/pvt/product/';
const response = await this.api.put(route + productID, updatedProductData);
return response.data;
}
}

View File

@@ -0,0 +1,53 @@
import axios, { Axios } from 'axios';
type CreateSkuFileParams = {
IsMain?: boolean;
Label?: string;
Name: string;
Text?: string;
Url: string;
};
type UpdateSkuFileParams = {
Id: number;
SkuId: number;
FieldId: number;
FieldValueId: number;
Text: string;
};
export class SkuFile {
api: Axios;
constructor(host: string, appKey: string, appToken: string) {
this.api = axios.create({
baseURL: 'https://' + host,
headers: {
'X-VTEX-API-AppKey': appKey,
'X-VTEX-API-AppToken': appToken,
},
});
}
async getSkuFilesBySkuId(skuID: number) {
const route = `/api/catalog/pvt/stockkeepingunit/${skuID}/file/`;
const response = await this.api.get(route);
return response.data;
}
async createSkuFile(skuID: number, newSkuFileData: CreateSkuFileParams) {
const route = `/api/catalog/pvt/stockkeepingunit/${skuID}/file`;
const response = await this.api.post(route, newSkuFileData);
return response.data;
}
async updateSkuFile(
skuID: number,
skuFileID: number,
updatedSkuFileData: UpdateSkuFileParams
) {
const route = `/api/catalog/pvt/stockkeepingunit/${skuID}/file/${skuFileID}`;
const response = await this.api.put(route, updatedSkuFileData);
return response.data;
}
}

View File

@@ -0,0 +1,40 @@
import axios, { Axios } from 'axios';
import { CreateSkuParams, UpdateSkuParams } from './types';
export class Sku {
api: Axios;
constructor(host: string, appKey: string, appToken: string) {
this.api = axios.create({
baseURL: 'https://' + host,
headers: {
'X-VTEX-API-AppKey': appKey,
'X-VTEX-API-AppToken': appToken,
},
});
}
async getSkuById(skuID: number) {
const route = '/api/catalog/pvt/stockkeepingunit/';
const response = await this.api.get(route + skuID);
return response.data;
}
async getSkuListByProductId(productID: number) {
const route = '/api/catalog_system/pvt/sku/stockkeepingunitByProductId/';
const response = await this.api.get(route + productID);
return response.data;
}
async createSku(newSkuData: CreateSkuParams) {
const route = '/api/catalog/pvt/stockkeepingunit';
const response = await this.api.post(route, newSkuData);
return response.data;
}
async updateSku(skuID: number, newSkuData: UpdateSkuParams) {
const route = '/api/catalog/pvt/stockkeepingunit/';
const response = await this.api.put(route + skuID, newSkuData);
return response.data;
}
}

View File

@@ -0,0 +1,13 @@
export type CreateBrandParams = {
Id?: number;
Name: string;
Text?: string;
Keywords?: string;
SiteTitle?: string;
Active?: boolean;
MenuHome?: boolean;
Score?: number;
LinkId?: string;
};
export type UpdateBrandParams = CreateBrandParams;

View File

@@ -0,0 +1,18 @@
export type CreateCategoryParams = {
Name: string;
FatherCategoryId: null;
Title: string;
Description: string;
Keywords: string;
IsActive: boolean;
LomadeeCampaignCode: null;
AdWordsRemarketingCode: null;
ShowInStoreFront: boolean;
ShowBrandFilter: boolean;
ActiveStoreFrontLink: boolean;
GlobalCategoryId: number;
StockKeepingUnitSelectionMode: string;
Score: null;
};
export type UpdateCategoryParams = CreateCategoryParams;

View File

@@ -0,0 +1,49 @@
export type CreateProductParams = {
Id?: number;
Name?: string;
CategoryPath?: string;
CategoryId?: number;
BrandName?: string;
BrandId?: number;
LinkId?: string;
RefId?: string;
IsVisible?: boolean;
Description?: string;
DescriptionShort?: string;
ReleaseDate?: string;
KeyWords?: string;
Title?: string;
IsActive?: boolean;
TaxCode?: string;
MetaTagDescription?: string;
ShowWithoutStock?: boolean;
Score?: number;
};
export type UpdateProductParams = Omit<CreateProductParams, 'Id'> & {
DepartmentId: number;
};
export type GetProductByIdResponse = {
Id: number;
Name: string;
DepartmentId: number;
CategoryId: number;
BrandId: number;
LinkId: string;
RefId: string;
IsVisible: boolean;
Description: string;
DescriptionShort: string;
ReleaseDate: string;
KeyWords: string;
Title: string;
IsActive: boolean;
TaxCode: string;
MetaTagDescription: string;
SupplierId: number | null;
ShowWithoutStock: boolean;
AdWordsRemarketingCode: string;
LomadeeCampaignCode: string;
Score: number;
};

View File

@@ -0,0 +1,31 @@
export type CreateSkuParams = {
Id?: number;
ProductId: number;
IsActive?: boolean;
ActivateIfPossible?: boolean;
Name: string;
RefId?: string;
Ean?: string;
PackagedHeight: number;
PackagedLength: number;
PackagedWidth: number;
PackagedWeightKg: number;
Height?: number;
Length?: number;
Width?: number;
WeightKg?: number;
CubicWeight?: number;
IsKit?: boolean;
CreationDate?: string;
RewardValue?: number;
EstimatedDateArrival?: string;
ManufacturerCode?: string;
CommercialConditionId?: number;
MeasurementUnit?: string;
UnitMultiplier?: number;
ModalType?: string;
KitItemsSellApart?: boolean;
Videos?: string[];
};
export type UpdateSkuParams = CreateSkuParams;

View File

@@ -0,0 +1,6 @@
export * from './Product';
export * from './Brand';
export * from './Category';
export * from './SKU';
export type Replace<T, R> = Omit<T, keyof R> & R;

View File

@@ -0,0 +1,16 @@
{
"extends": "../../../../tsconfig.base.json",
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
],
"compilerOptions": {
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true
}
}

View File

@@ -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"]
}