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,33 @@
{
"extends": [
"../../../../.eslintrc.base.json"
],
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts",
"*.tsx",
"*.js",
"*.jsx"
],
"rules": {}
},
{
"files": [
"*.ts",
"*.tsx"
],
"rules": {}
},
{
"files": [
"*.js",
"*.jsx"
],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-bigcommerce
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build pieces-bigcommerce` to build the library.

View File

@@ -0,0 +1,10 @@
{
"name": "@activepieces/piece-bigcommerce",
"version": "0.0.2",
"type": "commonjs",
"main": "./src/index.js",
"types": "./src/index.d.ts",
"dependencies": {
"tslib": "^2.3.0"
}
}

View File

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

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerce ist eine führende E-Commerce-Plattform, die es Unternehmen ermöglicht, Online-Shops zu erstellen und zu verwalten.",
"Markdown": "Markdown",
"Store Hash": "Store-Hash",
"Access Token": "Zugangs-Token",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Melden Sie sich auf https://www.bigcommerce.com/essentials/\n2. Gehen Sie zu den Einstellungen\n3. Scrollen Sie zur API\n4. Klicken Sie auf \"Store Level API Accounts\"\n5. Klicken Sie auf die Schaltfläche \"API Konto erstellen\"\n6. Geben Sie einen Namen ein und fügen Sie die benötigten Bereiche\nhinzu. Speichern - Sie erhalten eine heruntergeladene Datei mit Ihrem Zugriffstoken und Hash speichern",
"Your BigCommerce store hash (e.g., abcd1234)": "Ihr BigCommerce Shop Hash (z. B. abcd1234)",
"Your BigCommerce API access token": "Ihr BigCommerce API Zugangs-Token",
"Enter your BigCommerce API credentials. ": "Geben Sie Ihre BigCommerce API Zugangsdaten ein. ",
"Create Customer": "Kunde erstellen",
"Create a Product": "Ein Produkt erstellen",
"Create Blog Post": "Blogbeitrag erstellen",
"Create Customer Address": "Kundenadresse erstellen",
"Search Customer": "Kunden suchen",
"Search Product": "Produkt suchen",
"Search Customer Address": "Kundenadresse suchen",
"Find or Create Customer": "Kunde suchen oder erstellen",
"Find or Create Product": "Produkt suchen oder erstellen",
"Find or Create Customers Address": "Kundenadresse suchen oder erstellen",
"Custom API Call": "Eigener API-Aufruf",
"Creates a customer": "Erstellt einen Kunden",
"Creates a Product": "Erzeugt ein Produkt",
"Creates a blog post": "Erstellt einen Blog-Beitrag",
"Creates a customer's address": "Erstellt eine Kundenadresse",
"Searches for a registered customer": "Sucht nach einem registrierten Kunden",
"Searches for a product in the catalog": "Sucht nach einem Produkt im Katalog",
"Searches for a customers address": "Sucht nach Kundenadresse",
"Finds or creates a customer": "Findet oder erstellt einen Kunden",
"Finds or creates a product": "Finden oder erstellen Sie ein Produkt",
"Finds or creates a customers address": "Findet oder erstellt die Adresse eines Kunden",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Email": "E-Mail",
"First Name": "Vorname",
"Last Name": "Nachname",
"Company": "Firma",
"Phone": "Telefon",
"Notes": "Notizen",
"Product Name": "Produktname",
"Product Type": "Produkttyp",
"SKU": "SKU",
"Description": "Beschreibung",
"Weight": "Gewicht",
"Price": "Preis",
"Brand ID": "Marke ID",
"Title": "Titel",
"Body": "Körper",
"Author": "Autor",
"URL": "URL",
"Published Date": "Veröffentlichungsdatum",
"Meta Description": "Meta-Beschreibung",
"Meta Keywords": "Meta Keywords",
"Tags": "Tags",
"Is Published": "Ist veröffentlicht",
"Customer": "Kunde",
"Address Line 1": "Adresszeile 1",
"Address Line 2": "Adresszeile 2",
"City": "Stadt",
"State/Province": "Bundesland/Provinz",
"Postal Code": "Postleitzahl",
"Country Code": "Landesvorwahl",
"Phone Number": "Telefonnummer",
"Name": "Name",
"Customers": "Kunden",
"Method": "Methode",
"Headers": "Kopfzeilen",
"Query Parameters": "Abfrageparameter",
"Response is Binary ?": "Antwort ist binär?",
"No Error on Failure": "Kein Fehler bei Fehler",
"Timeout (in seconds)": "Timeout (in Sekunden)",
"Customer email address": "E-Mail-Adresse des Kunden",
"Customer first name": "Vorname des Kunden",
"Customer last name": "Nachname des Kunden",
"Customer company name": "Name des Kundenunternehmens",
"Customer phone number": "Kunden-Telefonnummer",
"Customer notes": "Kundennotizen",
"Name of the product": "Name des Produkts",
"Type of product": "Produkttyp",
"Product SKU": "Produkt-SKU",
"Product description": "Produktbeschreibung",
"Product weight": "Produktgewicht",
"Product price": "Produktpreis",
"Blog post title": "Blog-Beitragstitel",
"Blog post content (HTML supported)": "Inhalt des Blogbeitrags (HTML unterstützt)",
"Author name": "Name des Autors",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "URL für den öffentlichen Blog-Beitrag. Beispiel - /blog/welcome-bigcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "Veröffentlichtes Datum für den Blog-Beitrag. Beispiel - Mi, 10. Aug 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "Beschreibungstext für das Element <meta/> dieses Blogeintrags.",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "Kommagetrennte (,) Keywords für das <meta/> Element dieses Blogeintrags. Besser willkommen, bigcommerce",
"Array of tags": "Anordnung der Tags",
"Whether the post is published": "Ob der Beitrag veröffentlicht wird",
"Select the customer": "Kunden auswählen",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 Ländercode",
"Customer email to search for": "Kunden-E-Mail zum suchen",
"Phone Number to search for": "Telefonnummer zum suchen",
"Customer name to search for": "Kundenname zum suchen",
"Product name to search for": "Produktname zum suchen",
"Product SKU to search for": "Artikelnummer zum suchen",
"Brand ID to search for": "Marken-ID zum suchen",
"Select the customers": "Kunden auswählen",
"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..",
"Physical": "Körperlich",
"Digital": "Digitale",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD",
"Abandoned Cart": "Verlassener Warenkorb",
"Cart Created": "Warenkorb erstellt",
"Customer Address Created": "Kundenadresse erstellt",
"Customer Address Updated": "Kundenadresse aktualisiert",
"Customer Created": "Kunde erstellt",
"Customer Updated": "Kunde aktualisiert",
"Order Created": "Bestellung erstellt",
"Order Updated": "Bestellung aktualisiert",
"Order Status Updated": "Bestellstatus aktualisiert",
"Product Created": "Produkt erstellt",
"Shipment Created": "Versand erstellt",
"Triggers when a cart is abandoned": "Löst aus, wenn ein Warenkorb aufgegeben wird",
"Triggers when a new cart is created": "Wird ausgelöst, wenn ein neuer Warenkorb erstellt wird",
"Triggers when a new customer address is created": "Wird ausgelöst, wenn eine neue Kundenadresse erstellt wird",
"Triggers when a new customer address is updated": "Löst aus, wenn eine neue Kundenadresse aktualisiert wird",
"Triggers when a new customer is created": "Wird ausgelöst, wenn ein neuer Kunde erstellt wird",
"Triggers when a customer is updated": "Auslöser wenn ein Kunde aktualisiert wird",
"Triggers when a new order is created": "Wird ausgelöst, wenn eine neue Bestellung erstellt wird",
"Triggers when an order is updated": "Wird ausgelöst, wenn eine Bestellung aktualisiert wird",
"Triggers when an order status has changed": "Auslöser wenn sich der Bestellstatus geändert hat",
"Triggers when a new product is created": "Wird ausgelöst, wenn ein neues Produkt erstellt wird",
"Triggers when a new shipment is created": "Wird ausgelöst, wenn eine neue Sendung erstellt wird"
}

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerce es una plataforma líder de comercio electrónico que permite a las empresas crear y administrar tiendas en línea.",
"Markdown": "Markdown",
"Store Hash": "Hash de la tienda",
"Access Token": "Token de acceso",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Inicie sesión en https://www.bigcommerce.com/essentials/\n2. Vaya a Ajustes\n3. Desplácese hasta la API\n4. Haga clic en \"Tienda nivel API cuentas\"\n5. Haga clic en el botón \"Crear cuenta API\"\n6. Introduzca un nombre y añada los ámbitos requeridos\n7. Guardar - obtendrás un archivo descargado que contiene tu token de acceso y almacena hash",
"Your BigCommerce store hash (e.g., abcd1234)": "El hash de su tienda BigCommerce (ej., abcd1234)",
"Your BigCommerce API access token": "Tu token de acceso a la API BigCommerce",
"Enter your BigCommerce API credentials. ": "Introduzca sus credenciales de la API de BigCommerce. ",
"Create Customer": "Crear cliente",
"Create a Product": "Crear un Producto",
"Create Blog Post": "Crear entrada",
"Create Customer Address": "Crear dirección de cliente",
"Search Customer": "Buscar cliente",
"Search Product": "Buscar producto",
"Search Customer Address": "Buscar dirección de cliente",
"Find or Create Customer": "Encontrar o crear cliente",
"Find or Create Product": "Buscar o Crear Producto",
"Find or Create Customers Address": "Buscar o crear dirección del cliente",
"Custom API Call": "Llamada API personalizada",
"Creates a customer": "Crea un cliente",
"Creates a Product": "Crea un Producto",
"Creates a blog post": "Crea una entrada de blog",
"Creates a customer's address": "Crea la dirección de un cliente",
"Searches for a registered customer": "Busca un cliente registrado",
"Searches for a product in the catalog": "Busca un producto en el catálogo",
"Searches for a customers address": "Busca la dirección de un cliente",
"Finds or creates a customer": "Encuentra o crea un cliente",
"Finds or creates a product": "Encuentra o crea un producto",
"Finds or creates a customers address": "Encuentra o crea una dirección del cliente",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Email": "E-mail",
"First Name": "Nombre",
"Last Name": "Apellido",
"Company": "Empresa",
"Phone": "Teléfono",
"Notes": "Notas",
"Product Name": "Producto",
"Product Type": "Tipo de producto",
"SKU": "SKU",
"Description": "Descripción",
"Weight": "Peso",
"Price": "Precio",
"Brand ID": "Marca ID",
"Title": "Título",
"Body": "Cuerpo",
"Author": "Autor",
"URL": "URL",
"Published Date": "Fecha de publicación",
"Meta Description": "Meta Descripción",
"Meta Keywords": "Meta Keywords",
"Tags": "Etiquetas",
"Is Published": "Publicado",
"Customer": "Cliente",
"Address Line 1": "Dirección línea 1",
"Address Line 2": "Dirección línea 2",
"City": "Ciudad",
"State/Province": "Estado/Provenza",
"Postal Code": "Código postal",
"Country Code": "Código del país",
"Phone Number": "Número de teléfono",
"Name": "Nombre",
"Customers": "Clientes",
"Method": "Método",
"Headers": "Encabezados",
"Query Parameters": "Parámetros de consulta",
"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)",
"Customer email address": "Dirección de correo electrónico del cliente",
"Customer first name": "Nombre del cliente",
"Customer last name": "Apellido del cliente",
"Customer company name": "Nombre de la empresa del cliente",
"Customer phone number": "Número de teléfono del cliente",
"Customer notes": "Notas del cliente",
"Name of the product": "Nombre del producto",
"Type of product": "Tipo de producto",
"Product SKU": "SKU del producto",
"Product description": "Descripción del producto",
"Product weight": "Peso del producto",
"Product price": "Precio del producto",
"Blog post title": "Título del blog",
"Blog post content (HTML supported)": "Contenido del post del blog (compatible con HTML)",
"Author name": "Nombre del autor",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "URL para la publicación pública del blog. Ejemplo - /blog/welcome-bigcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "Fecha de publicación para la entrada del blog. Ejemplo - Mié, 10 ago 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "Texto de descripción para el elemento <meta/> de esta entrada del blog.",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "Las palabras clave separadas por comas (,) para el elemento <meta/> de esta entrada de blog. Eg welcome, bigcommerce",
"Array of tags": "Matriz de etiquetas",
"Whether the post is published": "Si la publicación está publicada",
"Select the customer": "Seleccione el cliente",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 código de país",
"Customer email to search for": "Correo electrónico del cliente para buscar",
"Phone Number to search for": "Número de teléfono para buscar",
"Customer name to search for": "Nombre del cliente para buscar",
"Product name to search for": "Nombre del producto a buscar",
"Product SKU to search for": "SKU de producto para buscar",
"Brand ID to search for": "Marca ID para buscar",
"Select the customers": "Seleccione los clientes",
"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 PDF, imágenes, etc.",
"Physical": "Física",
"Digital": "Digital",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO",
"Abandoned Cart": "Carrito abandonado",
"Cart Created": "Carrito creado",
"Customer Address Created": "Dirección del cliente creada",
"Customer Address Updated": "Dirección del cliente actualizada",
"Customer Created": "Cliente creado",
"Customer Updated": "Cliente actualizado",
"Order Created": "Orden creada",
"Order Updated": "Pedido actualizado",
"Order Status Updated": "Estado del pedido actualizado",
"Product Created": "Producto creado",
"Shipment Created": "Envío creado",
"Triggers when a cart is abandoned": "Desencadena cuando un carrito es abandonado",
"Triggers when a new cart is created": "Desencadena cuando se crea un nuevo carrito",
"Triggers when a new customer address is created": "Dispara cuando se crea una nueva dirección de cliente",
"Triggers when a new customer address is updated": "Dispara cuando se actualiza una nueva dirección de cliente",
"Triggers when a new customer is created": "Dispara cuando se crea un nuevo cliente",
"Triggers when a customer is updated": "Dispara cuando un cliente es actualizado",
"Triggers when a new order is created": "Dispara cuando se crea un nuevo pedido",
"Triggers when an order is updated": "Desencadena cuando se actualiza un pedido",
"Triggers when an order status has changed": "Dispara cuando un estado de un pedido ha cambiado",
"Triggers when a new product is created": "Dispara cuando se crea un nuevo producto",
"Triggers when a new shipment is created": "Dispara cuando se crea un nuevo envío"
}

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerce est une plateforme de commerce électronique de premier plan qui permet aux entreprises de créer et de gérer des magasins en ligne.",
"Markdown": "Markdown",
"Store Hash": "Stocker le hachage",
"Access Token": "Jeton d'accès",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Connectez-vous à https://www.bigcommerce.com/essentials/\n2. Allez dans les paramètres\n3. Faites défiler vers le bas jusqu'à l'API\n4. Cliquez sur \"Store Level API Accounts\"\n5. Cliquez sur le bouton \"Créer un compte API\"\n6. Entrez un nom et ajoutez les portées requises\n7. Enregistrez - vous obtiendrez un fichier téléchargé contenant votre jeton d'accès et le hachage de la boutique",
"Your BigCommerce store hash (e.g., abcd1234)": "Le hash de votre magasin BigCommerce (par exemple, abcd1234)",
"Your BigCommerce API access token": "Votre jeton d'accès à l'API BigCommerce",
"Enter your BigCommerce API credentials. ": "Entrez vos identifiants d'API BigCommerce. ",
"Create Customer": "Créer un client",
"Create a Product": "Créer un produit",
"Create Blog Post": "Créer un article de blog",
"Create Customer Address": "Créer une adresse client",
"Search Customer": "Rechercher un client",
"Search Product": "Rechercher un produit",
"Search Customer Address": "Rechercher une adresse client",
"Find or Create Customer": "Trouver ou créer un client",
"Find or Create Product": "Trouver ou créer un produit",
"Find or Create Customers Address": "Trouver ou créer l'adresse du client",
"Custom API Call": "Appel d'API personnalisé",
"Creates a customer": "Crée un client",
"Creates a Product": "Crée un produit",
"Creates a blog post": "Crée un article de blog",
"Creates a customer's address": "Crée une adresse client",
"Searches for a registered customer": "Recherche un client enregistré",
"Searches for a product in the catalog": "Recherche un produit dans le catalogue",
"Searches for a customers address": "Recherche l'adresse d'un client",
"Finds or creates a customer": "Trouve ou crée un client",
"Finds or creates a product": "Trouve ou crée un produit",
"Finds or creates a customers address": "Trouve ou crée l'adresse d'un client",
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
"Email": "Courriel",
"First Name": "First Name",
"Last Name": "Last Name",
"Company": "Entreprise",
"Phone": "Téléphone",
"Notes": "Notes",
"Product Name": "Nom du produit",
"Product Type": "Type de produit",
"SKU": "UGS",
"Description": "Libellé",
"Weight": "Poids",
"Price": "Prix",
"Brand ID": "ID de la marque",
"Title": "Titre",
"Body": "Body",
"Author": "Auteur",
"URL": "URL",
"Published Date": "Date de publication",
"Meta Description": "Description de la méta",
"Meta Keywords": "Meta Keywords",
"Tags": "Tags",
"Is Published": "Est publié",
"Customer": "Client",
"Address Line 1": "Adresse ligne 1",
"Address Line 2": "Adresse ligne 2",
"City": "Ville",
"State/Province": "État/Province",
"Postal Code": "Code postal",
"Country Code": "Code du pays",
"Phone Number": "Numéro de téléphone",
"Name": "Nom",
"Customers": "Clients",
"Method": "Méthode",
"Headers": "Headers",
"Query Parameters": "Paramètres de requête",
"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)",
"Customer email address": "Adresse e-mail du client",
"Customer first name": "Prénom du client",
"Customer last name": "Nom du client",
"Customer company name": "Nom de la société client",
"Customer phone number": "Numéro de téléphone du client",
"Customer notes": "Notes client",
"Name of the product": "Nom du produit",
"Type of product": "Type de produit",
"Product SKU": "REF du produit",
"Product description": "Description du produit",
"Product weight": "Poids du produit",
"Product price": "Prix du produit",
"Blog post title": "Titre du billet de blog",
"Blog post content (HTML supported)": "Contenu du billet de blog (HTML pris en charge)",
"Author name": "Nom de l'auteur",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "URL pour le billet public. Exemple - /blog/welcome-bigcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "Publié date pour le blog. Exemple - Mercredi, 10 Août 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "Description text for this blog posts <meta/> element.",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce",
"Array of tags": "Tableau de balises",
"Whether the post is published": "Si le message est publié",
"Select the customer": "Sélectionnez le client",
"ISO 3166-1 alpha-2 country code": "Code pays ISO 3166-1 alpha-2",
"Customer email to search for": "Courriel du client à rechercher",
"Phone Number to search for": "Numéro de téléphone à rechercher",
"Customer name to search for": "Nom du client à rechercher",
"Product name to search for": "Nom du produit à rechercher",
"Product SKU to search for": "REF du produit à rechercher",
"Brand ID to search for": "ID de la marque à rechercher",
"Select the customers": "Sélectionnez les clients",
"Authorization headers are injected automatically from your connection.": "Les Headers 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.",
"Physical": "Physique",
"Digital": "Numérique",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"Abandoned Cart": "Panier abandonné",
"Cart Created": "Panier créé",
"Customer Address Created": "Adresse du client créée",
"Customer Address Updated": "Adresse du client mise à jour",
"Customer Created": "Client créé",
"Customer Updated": "Client mis à jour",
"Order Created": "Commande créée",
"Order Updated": "Commande mise à jour",
"Order Status Updated": "Statut de la commande mis à jour",
"Product Created": "Produit créé",
"Shipment Created": "Envoi créé",
"Triggers when a cart is abandoned": "Déclenche lorsqu'un panier est abandonné",
"Triggers when a new cart is created": "Déclenche quand un nouveau panier est créé",
"Triggers when a new customer address is created": "Déclenche quand une nouvelle adresse client est créée",
"Triggers when a new customer address is updated": "Déclenche quand une nouvelle adresse client est mise à jour",
"Triggers when a new customer is created": "Déclenche lorsqu'un nouveau client est créé",
"Triggers when a customer is updated": "Déclenche lorsqu'un client est mis à jour",
"Triggers when a new order is created": "Déclenche quand une nouvelle commande est créée",
"Triggers when an order is updated": "Déclenche quand une commande est mise à jour",
"Triggers when an order status has changed": "Déclenche quand un état de commande a changé",
"Triggers when a new product is created": "Déclenche lorsqu'un nouveau produit est créé",
"Triggers when a new shipment is created": "Déclenche quand une nouvelle expédition est créée"
}

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerceは、企業がオンラインストアを作成および管理できる主要な電子商取引プラットフォームです。",
"Markdown": "Markdown",
"Store Hash": "店舗ハッシュ",
"Access Token": "アクセストークン",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash",
"Your BigCommerce store hash (e.g., abcd1234)": "BigCommerceストアのハッシュabcd1234",
"Your BigCommerce API access token": "BigCommerce APIアクセストークン",
"Enter your BigCommerce API credentials. ": "BigCommerce API資格情報を入力してください。 ",
"Create Customer": "顧客を作成",
"Create a Product": "商品を作成",
"Create Blog Post": "ブログ記事を作成",
"Create Customer Address": "顧客住所を作成",
"Search Customer": "顧客を検索",
"Search Product": "商品を検索",
"Search Customer Address": "顧客住所を検索",
"Find or Create Customer": "顧客を検索または作成",
"Find or Create Product": "商品を検索または作成",
"Find or Create Customers Address": "顧客の住所を検索または作成",
"Custom API Call": "カスタムAPI通話",
"Creates a customer": "顧客を作成",
"Creates a Product": "商品を作成",
"Creates a blog post": "ブログ記事を作成",
"Creates a customer's address": "顧客の住所を作成",
"Searches for a registered customer": "登録済み顧客を検索",
"Searches for a product in the catalog": "カタログ内の製品を検索",
"Searches for a customers address": "顧客の住所を検索",
"Finds or creates a customer": "顧客を検索または作成",
"Finds or creates a product": "商品を検索または作成",
"Finds or creates a customers address": "顧客の住所を検索または作成",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Email": "Eメールアドレス",
"First Name": "名",
"Last Name": "Last Name",
"Company": "会社名",
"Phone": "電話番号",
"Notes": "メモ",
"Product Name": "商品名",
"Product Type": "製品タイプ",
"SKU": "SKU",
"Description": "説明",
"Weight": "重量",
"Price": "価格",
"Brand ID": "ブランドID",
"Title": "タイトル",
"Body": "本文",
"Author": "作成者",
"URL": "URL",
"Published Date": "公開日時",
"Meta Description": "メタ説明",
"Meta Keywords": "Meta Keywords",
"Tags": "タグ",
"Is Published": "公開済み",
"Customer": "顧客",
"Address Line 1": "住所1",
"Address Line 2": "住所2",
"City": "市区町村名",
"State/Province": "都道府県:",
"Postal Code": "郵便番号",
"Country Code": "国コード",
"Phone Number": "電話番号",
"Name": "Name",
"Customers": "顧客",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"Customer email address": "顧客のメールアドレス",
"Customer first name": "顧客名",
"Customer last name": "顧客の姓",
"Customer company name": "顧客の会社名",
"Customer phone number": "顧客電話番号",
"Customer notes": "顧客メモ",
"Name of the product": "製品名",
"Type of product": "製品の種類",
"Product SKU": "商品SKU",
"Product description": "製品の説明",
"Product weight": "製品の重量",
"Product price": "商品価格",
"Blog post title": "ブログ投稿タイトル",
"Blog post content (HTML supported)": "ブログ投稿の内容HTML対応",
"Author name": "投稿者名",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "公開ブログのURL。例 - /blog/welcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "ブログ投稿の公開日時 例 - Wed, 10 Aug 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "このブログ記事の説明テキスト <meta/> 要素。",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "このブログ記事の <meta/> 要素のキーワードをカンマ区切りにしました。例えば、bigcommerce",
"Array of tags": "タグの配列",
"Whether the post is published": "投稿が公開されるかどうか",
"Select the customer": "顧客を選択",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 国コード",
"Customer email to search for": "検索する顧客メールアドレス",
"Phone Number to search for": "検索する電話番号",
"Customer name to search for": "検索する顧客名",
"Product name to search for": "検索する製品名",
"Product SKU to search for": "検索する製品SKU",
"Brand ID to search for": "検索するブランドID",
"Select the customers": "顧客を選択",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"Physical": "物理的な",
"Digital": "デジタル",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭",
"Abandoned Cart": "放棄されたカート",
"Cart Created": "カートが作成されました",
"Customer Address Created": "顧客住所が作成されました",
"Customer Address Updated": "顧客住所が更新されました",
"Customer Created": "顧客が作成されました",
"Customer Updated": "顧客の更新",
"Order Created": "作成された注文",
"Order Updated": "注文が更新されました",
"Order Status Updated": "注文ステータスを更新しました",
"Product Created": "製品が作成されました",
"Shipment Created": "出荷が作成されました",
"Triggers when a cart is abandoned": "カートが放棄されたときにトリガーする",
"Triggers when a new cart is created": "新しいカートが作成されたときにトリガーします",
"Triggers when a new customer address is created": "新しい顧客住所が作成されたときにトリガーします",
"Triggers when a new customer address is updated": "新しい顧客住所が更新されたときにトリガーします",
"Triggers when a new customer is created": "新しい顧客が作成されたときにトリガーします",
"Triggers when a customer is updated": "顧客が更新されたときにトリガーします",
"Triggers when a new order is created": "新しい注文が作成されたときにトリガーします",
"Triggers when an order is updated": "注文が更新されたときに発行されます",
"Triggers when an order status has changed": "注文ステータスが変更されたときにトリガー",
"Triggers when a new product is created": "新しい製品が作成されたときにトリガーします",
"Triggers when a new shipment is created": "新しい出荷が作成されたときに発生する"
}

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerce is een toonaangevend e-commerce-platform dat bedrijven in staat stelt om online winkels te creëren en te beheren.",
"Markdown": "Markdown",
"Store Hash": "Winkel hash",
"Access Token": "Toegangs-token",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Log in op https://www.bigcommerce.com/essentials/\n2. Ga naar Instellingen\n3. Scroll naar beneden naar API\n4. Klik op \"Store Level API Accounts\"\n5. Klik op de knop \"API-account maken\"\n6. Voer een naam in en voeg de vereiste toepassingsgebieden toe\n7. Opslaan - u krijgt een gedownload bestand met uw toegangstoken en sla hash op",
"Your BigCommerce store hash (e.g., abcd1234)": "Uw BigCommerce winkel hash (bijv. abcd1234)",
"Your BigCommerce API access token": "Uw toegangstoken voor de BigCommerce API",
"Enter your BigCommerce API credentials. ": "Voer uw BigCommerce API-referenties in. ",
"Create Customer": "Klant aanmaken",
"Create a Product": "Een product aanmaken",
"Create Blog Post": "Blogpost aanmaken",
"Create Customer Address": "Klantadres aanmaken",
"Search Customer": "Klant zoeken",
"Search Product": "Zoek product",
"Search Customer Address": "Zoek klant adres",
"Find or Create Customer": "Zoek of creëer een klant",
"Find or Create Product": "Product zoeken of aanmaken",
"Find or Create Customers Address": "Klantadres zoeken of aanmaken",
"Custom API Call": "Custom API Call",
"Creates a customer": "Maakt een klant aan",
"Creates a Product": "Maakt een product aan",
"Creates a blog post": "Maakt een blogbericht",
"Creates a customer's address": "Maakt een adres van de klant",
"Searches for a registered customer": "Zoekt naar een geregistreerde klant",
"Searches for a product in the catalog": "Zoekt naar een product in de catalogus",
"Searches for a customers address": "Zoekt naar het adres van een klant",
"Finds or creates a customer": "Gevonden of maak een klant aan",
"Finds or creates a product": "Gevonden of maakt een product aan",
"Finds or creates a customers address": "Gevonden of maak een klantadres aan",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Email": "E-mail",
"First Name": "Voornaam",
"Last Name": "Achternaam",
"Company": "Bedrijfsnaam",
"Phone": "Telefoonnummer",
"Notes": "Opmerkingen",
"Product Name": "Product Naam",
"Product Type": "Type product",
"SKU": "Artikelnummer",
"Description": "Beschrijving",
"Weight": "Gewicht",
"Price": "Prijs",
"Brand ID": "Merk ID",
"Title": "Aanspreektitel",
"Body": "Lichaam",
"Author": "Auteur",
"URL": "URL",
"Published Date": "Gepubliceerde datum",
"Meta Description": "Meta omschrijving",
"Meta Keywords": "Meta Keywords",
"Tags": "Labels",
"Is Published": "Is gepubliceerd",
"Customer": "Klant",
"Address Line 1": "Adresregel 1",
"Address Line 2": "Adresregel 2",
"City": "Woonplaats",
"State/Province": "Staat/provincie",
"Postal Code": "Postcode - Postcode",
"Country Code": "Land Code",
"Phone Number": "Telefoon nummer",
"Name": "Naam",
"Customers": "klanten",
"Method": "Methode",
"Headers": "Kopteksten",
"Query Parameters": "Query parameters",
"Response is Binary ?": "Antwoord is binair?",
"No Error on Failure": "Geen fout bij fout",
"Timeout (in seconds)": "Time-out (in seconden)",
"Customer email address": "Klant e-mail adres",
"Customer first name": "Klant voornaam",
"Customer last name": "Klant achternaam",
"Customer company name": "Naam klantbedrijf",
"Customer phone number": "Telefoonnummer klant",
"Customer notes": "Klant notities",
"Name of the product": "Naam van het product",
"Type of product": "Type product",
"Product SKU": "Product Art.nr.",
"Product description": "Omschrijving product",
"Product weight": "Gewicht product",
"Product price": "Product prijs",
"Blog post title": "Blog titel",
"Blog post content (HTML supported)": "Blog post inhoud (HTML ondersteund)",
"Author name": "Naam auteur",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "URL voor de publieke blogpost. Voorbeeld - /blog/welcome-bigcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "Gepubliceerde datum voor de blogpost. Voorbeeld - Wed, 10 Aug 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "Beschrijvingstekst van deze blogpost <meta/> -element.",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "Komma gescheiden (,) trefwoorden voor het <meta/> -element van deze blog. Hartelijk welkom, bigcommerce",
"Array of tags": "Array van tags",
"Whether the post is published": "Of de post gepubliceerd is",
"Select the customer": "Klant selecteren",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 landcode",
"Customer email to search for": "Klante-mail om naar te zoeken",
"Phone Number to search for": "Telefoonnummer om naar te zoeken",
"Customer name to search for": "Klantnaam om naar te zoeken",
"Product name to search for": "Productnaam om te zoeken naar",
"Product SKU to search for": "Product art.nr. om te zoeken naar",
"Brand ID to search for": "Merk ID om naar te zoeken",
"Select the customers": "Selecteer de klanten",
"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..",
"Physical": "Fysieke",
"Digital": "Digitaal",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD",
"Abandoned Cart": "Verlaten winkelwagen",
"Cart Created": "Winkelwagen aangemaakt",
"Customer Address Created": "Klant adres aangemaakt",
"Customer Address Updated": "Klant adres bijgewerkt",
"Customer Created": "Klant aangemaakt",
"Customer Updated": "Klant bijgewerkt",
"Order Created": "Bestelling aangemaakt",
"Order Updated": "Order bijgewerkt",
"Order Status Updated": "Orderstatus bijgewerkt",
"Product Created": "Product aangemaakt",
"Shipment Created": "Verzending aangemaakt",
"Triggers when a cart is abandoned": "Triggert wanneer een winkelwagen wordt verlaten",
"Triggers when a new cart is created": "Triggert wanneer een nieuwe winkelwagen wordt aangemaakt",
"Triggers when a new customer address is created": "Triggert wanneer een nieuw klantadres wordt aangemaakt",
"Triggers when a new customer address is updated": "Triggert wanneer een nieuw klantadres wordt bijgewerkt",
"Triggers when a new customer is created": "Triggert wanneer een nieuwe klant wordt aangemaakt",
"Triggers when a customer is updated": "Triggert wanneer een klant wordt bijgewerkt",
"Triggers when a new order is created": "Triggert wanneer een nieuwe bestelling wordt aangemaakt",
"Triggers when an order is updated": "Triggert wanneer een bestelling wordt bijgewerkt",
"Triggers when an order status has changed": "Triggert wanneer de orderstatus is veranderd",
"Triggers when a new product is created": "Triggert wanneer een nieuw product wordt aangemaakt",
"Triggers when a new shipment is created": "Triggert wanneer een nieuwe verzending wordt aangemaakt"
}

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerce é uma plataforma líder de e-commerce que permite que empresas criem e gerenciem lojas on-line.",
"Markdown": "Markdown",
"Store Hash": "Armazenar Hash",
"Access Token": "Token de acesso",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Login para https://www.bigcommerce.com/essentials/\n2. Ir para Configurações\n3. Rolagem para a API\n4. Clique em \"Store Level API Accounts\"\n5. Clique no botão \"Criar conta de API\"\n6. Insira um nome e adicione o escopo\n7. Salvar - você receberá um arquivo baixado contendo o seu token de acesso e o hash da loja",
"Your BigCommerce store hash (e.g., abcd1234)": "Seu hash na loja BigCommerce (por exemplo, abcd1234)",
"Your BigCommerce API access token": "Seu token de acesso ao BigCommerce",
"Enter your BigCommerce API credentials. ": "Insira suas credenciais de API do BigCommerce. ",
"Create Customer": "Criar Cliente",
"Create a Product": "Criar um produto",
"Create Blog Post": "Criar publicação no blog",
"Create Customer Address": "Criar endereço de cliente",
"Search Customer": "Pesquisar Cliente",
"Search Product": "Pesquisar produto",
"Search Customer Address": "Pesquisar endereço do cliente",
"Find or Create Customer": "Encontrar ou Criar Cliente",
"Find or Create Product": "Localizar ou Criar Produto",
"Find or Create Customers Address": "Localizar ou criar endereço do cliente",
"Custom API Call": "Chamada de API personalizada",
"Creates a customer": "Cria um cliente",
"Creates a Product": "Cria um produto",
"Creates a blog post": "Cria um post no blog",
"Creates a customer's address": "Cria um endereço de cliente",
"Searches for a registered customer": "Busca por um cliente registrado",
"Searches for a product in the catalog": "Pesquisa por um produto no catálogo",
"Searches for a customers address": "Procura o endereço de um cliente",
"Finds or creates a customer": "Encontra ou cria um cliente",
"Finds or creates a product": "Encontra-se ou cria um produto",
"Finds or creates a customers address": "Localiza ou cria o endereço de um cliente",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Email": "e-mail",
"First Name": "Nome",
"Last Name": "Sobrenome",
"Company": "Empresas",
"Phone": "Smartphone",
"Notes": "Observações",
"Product Name": "Nome do Produto",
"Product Type": "Tipo de Produto",
"SKU": "Código",
"Description": "Descrição",
"Weight": "Peso",
"Price": "Quantidade",
"Brand ID": "ID da Marca",
"Title": "Título",
"Body": "Conteúdo",
"Author": "Autor",
"URL": "URL:",
"Published Date": "Data de publicação",
"Meta Description": "Meta Descrição",
"Meta Keywords": "Meta Keywords",
"Tags": "Etiquetas",
"Is Published": "Está publicado",
"Customer": "Cliente",
"Address Line 1": "Linha de Endereço 1",
"Address Line 2": "Linha de Endereço 2",
"City": "cidade",
"State/Province": "Estado/província",
"Postal Code": "Código Postal",
"Country Code": "Código do país",
"Phone Number": "Número de telefone",
"Name": "Nome",
"Customers": "clientes",
"Method": "Método",
"Headers": "Cabeçalhos",
"Query Parameters": "Parâmetros da consulta",
"Response is Binary ?": "A resposta é binária ?",
"No Error on Failure": "Nenhum erro no Failure",
"Timeout (in seconds)": "Tempo limite (em segundos)",
"Customer email address": "E-mail do cliente",
"Customer first name": "Nome do cliente",
"Customer last name": "Sobrenome do cliente",
"Customer company name": "Nome da empresa cliente",
"Customer phone number": "Telefone do cliente",
"Customer notes": "Notas do cliente",
"Name of the product": "Nome do produto",
"Type of product": "Tipo de produto",
"Product SKU": "SKU do produto",
"Product description": "Descrição do produto",
"Product weight": "Peso do produto",
"Product price": "Preço do Produto",
"Blog post title": "Título da postagem do blog",
"Blog post content (HTML supported)": "Conteúdo da postagem de blog (HTML suportado)",
"Author name": "Nome do autor",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "URL para o post do blog público. Exemplo - /blog/welcome-bigcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "Data de publicação para o post do blog. Exemplo - Wed, 10 de agosto de 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "Description text for this blog posts <meta/> element.",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce",
"Array of tags": "Array de tags",
"Whether the post is published": "Se o post foi publicado",
"Select the customer": "Selecione o cliente",
"ISO 3166-1 alpha-2 country code": "Código de país ISO 3166-1 alpha-2",
"Customer email to search for": "E-mail do cliente para procurar",
"Phone Number to search for": "Número de telefone para pesquisar",
"Customer name to search for": "Nome do cliente para procurar",
"Product name to search for": "Nome do produto para procurar",
"Product SKU to search for": "SKU do produto para procurar",
"Brand ID to search for": "ID da marca para procurar",
"Select the customers": "Selecione os clientes",
"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..",
"Physical": "Física",
"Digital": "Digital",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA",
"Abandoned Cart": "Carrinho Abandonado",
"Cart Created": "Carro criado",
"Customer Address Created": "Endereço de cliente criado",
"Customer Address Updated": "Endereço do cliente atualizado",
"Customer Created": "Cliente criado",
"Customer Updated": "Cliente atualizado",
"Order Created": "Pedido criado",
"Order Updated": "Pedido atualizado",
"Order Status Updated": "Status do pedido atualizado",
"Product Created": "Produto Criado",
"Shipment Created": "Envio Criado",
"Triggers when a cart is abandoned": "Dispara quando um carrinho é abandonado",
"Triggers when a new cart is created": "Dispara quando um novo carrinho é criado",
"Triggers when a new customer address is created": "Dispara quando um novo endereço de cliente é criado",
"Triggers when a new customer address is updated": "Dispara quando um novo endereço de cliente é atualizado",
"Triggers when a new customer is created": "Dispara quando um novo cliente é criado",
"Triggers when a customer is updated": "Dispara quando um cliente é atualizado",
"Triggers when a new order is created": "Dispara quando uma nova ordem é criada",
"Triggers when an order is updated": "Dispara quando uma ordem é atualizada",
"Triggers when an order status has changed": "Dispara quando um status de pedido mudou",
"Triggers when a new product is created": "Aciona quando um novo produto é criado",
"Triggers when a new shipment is created": "Dispara quando uma nova remessa é criada"
}

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.",
"Markdown": "Markdown",
"Store Hash": "Store Hash",
"Access Token": "Access Token",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash",
"Your BigCommerce store hash (e.g., abcd1234)": "Your BigCommerce store hash (e.g., abcd1234)",
"Your BigCommerce API access token": "Your BigCommerce API access token",
"Enter your BigCommerce API credentials. ": "Enter your BigCommerce API credentials. ",
"Create Customer": "Create Customer",
"Create a Product": "Create a Product",
"Create Blog Post": "Create Blog Post",
"Create Customer Address": "Create Customer Address",
"Search Customer": "Search Customer",
"Search Product": "Search Product",
"Search Customer Address": "Search Customer Address",
"Find or Create Customer": "Find or Create Customer",
"Find or Create Product": "Find or Create Product",
"Find or Create Customers Address": "Find or Create Customers Address",
"Custom API Call": "Custom API Call",
"Creates a customer": "Creates a customer",
"Creates a Product": "Creates a Product",
"Creates a blog post": "Creates a blog post",
"Creates a customer's address": "Creates a customer's address",
"Searches for a registered customer": "Searches for a registered customer",
"Searches for a product in the catalog": "Searches for a product in the catalog",
"Searches for a customers address": "Searches for a customers address",
"Finds or creates a customer": "Finds or creates a customer",
"Finds or creates a product": "Finds or creates a product",
"Finds or creates a customers address": "Finds or creates a customers address",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Email": "Email",
"First Name": "First Name",
"Last Name": "Last Name",
"Company": "Company",
"Phone": "Phone",
"Notes": "Notes",
"Product Name": "Product Name",
"Product Type": "Product Type",
"SKU": "SKU",
"Description": "Description",
"Weight": "Weight",
"Price": "Price",
"Brand ID": "Brand ID",
"Title": "Title",
"Body": "Body",
"Author": "Author",
"URL": "URL",
"Published Date": "Published Date",
"Meta Description": "Meta Description",
"Meta Keywords": "Meta Keywords",
"Tags": "Tags",
"Is Published": "Is Published",
"Customer": "Customer",
"Address Line 1": "Address Line 1",
"Address Line 2": "Address Line 2",
"City": "City",
"State/Province": "State/Province",
"Postal Code": "Postal Code",
"Country Code": "Country Code",
"Phone Number": "Phone Number",
"Name": "Name",
"Customers": "Customers",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Customer email address": "Customer email address",
"Customer first name": "Customer first name",
"Customer last name": "Customer last name",
"Customer company name": "Customer company name",
"Customer phone number": "Customer phone number",
"Customer notes": "Customer notes",
"Name of the product": "Name of the product",
"Type of product": "Type of product",
"Product SKU": "Product SKU",
"Product description": "Product description",
"Product weight": "Product weight",
"Product price": "Product price",
"Blog post title": "Blog post title",
"Blog post content (HTML supported)": "Blog post content (HTML supported)",
"Author name": "Author name",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "URL for the public blog post. Example - /blog/welcome-bigcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "Description text for this blog posts <meta/> element.",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce",
"Array of tags": "Array of tags",
"Whether the post is published": "Whether the post is published",
"Select the customer": "Select the customer",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 country code",
"Customer email to search for": "Customer email to search for",
"Phone Number to search for": "Phone Number to search for",
"Customer name to search for": "Customer name to search for",
"Product name to search for": "Product name to search for",
"Product SKU to search for": "Product SKU to search for",
"Brand ID to search for": "Brand ID to search for",
"Select the customers": "Select the customers",
"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..",
"Physical": "Physical",
"Digital": "Digital",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"Abandoned Cart": "Abandoned Cart",
"Cart Created": "Cart Created",
"Customer Address Created": "Customer Address Created",
"Customer Address Updated": "Customer Address Updated",
"Customer Created": "Customer Created",
"Customer Updated": "Customer Updated",
"Order Created": "Order Created",
"Order Updated": "Order Updated",
"Order Status Updated": "Order Status Updated",
"Product Created": "Product Created",
"Shipment Created": "Shipment Created",
"Triggers when a cart is abandoned": "Triggers when a cart is abandoned",
"Triggers when a new cart is created": "Triggers when a new cart is created",
"Triggers when a new customer address is created": "Triggers when a new customer address is created",
"Triggers when a new customer address is updated": "Triggers when a new customer address is updated",
"Triggers when a new customer is created": "Triggers when a new customer is created",
"Triggers when a customer is updated": "Triggers when a customer is updated",
"Triggers when a new order is created": "Triggers when a new order is created",
"Triggers when an order is updated": "Triggers when an order is updated",
"Triggers when an order status has changed": "Triggers when an order status has changed",
"Triggers when a new product is created": "Triggers when a new product is created",
"Triggers when a new shipment is created": "Triggers when a new shipment is created"
}

View File

@@ -0,0 +1,132 @@
{
"BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.": "BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.",
"Markdown": "Markdown",
"Store Hash": "Store Hash",
"Access Token": "Access Token",
"1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash": "1. Login to https://www.bigcommerce.com/essentials/\n2. Go to Settings\n3. Scroll down to API\n4. Click on \"Store Level API Accounts\"\n5. Click \"Create API Account\" button\n6. Enter a name and add required scopes\n7. Save - you will get a downloaded file containing your access token and store hash",
"Your BigCommerce store hash (e.g., abcd1234)": "Your BigCommerce store hash (e.g., abcd1234)",
"Your BigCommerce API access token": "Your BigCommerce API access token",
"Enter your BigCommerce API credentials. ": "Enter your BigCommerce API credentials. ",
"Create Customer": "Create Customer",
"Create a Product": "Create a Product",
"Create Blog Post": "Create Blog Post",
"Create Customer Address": "Create Customer Address",
"Search Customer": "Search Customer",
"Search Product": "Search Product",
"Search Customer Address": "Search Customer Address",
"Find or Create Customer": "Find or Create Customer",
"Find or Create Product": "Find or Create Product",
"Find or Create Customers Address": "Find or Create Customers Address",
"Custom API Call": "自定义 API 呼叫",
"Creates a customer": "Creates a customer",
"Creates a Product": "Creates a Product",
"Creates a blog post": "Creates a blog post",
"Creates a customer's address": "Creates a customer's address",
"Searches for a registered customer": "Searches for a registered customer",
"Searches for a product in the catalog": "Searches for a product in the catalog",
"Searches for a customers address": "Searches for a customers address",
"Finds or creates a customer": "Finds or creates a customer",
"Finds or creates a product": "Finds or creates a product",
"Finds or creates a customers address": "Finds or creates a customers address",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Email": "电子邮件地址",
"First Name": "First Name",
"Last Name": "名字",
"Company": "Company",
"Phone": "Phone",
"Notes": "Notes",
"Product Name": "Product Name",
"Product Type": "Product Type",
"SKU": "SKU",
"Description": "描述",
"Weight": "Weight",
"Price": "Price",
"Brand ID": "Brand ID",
"Title": "标题",
"Body": "正文内容",
"Author": "Author",
"URL": "URL",
"Published Date": "Published Date",
"Meta Description": "Meta Description",
"Meta Keywords": "Meta Keywords",
"Tags": "标签",
"Is Published": "Is Published",
"Customer": "Customer",
"Address Line 1": "Address Line 1",
"Address Line 2": "Address Line 2",
"City": "City",
"State/Province": "State/Province",
"Postal Code": "Postal Code",
"Country Code": "Country Code",
"Phone Number": "Phone Number",
"Name": "名称",
"Customers": "Customers",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"Customer email address": "Customer email address",
"Customer first name": "Customer first name",
"Customer last name": "Customer last name",
"Customer company name": "Customer company name",
"Customer phone number": "Customer phone number",
"Customer notes": "Customer notes",
"Name of the product": "Name of the product",
"Type of product": "Type of product",
"Product SKU": "Product SKU",
"Product description": "Product description",
"Product weight": "Product weight",
"Product price": "Product price",
"Blog post title": "Blog post title",
"Blog post content (HTML supported)": "Blog post content (HTML supported)",
"Author name": "Author name",
"URL for the public blog post. Example - /blog/welcome-bigcommerce/": "URL for the public blog post. Example - /blog/welcome-bigcommerce/",
"Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500": "Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500",
"Description text for this blog posts <meta/> element.": "Description text for this blog posts <meta/> element.",
"Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce": "Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce",
"Array of tags": "Array of tags",
"Whether the post is published": "Whether the post is published",
"Select the customer": "Select the customer",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 country code",
"Customer email to search for": "Customer email to search for",
"Phone Number to search for": "Phone Number to search for",
"Customer name to search for": "Customer name to search for",
"Product name to search for": "Product name to search for",
"Product SKU to search for": "Product SKU to search for",
"Brand ID to search for": "Brand ID to search for",
"Select the customers": "Select the customers",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"Physical": "Physical",
"Digital": "Digital",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色",
"Abandoned Cart": "Abandoned Cart",
"Cart Created": "Cart Created",
"Customer Address Created": "Customer Address Created",
"Customer Address Updated": "Customer Address Updated",
"Customer Created": "Customer Created",
"Customer Updated": "Customer Updated",
"Order Created": "Order Created",
"Order Updated": "Order Updated",
"Order Status Updated": "Order Status Updated",
"Product Created": "Product Created",
"Shipment Created": "Shipment Created",
"Triggers when a cart is abandoned": "Triggers when a cart is abandoned",
"Triggers when a new cart is created": "Triggers when a new cart is created",
"Triggers when a new customer address is created": "Triggers when a new customer address is created",
"Triggers when a new customer address is updated": "Triggers when a new customer address is updated",
"Triggers when a new customer is created": "Triggers when a new customer is created",
"Triggers when a customer is updated": "Triggers when a customer is updated",
"Triggers when a new order is created": "Triggers when a new order is created",
"Triggers when an order is updated": "Triggers when an order is updated",
"Triggers when an order status has changed": "Triggers when an order status has changed",
"Triggers when a new product is created": "Triggers when a new product is created",
"Triggers when a new shipment is created": "Triggers when a new shipment is created"
}

View File

@@ -0,0 +1,71 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { abandonedCart } from './lib/triggers/abandoned-cart';
import { cartCreated } from './lib/triggers/cart-created';
import { customerAddressCreated } from './lib/triggers/customer-address-created';
import { customerAddressUpdated } from './lib/triggers/customer-address-updated';
import { customerCreated } from './lib/triggers/customer-created';
import { customerUpdated } from './lib/triggers/customer-updated';
import { orderCreated } from './lib/triggers/order-created';
import { orderUpdated } from './lib/triggers/order-updated';
import { orderStatusUpdated } from './lib/triggers/order-status-updated';
import { productCreated } from './lib/triggers/product-created';
import { shipmentCreated } from './lib/triggers/shipment-created';
import { createCustomer } from './lib/actions/create-customer';
import { bigcommerceAuth } from './lib/common/auth';
import { createAProduct } from './lib/actions/create-a-product';
import { createBlogPost } from './lib/actions/create-blog-post';
import { createCustomerAddress } from './lib/actions/create-customer-address';
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import { bigCommerceAuth, GET_BASE_URL } from './lib/common/constants';
import { searchCustomer } from './lib/actions/search-customer';
import { searchProduct } from './lib/actions/search-product';
import { searchCustomerAddress } from './lib/actions/search-customer-address';
import { findOrCreateCustomer } from './lib/actions/find-or-create-customer';
import { findOrCreateProduct } from './lib/actions/find-or-create-product';
import { findOrCreateCustomersAddress } from './lib/actions/find-or-create-customers-address';
export const bigcommerce = createPiece({
displayName: 'Bigcommerce',
description:
'BigCommerce is a leading e-commerce platform that enables businesses to create and manage online stores.',
auth: bigcommerceAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: 'https://cdn.activepieces.com/pieces/bigcommerce.png',
authors: ['gs03-dev', 'sanket-a11y'],
actions: [
createCustomer,
createAProduct,
createBlogPost,
createCustomerAddress,
searchCustomer,
searchProduct,
searchCustomerAddress,
findOrCreateCustomer,
findOrCreateProduct,
findOrCreateCustomersAddress,
createCustomApiCallAction({
auth: bigcommerceAuth,
baseUrl: (auth) => auth ? GET_BASE_URL(auth.props.storeHash) : '',
authMapping: async (auth: any) => {
return {
'X-Auth-Token': auth.props.accessToken,
'Content-Type': 'application/json',
Accept: 'application/json',
};
},
}),
],
triggers: [
abandonedCart,
cartCreated,
customerAddressCreated,
customerAddressUpdated,
customerCreated,
customerUpdated,
orderCreated,
orderUpdated,
orderStatusUpdated,
productCreated,
shipmentCreated,
],
});

View File

@@ -0,0 +1,67 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
export const createAProduct = createAction({
auth: bigcommerceAuth,
name: 'createAProduct',
displayName: 'Create a Product',
description: 'Creates a Product',
props: {
name: Property.ShortText({
displayName: 'Product Name',
description: 'Name of the product',
required: true,
}),
type: Property.StaticDropdown({
displayName: 'Product Type',
description: 'Type of product',
required: true,
options: {
options: [
{ label: 'Physical', value: 'physical' },
{ label: 'Digital', value: 'digital' },
],
},
}),
sku: Property.ShortText({
displayName: 'SKU',
description: 'Product SKU',
required: false,
}),
description: Property.LongText({
displayName: 'Description',
description: 'Product description',
required: false,
}),
weight: Property.Number({
displayName: 'Weight',
description: 'Product weight',
required: true,
}),
price: Property.Number({
displayName: 'Price',
description: 'Product price',
required: true,
}),
brand_id: Property.Number({
displayName: 'Brand ID',
description: 'Brand ID',
required: false,
}),
},
async run(context) {
return await bigCommerceApiService.createProduct({
auth: context.auth.props,
payload: {
name: context.propsValue.name,
type: context.propsValue.type,
sku: context.propsValue.sku,
description: context.propsValue.description,
weight: context.propsValue.weight,
price: context.propsValue.price,
brand_id: context.propsValue.brand_id,
},
});;
},
});

View File

@@ -0,0 +1,76 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
export const createBlogPost = createAction({
auth: bigcommerceAuth,
name: 'createBlogPost',
displayName: 'Create Blog Post',
description: 'Creates a blog post',
props: {
title: Property.ShortText({
displayName: 'Title',
description: 'Blog post title',
required: true,
}),
body: Property.LongText({
displayName: 'Body',
description: 'Blog post content (HTML supported)',
required: true,
}),
author: Property.ShortText({
displayName: 'Author',
description: 'Author name',
required: false,
}),
url: Property.ShortText({
displayName: 'URL',
description:
'URL for the public blog post. Example - /blog/welcome-bigcommerce/',
required: false,
}),
published_date: Property.DateTime({
displayName: 'Published Date',
description:
'Published Date for the blog post. Example - Wed, 10 Aug 2022 15:39:15 -0500',
required: false,
}),
meta_description: Property.LongText({
displayName: 'Meta Description',
description: 'Description text for this blog posts <meta/> element.',
required: false,
}),
meta_keywords: Property.LongText({
displayName: 'Meta Keywords',
description: 'Comma seperated (,) Keywords for this blog posts <meta/> element. Eg welcome, bigcommerce',
required: false,
}),
tags: Property.Array({
displayName: 'Tags',
description: 'Array of tags',
required: false,
}),
is_published: Property.Checkbox({
displayName: 'Is Published',
description: 'Whether the post is published',
required: false,
defaultValue: true,
}),
},
async run(context) {
return await bigCommerceApiService.createBlogPost({
auth: context.auth.props,
payload: {
title: context.propsValue.title,
body: context.propsValue.body,
author: context.propsValue.author,
tags: context.propsValue.tags,
is_published: context.propsValue.is_published,
meta_description: context.propsValue.meta_description,
meta_keywords: context.propsValue.meta_keywords,
published_date: context.propsValue.published_date,
url: context.propsValue.url,
},
});
},
});

View File

@@ -0,0 +1,72 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { customerDropdown } from '../common/props';
import { bigCommerceApiService } from '../common/requests';
export const createCustomerAddress = createAction({
auth: bigcommerceAuth,
name: 'createCustomerAddress',
displayName: 'Create Customer Address',
description: "Creates a customer's address",
props: {
customer_id: customerDropdown({
required: true
}),
first_name: Property.ShortText({
displayName: 'First Name',
required: true,
}),
last_name: Property.ShortText({
displayName: 'Last Name',
required: true,
}),
address1: Property.ShortText({
displayName: 'Address Line 1',
required: true,
}),
address2: Property.ShortText({
displayName: 'Address Line 2',
required: false,
}),
city: Property.ShortText({
displayName: 'City',
required: true,
}),
state_or_province: Property.ShortText({
displayName: 'State/Province',
required: true,
}),
postal_code: Property.ShortText({
displayName: 'Postal Code',
required: true,
}),
country_code: Property.ShortText({
displayName: 'Country Code',
description: 'ISO 3166-1 alpha-2 country code',
required: true,
}),
phone: Property.ShortText({
displayName: 'Phone',
required: false,
}),
},
async run(context) {
return await bigCommerceApiService.createCustomerAddress({
auth: context.auth.props,
payload: [
{
customer_id: context.propsValue.customer_id,
first_name: context.propsValue.first_name,
last_name: context.propsValue.last_name,
address1: context.propsValue.address1,
address2: context.propsValue.address2,
city: context.propsValue.city,
state_or_province: context.propsValue.state_or_province,
postal_code: context.propsValue.postal_code,
country_code: context.propsValue.country_code,
phone: context.propsValue.phone,
},
],
});
},
});

View File

@@ -0,0 +1,57 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
export const createCustomer = createAction({
auth: bigcommerceAuth,
name: 'createCustomer',
displayName: 'Create Customer',
description: 'Creates a customer',
props: {
email: Property.ShortText({
displayName: 'Email',
description: 'Customer email address',
required: true,
}),
first_name: Property.ShortText({
displayName: 'First Name',
description: 'Customer first name',
required: true,
}),
last_name: Property.ShortText({
displayName: 'Last Name',
description: 'Customer last name',
required: true,
}),
company: Property.ShortText({
displayName: 'Company',
description: 'Customer company name',
required: false,
}),
phone: Property.ShortText({
displayName: 'Phone',
description: 'Customer phone number',
required: false,
}),
notes: Property.LongText({
displayName: 'Notes',
description: 'Customer notes',
required: false,
}),
},
async run(context) {
return await bigCommerceApiService.createCustomer({
auth: context.auth.props,
payload: [
{
email: context.propsValue.email,
first_name: context.propsValue.first_name,
last_name: context.propsValue.last_name,
company: context.propsValue.company,
phone: context.propsValue.phone,
notes: context.propsValue.notes,
},
],
});
},
});

View File

@@ -0,0 +1,75 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
export const findOrCreateCustomer = createAction({
auth: bigcommerceAuth,
name: 'findOrCreateCustomer',
displayName: 'Find or Create Customer',
description: 'Finds or creates a customer',
props: {
email: Property.ShortText({
displayName: 'Email',
description: 'Customer email address',
required: true,
}),
first_name: Property.ShortText({
displayName: 'First Name',
description: 'Customer first name',
required: true,
}),
last_name: Property.ShortText({
displayName: 'Last Name',
description: 'Customer last name',
required: true,
}),
company: Property.ShortText({
displayName: 'Company',
description: 'Customer company name',
required: false,
}),
phone: Property.ShortText({
displayName: 'Phone',
description: 'Customer phone number',
required: false,
}),
notes: Property.LongText({
displayName: 'Notes',
description: 'Customer notes',
required: false,
}),
},
async run(context) {
const params = new URLSearchParams();
params.append('email:in', context.propsValue.email);
if (context.propsValue.phone)
params.append('phone:in', context.propsValue.phone);
const response = await bigCommerceApiService.fetchCustomers({
auth: context.auth.props,
queryString: params.toString(),
});
if (response.data && response.data.length > 0) {
return { found: true, data: response.data };
}
const newCustomer = await bigCommerceApiService.createCustomer({
auth: context.auth.props,
payload: [
{
email: context.propsValue.email,
first_name: context.propsValue.first_name,
last_name: context.propsValue.last_name,
company: context.propsValue.company,
phone: context.propsValue.phone,
notes: context.propsValue.notes,
},
],
});
return { found: false, data: newCustomer.data };
},
});

View File

@@ -0,0 +1,95 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { customerDropdown } from '../common/props';
import { bigCommerceApiService } from '../common/requests';
export const findOrCreateCustomersAddress = createAction({
auth: bigcommerceAuth,
name: 'findOrCreateCustomersAddress',
displayName: 'Find or Create Customers Address',
description: 'Finds or creates a customers address',
props: {
customer_id: customerDropdown({
required: true,
}),
first_name: Property.ShortText({
displayName: 'First Name',
required: true,
}),
last_name: Property.ShortText({
displayName: 'Last Name',
required: true,
}),
address1: Property.ShortText({
displayName: 'Address Line 1',
required: true,
}),
address2: Property.ShortText({
displayName: 'Address Line 2',
required: false,
}),
city: Property.ShortText({
displayName: 'City',
required: true,
}),
state_or_province: Property.ShortText({
displayName: 'State/Province',
required: true,
}),
postal_code: Property.ShortText({
displayName: 'Postal Code',
required: true,
}),
country_code: Property.ShortText({
displayName: 'Country Code',
description: 'ISO 3166-1 alpha-2 country code',
required: true,
}),
phone: Property.ShortText({
displayName: 'Phone',
required: false,
}),
},
async run(context) {
const params = new URLSearchParams();
params.append('customer_id:in', context.propsValue.customer_id as string);
const response = await bigCommerceApiService.fetchCustomerAddresses({
auth: context.auth.props,
queryString: params.toString(),
});
if (response.data && response.data.length > 0) {
const existingAddress = response.data.find(
(addr: any) =>
addr.address1 === context.propsValue.address1 &&
addr.city === context.propsValue.city &&
addr.postal_code === context.propsValue.postal_code
);
if (existingAddress) {
return { found: true, data: existingAddress };
}
}
const newAddress = await bigCommerceApiService.createCustomerAddress({
auth: context.auth.props,
payload: [
{
customer_id: context.propsValue.customer_id,
first_name: context.propsValue.first_name,
last_name: context.propsValue.last_name,
address1: context.propsValue.address1,
address2: context.propsValue.address2,
city: context.propsValue.city,
state_or_province: context.propsValue.state_or_province,
postal_code: context.propsValue.postal_code,
country_code: context.propsValue.country_code,
phone: context.propsValue.phone,
},
],
});
return { found: false, data: newAddress.data };
},
});

View File

@@ -0,0 +1,75 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
export const findOrCreateProduct = createAction({
auth: bigcommerceAuth,
name: 'findOrCreateProduct',
displayName: 'Find or Create Product',
description: 'Finds or creates a product',
props: {
name: Property.ShortText({
displayName: 'Product Name',
required: true,
}),
sku: Property.ShortText({
displayName: 'SKU',
required: false,
}),
type: Property.StaticDropdown({
displayName: 'Product Type',
required: true,
options: {
options: [
{ label: 'Physical', value: 'physical' },
{ label: 'Digital', value: 'digital' },
],
},
}),
weight: Property.Number({
displayName: 'Weight',
required: true,
}),
price: Property.Number({
displayName: 'Price',
required: true,
}),
description: Property.LongText({
displayName: 'Description',
required: false,
}),
brand_id: Property.Number({
displayName: 'Brand ID',
description: 'Brand ID',
required: false,
}),
},
async run(context) {
const params = new URLSearchParams();
params.append('name', context.propsValue.name);
const response = await bigCommerceApiService.fetchProducts({
auth: context.auth.props,
queryString: params.toString(),
});
if (response.data && response.data.length > 0) {
return { found: true, data: response.data };
}
const newProduct = await bigCommerceApiService.createProduct({
auth: context.auth.props,
payload: {
name: context.propsValue.name,
type: context.propsValue.type,
sku: context.propsValue.sku,
description: context.propsValue.description,
weight: context.propsValue.weight,
price: context.propsValue.price,
brand_id: context.propsValue.brand_id,
},
});
return { found: false, data: newProduct.data };
},
});

View File

@@ -0,0 +1,36 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigCommerceApiService } from '../common/requests';
import { bigcommerceAuth } from '../common/auth';
import { multiCustomerDropdown } from '../common/props';
export const searchCustomerAddress = createAction({
auth: bigcommerceAuth,
name: 'searchCustomerAddress',
displayName: 'Search Customer Address',
description: 'Searches for a customers address',
props: {
customer_ids: multiCustomerDropdown({
required: false,
}),
name: Property.ShortText({
displayName: 'Name',
description: 'Customer name to search for',
required: false,
}),
},
async run(context) {
const params = new URLSearchParams();
if (context.propsValue.customer_ids)
params.append(
'customer_ids:in',
(context.propsValue.customer_ids as string[]).join(',')
);
if (context.propsValue.name)
params.append('name:in', `${context.propsValue.name}`);
return await bigCommerceApiService.fetchCustomerAddresses({
auth: context.auth.props,
queryString: params.toString(),
});
},
});

View File

@@ -0,0 +1,41 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
export const searchCustomer = createAction({
auth: bigcommerceAuth,
name: 'searchCustomer',
displayName: 'Search Customer',
description: 'Searches for a registered customer',
props: {
email: Property.ShortText({
displayName: 'Email',
description: 'Customer email to search for',
required: false,
}),
phone: Property.ShortText({
displayName: 'Phone Number',
description: 'Phone Number to search for',
required: false,
}),
name: Property.ShortText({
displayName: 'Name',
description: 'Customer name to search for',
required: false,
}),
},
async run(context) {
const params = new URLSearchParams();
if (context.propsValue.email)
params.append('email:in', context.propsValue.email);
if (context.propsValue.name)
params.append('name:in', `${context.propsValue.name}`);
if (context.propsValue.phone)
params.append('phone:in', context.propsValue.phone);
return await bigCommerceApiService.fetchCustomers({
auth: context.auth.props,
queryString: params.toString(),
});
},
});

View File

@@ -0,0 +1,63 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
export const searchProduct = createAction({
auth: bigcommerceAuth,
name: 'searchProduct',
displayName: 'Search Product',
description: 'Searches for a product in the catalog',
props: {
name: Property.ShortText({
displayName: 'Product Name',
description: 'Product name to search for',
required: false,
}),
sku: Property.ShortText({
displayName: 'SKU',
description: 'Product SKU to search for',
required: false,
}),
type: Property.StaticDropdown({
displayName: 'Product Type',
required: false,
options: {
options: [
{ label: 'Physical', value: 'physical' },
{ label: 'Digital', value: 'digital' },
],
},
}),
brand_id: Property.ShortText({
displayName: 'Brand ID',
description: 'Brand ID to search for',
required: false,
}),
weight: Property.Number({
displayName: 'Weight',
required: false,
}),
price: Property.Number({
displayName: 'Price',
required: false,
}),
},
async run(context) {
const params = new URLSearchParams();
if (context.propsValue.name) params.append('name', context.propsValue.name);
if (context.propsValue.sku) params.append('sku', context.propsValue.sku);
if (context.propsValue.brand_id)
params.append('brand_id', context.propsValue.brand_id);
if (context.propsValue.type)
params.append('type', context.propsValue.type);
if (context.propsValue.price)
params.append('price', String(context.propsValue.price));
if (context.propsValue.weight)
params.append('weight', String(context.propsValue.weight));
return await bigCommerceApiService.fetchProducts({
auth: context.auth.props,
queryString: params.toString(),
});
},
});

View File

@@ -0,0 +1,44 @@
import { PieceAuth, Property } from '@activepieces/pieces-framework';
import { bigCommerceApiService } from './requests';
export const bigcommerceAuth = PieceAuth.CustomAuth({
description:
'Enter your BigCommerce API credentials. ',
props: {
instruction: Property.MarkDown({
value: `1. Login to https://www.bigcommerce.com/essentials/
2. Go to Settings
3. Scroll down to API
4. Click on "Store Level API Accounts"
5. Click "Create API Account" button
6. Enter a name and add required scopes
7. Save - you will get a downloaded file containing your access token and store hash`,
}),
storeHash: Property.ShortText({
displayName: 'Store Hash',
description: 'Your BigCommerce store hash (e.g., abcd1234)',
required: true,
}),
accessToken: Property.ShortText({
displayName: 'Access Token',
description: 'Your BigCommerce API access token',
required: true,
}),
},
required: true,
async validate(context) {
try {
await bigCommerceApiService.fetchProducts({
auth: context.auth,
});
return { valid: true };
} catch {
return {
valid: false,
error:
'Could not validate credentials. please check your credentials are correct.',
};
}
},
});

View File

@@ -0,0 +1,15 @@
export type bigCommerceAuth = {
storeHash: string;
accessToken: string;
}
export const GET_BASE_URL = (storeHash: string) =>
`https://api.bigcommerce.com/stores/${storeHash}`;
export function handleDropdownError(msg: string) {
return {
disabled: true,
options: [],
placeholder: msg,
};
}

View File

@@ -0,0 +1,90 @@
import { Property } from '@activepieces/pieces-framework';
import { handleDropdownError } from './constants';
import { bigCommerceApiService } from './requests';
import { bigcommerceAuth } from './auth';
export const customerDropdown = ({ required }: { required: boolean }) =>
Property.Dropdown({
auth: bigcommerceAuth,
displayName: 'Customer',
description: 'Select the customer',
required,
refreshers: ['auth'],
options: async ({ auth }) => {
if (!auth)
return handleDropdownError('Please connect your account first');
try {
const response = await bigCommerceApiService.fetchCustomers({ auth: auth.props });
const data = Array.isArray(response?.data) ? response.data : [];
if (data.length === 0) {
return handleDropdownError('No customers found');
}
const options = data.map((user: any) => {
const fullName =
[user.first_name, user.last_name]
.filter((p: any) => typeof p === 'string' && p.trim() !== '')
.join(' ') ||
user.email ||
user.id;
return {
label: fullName,
value: user.id,
};
});
return {
disabled: false,
options,
};
} catch (error) {
return handleDropdownError('Failed to load customers');
}
},
});
export const multiCustomerDropdown = ({ required }: { required: boolean }) =>
Property.MultiSelectDropdown({
auth: bigcommerceAuth,
displayName: 'Customers',
description: 'Select the customers',
required,
refreshers: ['auth'],
options: async ({ auth }) => {
if (!auth)
return handleDropdownError('Please connect your account first');
try {
const response = await bigCommerceApiService.fetchCustomers({ auth: auth.props });
const data = Array.isArray(response?.data) ? response.data : [];
if (data.length === 0) {
return handleDropdownError('No customers found');
}
const options = data.map((user: any) => {
const fullName =
[user.first_name, user.last_name]
.filter((p: any) => typeof p === 'string' && p.trim() !== '')
.join(' ') ||
user.email ||
user.id;
return {
label: fullName,
value: user.id,
};
});
return {
disabled: false,
options,
};
} catch (error) {
return handleDropdownError('Failed to load customers');
}
},
});

View File

@@ -0,0 +1,163 @@
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { bigCommerceAuth, GET_BASE_URL } from './constants';
async function fireHttpRequest({
method,
path,
body,
auth,
}: {
method: HttpMethod;
path: string;
auth: bigCommerceAuth;
body?: unknown;
}) {
const BASE_URL = GET_BASE_URL(auth.storeHash);
return await httpClient
.sendRequest({
method,
url: `${BASE_URL}${path}`,
headers: {
'X-Auth-Token': auth.accessToken,
'Content-Type': 'application/json',
Accept: 'application/json',
},
body,
})
.then((res) => res.body)
.catch((err) => {
throw new Error(
`Error in request to ${path}: ${err.message || JSON.stringify(err)}`
);
});
}
export const bigCommerceApiService = {
async createWebhook({
auth,
payload,
}: {
auth: bigCommerceAuth;
payload: {
scope: string;
destination: string;
is_active: boolean;
};
}) {
return await fireHttpRequest({
auth,
path: '/v3/hooks',
method: HttpMethod.POST,
body: payload,
});
},
async createCustomer({
auth,
payload,
}: {
auth: bigCommerceAuth;
payload: any;
}) {
return await fireHttpRequest({
auth,
path: '/v3/customers',
method: HttpMethod.POST,
body: payload,
});
},
async fetchCustomers({
auth,
queryString,
}: {
auth: bigCommerceAuth;
queryString?: string;
}) {
return await fireHttpRequest({
auth,
path: `/v3/customers${queryString ? `?${queryString}` : ''}`,
method: HttpMethod.GET,
});
},
async fetchCustomerAddresses({
auth,
queryString,
}: {
auth: bigCommerceAuth;
queryString?: string;
}) {
return await fireHttpRequest({
auth,
path: `/v3/customers/addresses${queryString ? `?${queryString}` : ''}`,
method: HttpMethod.GET,
});
},
async fetchProducts({
auth,
queryString,
}: {
auth: bigCommerceAuth;
queryString?: string;
}) {
return await fireHttpRequest({
auth,
path: `/v3/catalog/products${queryString ? `?${queryString}` : ''}`,
method: HttpMethod.GET,
});
},
async createProduct({
auth,
payload,
}: {
auth: bigCommerceAuth;
payload: any;
}) {
return await fireHttpRequest({
auth,
path: '/v3/catalog/products',
method: HttpMethod.POST,
body: payload,
});
},
async createBlogPost({
auth,
payload,
}: {
auth: bigCommerceAuth;
payload: any;
}) {
return await fireHttpRequest({
auth,
path: '/v2/blog/posts',
method: HttpMethod.POST,
body: payload,
});
},
async createCustomerAddress({
auth,
payload,
}: {
auth: bigCommerceAuth;
payload: any;
}) {
return await fireHttpRequest({
auth,
path: '/v3/customers/addresses',
method: HttpMethod.POST,
body: payload,
});
},
async deleteWebhook({
auth,
webhookId,
}: {
auth: bigCommerceAuth;
webhookId: string;
}) {
return await fireHttpRequest({
auth,
path: `/v3/hooks/${webhookId}`,
method: HttpMethod.DELETE,
});
},
};

View File

@@ -0,0 +1,54 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'abandoned cart';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/cart/abandoned';
export const abandonedCart = createTrigger({
auth: bigcommerceAuth,
name: 'abandonedCart',
displayName: 'Abandoned Cart',
description: 'Triggers when a cart is abandoned',
props: {},
sampleData:{
producer: 'stores/dxqdddcaklwsso',
hash: '3610addd127e330084ddddd7ddd09b78abfd1a85',
created_at: 1761809622,
store_id: '1003425529',
scope: 'store/cart/abandoned',
data: {
type: 'cart',
id: 'ss-598f-4c95-813b-0ess950562770d',
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = await context.store.get(CACHE_KEY) as string;
if (webhookId) {
await bigCommerceApiService.deleteWebhook({
auth: context.auth.props,
webhookId,
}).then(async () => {
await context.store.delete(CACHE_KEY)
})
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'cart created';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/cart/created';
export const cartCreated = createTrigger({
auth: bigcommerceAuth,
name: 'cartCreated',
displayName: 'Cart Created',
description: 'Triggers when a new cart is created',
props: {},
sampleData: {
producer: 'stores/dxqdddcaklwsso',
hash: '3610addd127e330084ddddd7ddd09b78abfd1a85',
created_at: 1761809622,
store_id: '1003425529',
scope: 'store/cart/created',
data: {
type: 'cart',
id: 'ss-598f-4c95-813b-0ess950562770d',
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE ,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'customer address created';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/customer/address/created';
export const customerAddressCreated = createTrigger({
auth: bigcommerceAuth,
name: 'customerAddressCreated',
displayName: 'Customer Address Created',
description: 'Triggers when a new customer address is created',
props: {},
sampleData: {
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/customer/address/created',
data: {
type: 'customer',
id: 2,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'customer address updated';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/customer/address/updated';
export const customerAddressUpdated = createTrigger({
auth: bigcommerceAuth,
name: 'customerAddressUpdated',
displayName: 'Customer Address Updated',
description: 'Triggers when a new customer address is updated',
props: {},
sampleData:{
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/customer/address/updated',
data: {
type: 'customer',
id: 2,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,58 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'customer created';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/customer/created';
export const customerCreated = createTrigger({
auth: bigcommerceAuth,
name: 'customerCreated',
displayName: 'Customer Created',
description: 'Triggers when a new customer is created',
props: {},
sampleData: {
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/customer/created',
data: {
type: 'customer',
id: 2,
origin_channel_id: 1,
channel_ids: [1],
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'customer updated';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/customer/updated';
export const customerUpdated = createTrigger({
auth: bigcommerceAuth,
name: 'customerUpdated',
displayName: 'Customer Updated',
description: 'Triggers when a customer is updated',
props: {},
sampleData: {
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/customer/updated',
data: {
type: 'customer',
id: 2,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'order created';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/order/created';
export const orderCreated = createTrigger({
auth: bigcommerceAuth,
name: 'orderCreated',
displayName: 'Order Created',
description: 'Triggers when a new order is created',
props: {},
sampleData: {
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/order/created',
data: {
type: 'order',
id: 2,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'order status updated';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/order/statusUpdated';
export const orderStatusUpdated = createTrigger({
auth: bigcommerceAuth,
name: 'orderStatusUpdated',
displayName: 'Order Status Updated',
description: 'Triggers when an order status has changed',
props: {},
sampleData: {
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/order/statusUpdated',
data: {
type: 'order',
id: 2,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'order updated';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/order/updated';
export const orderUpdated = createTrigger({
auth: bigcommerceAuth,
name: 'orderUpdated',
displayName: 'Order Updated',
description: 'Triggers when an order is updated',
props: {},
sampleData: {
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/order/updated',
data: {
type: 'order',
id: 2,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'product created';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/product/created';
export const productCreated = createTrigger({
auth: bigcommerceAuth,
name: 'productCreated',
displayName: 'Product Created',
description: 'Triggers when a new product is created',
props: {},
sampleData: {
producer: 'stores/xqcaklwsso',
hash: 'c6db17090e98d2c58c0cb1988b5e9ace48215e22',
created_at: 1761808831,
store_id: '1003425529',
scope: 'store/product/created',
data: {
type: 'product',
id: 113,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,57 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { bigcommerceAuth } from '../common/auth';
import { bigCommerceApiService } from '../common/requests';
const TRIGGER_NAME = 'shipment created';
const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`;
const TRIGGER_SCOPE = 'store/shipment/created';
export const shipmentCreated = createTrigger({
auth: bigcommerceAuth,
name: 'shipmentCreated',
displayName: 'Shipment Created',
description: 'Triggers when a new shipment is created',
props: {},
sampleData:{
producer: 'stores/xqcaklwsso',
hash: 'd7b899890f5e0e98a3e074f018b14b07d5d89360',
created_at: 1761808595,
store_id: '1003425529',
scope: 'store/shipment/created',
data: {
type: 'shipment',
id: 2,
},
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const webhook = await bigCommerceApiService.createWebhook({
auth: context.auth.props,
payload: {
scope: TRIGGER_SCOPE,
destination: context.webhookUrl,
is_active: true,
},
});
await context.store.put(CACHE_KEY, webhook.data.id);
},
async onDisable(context) {
const webhookId = (await context.store.get(CACHE_KEY)) as string;
if (webhookId) {
await bigCommerceApiService
.deleteWebhook({
auth: context.auth.props,
webhookId,
})
.then(async () => {
await context.store.delete(CACHE_KEY);
});
}
},
async run(context) {
return [context.payload.body];
},
});

View File

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

View File

@@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"include": ["src/**/*.ts"]
}