Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"extends": [
|
||||
"../../../../.eslintrc.base.json"
|
||||
],
|
||||
"ignorePatterns": [
|
||||
"!**/*"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx",
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# pieces-shippo
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Building
|
||||
|
||||
Run `nx build pieces-shippo` to build the library.
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "@activepieces/piece-shippo",
|
||||
"version": "0.0.2",
|
||||
"type": "commonjs",
|
||||
"main": "./src/index.js",
|
||||
"types": "./src/index.d.ts",
|
||||
"dependencies": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "pieces-shippo",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/shippo/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/shippo",
|
||||
"tsConfig": "packages/pieces/community/shippo/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/shippo/package.json",
|
||||
"main": "packages/pieces/community/shippo/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/shippo/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/shippo/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
}
|
||||
},
|
||||
"nx-release-publish": {
|
||||
"options": {
|
||||
"packageRoot": "dist/{projectRoot}"
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "Multi-Träger-Versandplattform für Echtzeit-Preise, Etiketten und Tracking",
|
||||
"Your Shippo API token": "Ihr Shippo API Token",
|
||||
"Create Order": "Bestellung erstellen",
|
||||
"Find Order": "Bestellung suchen",
|
||||
"Find Shipping Label": "Versandbezeichnung finden",
|
||||
"Create a new order in Shippo": "Neue Bestellung in Versandkosten erstellen",
|
||||
"Search for an order by its ID": "Suche nach einer Bestellung mit seiner ID",
|
||||
"Search for a shipping label by its ID": "Suche nach einem Versandaufkleber mit dessen ID",
|
||||
"Order Number": "Bestellnummer",
|
||||
"Order Status": "Bestellstatus",
|
||||
"Order Date": "Bestelldatum",
|
||||
"Total Price": "Gesamtpreis",
|
||||
"Subtotal Price": "Zwischensumme",
|
||||
"Total Tax": "Gesamt Steuern",
|
||||
"Currency": "Währung",
|
||||
"Sender Name": "Absendername",
|
||||
"Sender Company": "Absender Firma",
|
||||
"Sender Street Address": "Adresse des Absenders",
|
||||
"Sender City": "Absenderstadt",
|
||||
"Sender State": "Absenderstatus",
|
||||
"Sender ZIP Code": "Postleitzahl Absender",
|
||||
"Sender Country": "Absenderland",
|
||||
"Sender Phone": "Sendertelefon",
|
||||
"Sender Email": "Absender-E-Mail",
|
||||
"Recipient Name": "Empfängername",
|
||||
"Recipient Company": "Empfängerunternehmen",
|
||||
"Recipient Street Address": "Adresse des Empfängers",
|
||||
"Recipient City": "Empfängerstadt",
|
||||
"Recipient State": "Empfängerstatus",
|
||||
"Recipient ZIP Code": "Empfänger Postleitzahl",
|
||||
"Recipient Country": "Empfängerland",
|
||||
"Recipient Phone": "Empfängertelefon",
|
||||
"Recipient Email": "Empfänger E-Mail",
|
||||
"Item Title": "Artikeltitel",
|
||||
"Item Quantity": "Artikelmenge",
|
||||
"Item Total Price": "Artikelsumme",
|
||||
"Item SKU": "Artikelnummer",
|
||||
"Item Weight": "Artikelgewicht",
|
||||
"Item Weight Unit": "Element Gewichtseinheit",
|
||||
"Total Package Weight": "Gesamtgewicht des Pakets",
|
||||
"Package Weight Unit": "Paket Gewichtseinheit",
|
||||
"Shipping Cost": "Versandkosten",
|
||||
"Shipping Cost Currency": "Versandkosten Währung",
|
||||
"Shipping Method": "Versandart",
|
||||
"Additional Line Items": "Zusätzliche Zeilenelemente",
|
||||
"Order ID": "Bestell-ID",
|
||||
"Label ID": "Label-ID",
|
||||
"Custom reference number for the order": "Eigene Referenznummer für die Bestellung",
|
||||
"Current status of the order": "Aktueller Status der Bestellung",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "Wenn die Bestellung vom Käufer erteilt wurde (obligatorisch) - Format: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "Gesamtpreis inkl. Versand und Steuern",
|
||||
"Price before shipping and tax (optional)": "Preis vor Versand und Steuern (optional)",
|
||||
"Total tax amount": "Gesamtbetrag Steuern",
|
||||
"Currency code (e.g., USD, EUR)": "Währungscode (z. B. USD, EUR)",
|
||||
"Name of the sender": "Name des Absenders",
|
||||
"Company name of the sender": "Firmenname des Absenders",
|
||||
"Street address line 1": "Straßenadresse Linie 1",
|
||||
"City": "Stadt",
|
||||
"State/Province": "Bundesland/Provinz",
|
||||
"ZIP/Postal code": "Postleitzahl",
|
||||
"Two-letter country code (e.g., US)": "Ländercode mit zwei Buchstaben (z. B. USA)",
|
||||
"Name of the recipient": "Name des Empfängers",
|
||||
"Company name of the recipient": "Firmenname des Empfängers",
|
||||
"Name/description of the item (optional)": "Name/Beschreibung des Elements (optional)",
|
||||
"Total price for this line item (quantity × unit price)": "Gesamtpreis für diese Zeile (Menge × Stückpreis)",
|
||||
"Stock keeping unit": "Lagereinheit",
|
||||
"Weight of a single item (e.g., \"0.5\")": "Gewicht eines einzelnen Elements (z.B. \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "Gesamtgewicht des Pakets für den Versand (z.B. \"2.5\")",
|
||||
"Unit for total package weight": "Einheit für das Gesamtgewicht des Pakets",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "Versandkosten (z. B. \"5.99\")",
|
||||
"Currency for shipping cost": "Währung für Versandkosten",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "Name der Versandart (z.B. \"USPS First Class Paket\") - optional",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "Zusätzliche Zeilenelemente im JSON-Format. Beispiel: [{\"title\": \"Produkt 2\", \"Menge\": 2, \"total_price\": \"20.00\"}]",
|
||||
"The ID of the order to find": "Die ID der zu findenden Bestellung",
|
||||
"The ID of the shipping label to find": "Die ID des zu findenden Versandaufklebers",
|
||||
"Unknown": "Unbekannt",
|
||||
"Awaiting Payment": "Wartet auf Zahlung",
|
||||
"Paid": "Bezahlt",
|
||||
"Refunded": "Erstattet",
|
||||
"Cancelled": "Abgebrochen",
|
||||
"Partially Fulfilled": "Teilweise erfüllt",
|
||||
"Shipped": "Verschickt",
|
||||
"Pounds (lb)": "Pfund (lb)",
|
||||
"Ounces (oz)": "Unzen (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "Gramme (g)",
|
||||
"New Shipping Label": "Neue Versandbezeichnung",
|
||||
"New Order": "Neue Bestellung",
|
||||
"Trigger when a new shipping label is created": "Auslösen wenn ein neues Versandlabel erstellt wird",
|
||||
"Trigger when a new order is created": "Auslösen wenn eine neue Bestellung erstellt wird",
|
||||
"Include Test Labels": "Test-Labels einschließen",
|
||||
"Include test shipping labels in the trigger": "Fügen Sie dem Trigger die Versandbezeichnungen hinzu"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "Plataforma de envío multitransportista para tarifas en tiempo real, etiquetas y seguimiento",
|
||||
"Your Shippo API token": "Tu token de la API de Shippo",
|
||||
"Create Order": "Crear pedido",
|
||||
"Find Order": "Buscar pedido",
|
||||
"Find Shipping Label": "Buscar etiqueta de envío",
|
||||
"Create a new order in Shippo": "Crear un nuevo pedido en Shippo",
|
||||
"Search for an order by its ID": "Buscar un pedido por su ID",
|
||||
"Search for a shipping label by its ID": "Buscar una etiqueta de envío por su ID",
|
||||
"Order Number": "Número de pedido",
|
||||
"Order Status": "Estado del pedido",
|
||||
"Order Date": "Fecha del pedido",
|
||||
"Total Price": "Precio total",
|
||||
"Subtotal Price": "Precio subtotal",
|
||||
"Total Tax": "Impuesto Total",
|
||||
"Currency": "Moneda",
|
||||
"Sender Name": "Nombre del remitente",
|
||||
"Sender Company": "Empresa del remitente",
|
||||
"Sender Street Address": "Dirección del remitente",
|
||||
"Sender City": "Ciudad del remitente",
|
||||
"Sender State": "Estado del remitente",
|
||||
"Sender ZIP Code": "Código postal del remitente",
|
||||
"Sender Country": "País del remitente",
|
||||
"Sender Phone": "Teléfono del remitente",
|
||||
"Sender Email": "Email del remitente",
|
||||
"Recipient Name": "Nombre del destinatario",
|
||||
"Recipient Company": "Compañía del destinatario",
|
||||
"Recipient Street Address": "Dirección de la calle del destinatario",
|
||||
"Recipient City": "Ciudad del destinatario",
|
||||
"Recipient State": "Estado del destinatario",
|
||||
"Recipient ZIP Code": "Código postal del destinatario",
|
||||
"Recipient Country": "País del destinatario",
|
||||
"Recipient Phone": "Teléfono del destinatario",
|
||||
"Recipient Email": "Email del destinatario",
|
||||
"Item Title": "Título del artículo",
|
||||
"Item Quantity": "Cantidad del artículo",
|
||||
"Item Total Price": "Precio total del artículo",
|
||||
"Item SKU": "Artículo SKU",
|
||||
"Item Weight": "Peso del objeto",
|
||||
"Item Weight Unit": "Unidad de influencia del objeto",
|
||||
"Total Package Weight": "Peso total del paquete",
|
||||
"Package Weight Unit": "Unidad de Peso del Paquete",
|
||||
"Shipping Cost": "Coste de envío",
|
||||
"Shipping Cost Currency": "Moneda de costo de envío",
|
||||
"Shipping Method": "Método de envío",
|
||||
"Additional Line Items": "Ítems de línea adicionales",
|
||||
"Order ID": "ID del pedido",
|
||||
"Label ID": "ID de etiqueta",
|
||||
"Custom reference number for the order": "Número de referencia personalizado para el pedido",
|
||||
"Current status of the order": "Estado actual del pedido",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "Cuando el pedido fue realizado por el comprador (obligatorio) - Formato: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "Precio total incluyendo envío e impuestos",
|
||||
"Price before shipping and tax (optional)": "Precio antes de envío e impuestos (opcional)",
|
||||
"Total tax amount": "Monto total de impuestos",
|
||||
"Currency code (e.g., USD, EUR)": "Código de moneda (por ejemplo, USD, EUR)",
|
||||
"Name of the sender": "Nombre del remitente",
|
||||
"Company name of the sender": "Nombre de la empresa del remitente",
|
||||
"Street address line 1": "Línea 1 de dirección de calle",
|
||||
"City": "Ciudad",
|
||||
"State/Province": "Estado/Provenza",
|
||||
"ZIP/Postal code": "Código postal",
|
||||
"Two-letter country code (e.g., US)": "Código de país de dos letras (por ej., EE.UU.)",
|
||||
"Name of the recipient": "Nombre del destinatario",
|
||||
"Company name of the recipient": "Nombre de la empresa del destinatario",
|
||||
"Name/description of the item (optional)": "Nombre/descripción del elemento (opcional)",
|
||||
"Total price for this line item (quantity × unit price)": "Precio total para este artículo de línea (cantidad × precio unitario)",
|
||||
"Stock keeping unit": "Unidad de almacenamiento",
|
||||
"Weight of a single item (e.g., \"0.5\")": "Influencia de un único elemento (por ej., \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "Peso total del paquete de envío (por ejemplo, \"2.5\")",
|
||||
"Unit for total package weight": "Unidad para el peso total del paquete",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "Monto de gastos de envío (por ej., \"5.99\")",
|
||||
"Currency for shipping cost": "Moneda para gastos de envío",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "Nombre del método de envío (por ejemplo, \"Paquete de primera clase USPS) - opcional",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "Artículos de línea adicionales en formato JSON. Ejemplo: [{\"título\": \"Producto 2\", \"cantidad\": 2, \"total_precio\": \"20.00\"}]",
|
||||
"The ID of the order to find": "El ID del pedido a encontrar",
|
||||
"The ID of the shipping label to find": "El ID de la etiqueta de envío a encontrar",
|
||||
"Unknown": "Desconocido",
|
||||
"Awaiting Payment": "Esperando pago",
|
||||
"Paid": "Pagado",
|
||||
"Refunded": "Reembolsado",
|
||||
"Cancelled": "Cancelado",
|
||||
"Partially Fulfilled": "Completo parcialmente",
|
||||
"Shipped": "Enviado",
|
||||
"Pounds (lb)": "Libras (lb)",
|
||||
"Ounces (oz)": "Onzas (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "Gramas (g)",
|
||||
"New Shipping Label": "Nueva etiqueta de envío",
|
||||
"New Order": "Nuevo pedido",
|
||||
"Trigger when a new shipping label is created": "Activar cuando se crea una nueva etiqueta de envío",
|
||||
"Trigger when a new order is created": "Activar cuando se crea un nuevo pedido",
|
||||
"Include Test Labels": "Incluye etiquetas de prueba",
|
||||
"Include test shipping labels in the trigger": "Incluye etiquetas de envío de prueba en el gatillo"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "Plateforme d'expédition multi-transporteurs pour tarifs en temps réel, étiquettes et suivi",
|
||||
"Your Shippo API token": "Votre jeton API Shippo",
|
||||
"Create Order": "Créer une commande",
|
||||
"Find Order": "Trouver une commande",
|
||||
"Find Shipping Label": "Trouver l'étiquette d'expédition",
|
||||
"Create a new order in Shippo": "Créer une nouvelle commande dans Shippo",
|
||||
"Search for an order by its ID": "Rechercher une commande par son ID",
|
||||
"Search for a shipping label by its ID": "Rechercher une étiquette d'expédition par son ID",
|
||||
"Order Number": "Numéro de commande",
|
||||
"Order Status": "Statut de la commande",
|
||||
"Order Date": "Date de la commande",
|
||||
"Total Price": "Prix total",
|
||||
"Subtotal Price": "Prix du sous-total",
|
||||
"Total Tax": "Taxe totale",
|
||||
"Currency": "Devise",
|
||||
"Sender Name": "Nom de l'expéditeur",
|
||||
"Sender Company": "Société de l'expéditeur",
|
||||
"Sender Street Address": "Adresse de l'expéditeur",
|
||||
"Sender City": "Ville de l'expéditeur",
|
||||
"Sender State": "État de l'expéditeur",
|
||||
"Sender ZIP Code": "Code postal de l'expéditeur",
|
||||
"Sender Country": "Pays de l'expéditeur",
|
||||
"Sender Phone": "Téléphone de l'expéditeur",
|
||||
"Sender Email": "E-mail de l'expéditeur",
|
||||
"Recipient Name": "Nom du destinataire",
|
||||
"Recipient Company": "Société bénéficiaire",
|
||||
"Recipient Street Address": "Adresse du destinataire",
|
||||
"Recipient City": "Ville du destinataire",
|
||||
"Recipient State": "État destinataire",
|
||||
"Recipient ZIP Code": "Code postal du destinataire",
|
||||
"Recipient Country": "Pays destinataire",
|
||||
"Recipient Phone": "Téléphone du destinataire",
|
||||
"Recipient Email": "E-mail du destinataire",
|
||||
"Item Title": "Titre de l'élément",
|
||||
"Item Quantity": "Quantité d'articles",
|
||||
"Item Total Price": "Prix total de l’article",
|
||||
"Item SKU": "UGS de l'article",
|
||||
"Item Weight": "Poids de l'élément",
|
||||
"Item Weight Unit": "Unité de poids de l'objet",
|
||||
"Total Package Weight": "Poids total du paquet",
|
||||
"Package Weight Unit": "Unité de poids du paquet",
|
||||
"Shipping Cost": "Frais d'expédition",
|
||||
"Shipping Cost Currency": "Devise de frais d'expédition",
|
||||
"Shipping Method": "Mode de livraison",
|
||||
"Additional Line Items": "Lignes supplémentaires",
|
||||
"Order ID": "ID de la commande",
|
||||
"Label ID": "ID de l'étiquette",
|
||||
"Custom reference number for the order": "Numéro de référence personnalisé pour la commande",
|
||||
"Current status of the order": "Statut actuel de la prescription",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "Lorsque la commande a été passée par l'acheteur (obligatoire) - Format: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "Prix total incluant les frais de port et taxes",
|
||||
"Price before shipping and tax (optional)": "Prix avant livraison et taxes (facultatif)",
|
||||
"Total tax amount": "Montant total des taxes",
|
||||
"Currency code (e.g., USD, EUR)": "Code de la devise (par exemple, USD, EUR)",
|
||||
"Name of the sender": "Nom de l'expéditeur",
|
||||
"Company name of the sender": "Nom de la société de l'expéditeur",
|
||||
"Street address line 1": "Adresse de la ligne 1",
|
||||
"City": "Ville",
|
||||
"State/Province": "État/Province",
|
||||
"ZIP/Postal code": "Code postal",
|
||||
"Two-letter country code (e.g., US)": "Code pays à deux lettres (par exemple, US)",
|
||||
"Name of the recipient": "Nom du destinataire",
|
||||
"Company name of the recipient": "Nom de la société du destinataire",
|
||||
"Name/description of the item (optional)": "Nom/description de l'élément (facultatif)",
|
||||
"Total price for this line item (quantity × unit price)": "Prix total pour cet article de ligne (quantité × prix unitaire)",
|
||||
"Stock keeping unit": "Unité de gestion des stocks",
|
||||
"Weight of a single item (e.g., \"0.5\")": "Poids d'un seul élément (par exemple, \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "Poids total du colis pour l'expédition (par exemple, \"2.5\")",
|
||||
"Unit for total package weight": "Unité pour le poids total du colis",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "Frais d'expédition (ex: \"5.99\")",
|
||||
"Currency for shipping cost": "Devise pour les frais de port",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "Nom du mode de livraison (par exemple, \"USPS First Class Package\") - facultatif",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "Éléments de ligne supplémentaires au format JSON. Exemple: [{\"title\": \"Produit 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]",
|
||||
"The ID of the order to find": "L'ID de la prescription à trouver",
|
||||
"The ID of the shipping label to find": "L'ID de l'étiquette d'expédition à trouver",
|
||||
"Unknown": "Unknown",
|
||||
"Awaiting Payment": "En attente de paiement",
|
||||
"Paid": "Payé",
|
||||
"Refunded": "Remboursé",
|
||||
"Cancelled": "Annulé",
|
||||
"Partially Fulfilled": "Partiellement complété",
|
||||
"Shipped": "Expédier",
|
||||
"Pounds (lb)": "Livres (lb)",
|
||||
"Ounces (oz)": "Onces (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "Grammes (g)",
|
||||
"New Shipping Label": "Nouvelle étiquette d'expédition",
|
||||
"New Order": "Nouvelle commande",
|
||||
"Trigger when a new shipping label is created": "Déclencher quand une nouvelle étiquette d'expédition est créée",
|
||||
"Trigger when a new order is created": "Déclencher quand une nouvelle commande est créée",
|
||||
"Include Test Labels": "Inclure les étiquettes de test",
|
||||
"Include test shipping labels in the trigger": "Inclure les étiquettes de test d'expédition dans le déclencheur"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "リアルタイムの料金、ラベル、および追跡のためのマルチキャリア配送プラットフォーム",
|
||||
"Your Shippo API token": "あなたのShippo APIトークン",
|
||||
"Create Order": "注文を作成",
|
||||
"Find Order": "注文を検索",
|
||||
"Find Shipping Label": "配送ラベルを検索",
|
||||
"Create a new order in Shippo": "Shippoで新しい注文を作成します",
|
||||
"Search for an order by its ID": "ID で注文を検索",
|
||||
"Search for a shipping label by its ID": "ID で配送ラベルを検索",
|
||||
"Order Number": "注文番号",
|
||||
"Order Status": "注文ステータス",
|
||||
"Order Date": "注文日",
|
||||
"Total Price": "合計価格",
|
||||
"Subtotal Price": "小計",
|
||||
"Total Tax": "税額合計",
|
||||
"Currency": "通貨",
|
||||
"Sender Name": "送信者名",
|
||||
"Sender Company": "Sender Company",
|
||||
"Sender Street Address": "差出人の住所",
|
||||
"Sender City": "差出人の市",
|
||||
"Sender State": "送信者の状態",
|
||||
"Sender ZIP Code": "差出人の郵便番号",
|
||||
"Sender Country": "送信者の国",
|
||||
"Sender Phone": "差出人の電話番号",
|
||||
"Sender Email": "送信者メールアドレス",
|
||||
"Recipient Name": "受信者名",
|
||||
"Recipient Company": "受信者",
|
||||
"Recipient Street Address": "宛先住所",
|
||||
"Recipient City": "受信者の都市",
|
||||
"Recipient State": "受信者の状態",
|
||||
"Recipient ZIP Code": "受信者の郵便番号",
|
||||
"Recipient Country": "受取人の国",
|
||||
"Recipient Phone": "受信者電話番号",
|
||||
"Recipient Email": "受信者メールアドレス",
|
||||
"Item Title": "アイテムタイトル",
|
||||
"Item Quantity": "商品数量",
|
||||
"Item Total Price": "商品合計価格",
|
||||
"Item SKU": "商品SKU",
|
||||
"Item Weight": "商品の重量",
|
||||
"Item Weight Unit": "アイテムの重量",
|
||||
"Total Package Weight": "パッケージの合計重量",
|
||||
"Package Weight Unit": "パッケージ重量単位",
|
||||
"Shipping Cost": "配送料金",
|
||||
"Shipping Cost Currency": "配送料金通貨",
|
||||
"Shipping Method": "配送方法",
|
||||
"Additional Line Items": "追加の行項目",
|
||||
"Order ID": "注文ID",
|
||||
"Label ID": "ラベル ID",
|
||||
"Custom reference number for the order": "注文のカスタム参照番号",
|
||||
"Current status of the order": "注文の現在の状態",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "購入者によって注文された場合 (必須) - フォーマット: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "配送と税を含む合計価格",
|
||||
"Price before shipping and tax (optional)": "配送と税の前の価格 (オプション)",
|
||||
"Total tax amount": "税額合計",
|
||||
"Currency code (e.g., USD, EUR)": "通貨コード(例:USD、EUR)",
|
||||
"Name of the sender": "送信者の名前",
|
||||
"Company name of the sender": "送信者の会社名",
|
||||
"Street address line 1": "住所1",
|
||||
"City": "市区町村名",
|
||||
"State/Province": "都道府県:",
|
||||
"ZIP/Postal code": "郵便番号/郵便番号",
|
||||
"Two-letter country code (e.g., US)": "2文字の国コード(例:米国)",
|
||||
"Name of the recipient": "受信者の名前",
|
||||
"Company name of the recipient": "受信者の会社名",
|
||||
"Name/description of the item (optional)": "アイテムの名前/説明 (オプション)",
|
||||
"Total price for this line item (quantity × unit price)": "この品目の合計価格(数量×単価)",
|
||||
"Stock keeping unit": "在庫保管単位",
|
||||
"Weight of a single item (e.g., \"0.5\")": "単一のアイテムの重量 (例: \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "配送のためのパッケージの合計重量 (例: \"2.5\")",
|
||||
"Unit for total package weight": "荷物総重量の単位",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "配送料金(例:\"5.99\")",
|
||||
"Currency for shipping cost": "配送料の通貨",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "配送方法名 (例: \"USPS First Class Package\") - 省略可能",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "JSON形式の追加行項目。例:[{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]",
|
||||
"The ID of the order to find": "検索する注文のID",
|
||||
"The ID of the shipping label to find": "検索する配送ラベルのID",
|
||||
"Unknown": "不明",
|
||||
"Awaiting Payment": "お支払い待ち",
|
||||
"Paid": "支払い済み",
|
||||
"Refunded": "払い戻し済み",
|
||||
"Cancelled": "キャンセルしました",
|
||||
"Partially Fulfilled": "部分的に満員された",
|
||||
"Shipped": "配送済み",
|
||||
"Pounds (lb)": "ポンド (ポンド)",
|
||||
"Ounces (oz)": "ounces (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "グラム (g)",
|
||||
"New Shipping Label": "新しい配送ラベル",
|
||||
"New Order": "新規注文",
|
||||
"Trigger when a new shipping label is created": "新しい配送ラベルが作成されたときにトリガーします",
|
||||
"Trigger when a new order is created": "新しい注文が作成されたときにトリガーします",
|
||||
"Include Test Labels": "テストラベルを含める",
|
||||
"Include test shipping labels in the trigger": "テスト配送ラベルをトリガーに含める"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "Multi-carrier shipping platform voor real-time tarieven, labels en tracking",
|
||||
"Your Shippo API token": "Uw Shippo API-sleutel",
|
||||
"Create Order": "Bestelling aanmaken",
|
||||
"Find Order": "Bestelling zoeken",
|
||||
"Find Shipping Label": "Verzendlabel zoeken",
|
||||
"Create a new order in Shippo": "Maak een nieuwe bestelling aan in Shippo",
|
||||
"Search for an order by its ID": "Zoek naar een bestelling op ID",
|
||||
"Search for a shipping label by its ID": "Zoeken naar een verzendlabel op ID",
|
||||
"Order Number": "Bestelnummer",
|
||||
"Order Status": "Status van bestelling",
|
||||
"Order Date": "Bestelling datum",
|
||||
"Total Price": "Totale prijs",
|
||||
"Subtotal Price": "Subtotaal prijs",
|
||||
"Total Tax": "Totaal BTW",
|
||||
"Currency": "valuta",
|
||||
"Sender Name": "Naam afzender",
|
||||
"Sender Company": "Afzender Bedrijf",
|
||||
"Sender Street Address": "Adres afzender",
|
||||
"Sender City": "Afzender Plaats",
|
||||
"Sender State": "Afzender status",
|
||||
"Sender ZIP Code": "ZIP-code afzender",
|
||||
"Sender Country": "Afzender Land",
|
||||
"Sender Phone": "Telefoon afzender",
|
||||
"Sender Email": "E-mailadres afzender",
|
||||
"Recipient Name": "Naam ontvanger",
|
||||
"Recipient Company": "Ontvanger Bedrijf",
|
||||
"Recipient Street Address": "Adres van ontvanger",
|
||||
"Recipient City": "Ontvanger Plaats",
|
||||
"Recipient State": "Ontvanger status",
|
||||
"Recipient ZIP Code": "Postcode van de ontvanger",
|
||||
"Recipient Country": "Ontvanger Land",
|
||||
"Recipient Phone": "Telefoon geadresseerde",
|
||||
"Recipient Email": "E-mailadres ontvanger",
|
||||
"Item Title": "Artikel titel",
|
||||
"Item Quantity": "Artikel hoeveelheid",
|
||||
"Item Total Price": "Artikel totaal prijs",
|
||||
"Item SKU": "Artikel SKU",
|
||||
"Item Weight": "Item Gewicht",
|
||||
"Item Weight Unit": "Item gewicht eenheid",
|
||||
"Total Package Weight": "Totaal pakketgewicht",
|
||||
"Package Weight Unit": "Pakket Gewicht Eenheid",
|
||||
"Shipping Cost": "Verzend kosten",
|
||||
"Shipping Cost Currency": "Verzendkosten valuta",
|
||||
"Shipping Method": "Verzendmethode",
|
||||
"Additional Line Items": "Extra regelitems",
|
||||
"Order ID": "Bestelling ID",
|
||||
"Label ID": "Label ID",
|
||||
"Custom reference number for the order": "Aangepast referentienummer voor de bestelling",
|
||||
"Current status of the order": "Huidige status van de bestelling",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "Wanneer de bestelling werd geplaatst door de koper (verplicht) - Formaat: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "Totaalprijs inclusief verzending en BTW",
|
||||
"Price before shipping and tax (optional)": "Prijs voor verzending en BTW (optioneel)",
|
||||
"Total tax amount": "Totaal belastingbedrag",
|
||||
"Currency code (e.g., USD, EUR)": "Valutacode (bijv. USD, EUR)",
|
||||
"Name of the sender": "Naam van de afzender",
|
||||
"Company name of the sender": "Bedrijfsnaam van de afzender",
|
||||
"Street address line 1": "Adresregel 1 straat",
|
||||
"City": "Woonplaats",
|
||||
"State/Province": "Staat/provincie",
|
||||
"ZIP/Postal code": "Postcode",
|
||||
"Two-letter country code (e.g., US)": "Twee letter landcode (bijv. US)",
|
||||
"Name of the recipient": "Naam van de ontvanger",
|
||||
"Company name of the recipient": "Bedrijfsnaam van de ontvanger",
|
||||
"Name/description of the item (optional)": "Naam/beschrijving van het item (optioneel)",
|
||||
"Total price for this line item (quantity × unit price)": "Totale prijs van dit regelitem (hoeveelheid × eenheidsprijs)",
|
||||
"Stock keeping unit": "Voorraad behoud eenheid",
|
||||
"Weight of a single item (e.g., \"0.5\")": "Gewicht van een enkel item (bijv. \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "Totale gewicht van het pakket voor verzending (bijv. \"2.5\")",
|
||||
"Unit for total package weight": "Eenheid voor totaal pakketgewicht",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "Verzendkosten bedrag (bijv. \"5.99\")",
|
||||
"Currency for shipping cost": "Valuta voor verzendkosten",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "Naam verzendmethode (bijv. \"USPS First Class Package\") - optioneel",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "Extra lijnitems in JSON formaat. Voorbeeld: [{\"title\": \"Product 2\", \"hoeveelheid\": 2, \"total_price\": \"20.00\"}]",
|
||||
"The ID of the order to find": "Het ID van de bestelling",
|
||||
"The ID of the shipping label to find": "Het ID van het verzendlabel om te vinden",
|
||||
"Unknown": "Onbekend",
|
||||
"Awaiting Payment": "Wachtend op betaling",
|
||||
"Paid": "Betaald",
|
||||
"Refunded": "Terugbetaald",
|
||||
"Cancelled": "Geannuleerd",
|
||||
"Partially Fulfilled": "Gedeeltelijk compleet",
|
||||
"Shipped": "Verzonden",
|
||||
"Pounds (lb)": "Ponden (lb)",
|
||||
"Ounces (oz)": "Oons (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "Grammen (g)",
|
||||
"New Shipping Label": "Nieuw verzendlabel",
|
||||
"New Order": "Nieuwe bestelling",
|
||||
"Trigger when a new shipping label is created": "Trigger wanneer een nieuw verzendlabel is aangemaakt",
|
||||
"Trigger when a new order is created": "Trigger wanneer een nieuwe order wordt aangemaakt",
|
||||
"Include Test Labels": "Inclusief testlabels",
|
||||
"Include test shipping labels in the trigger": "Inclusief test verzendlabels in de trigger"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "Plataforma de envio multi-transportadora para taxas em tempo real, etiquetas e rastreamento",
|
||||
"Your Shippo API token": "Seu token de API do Shippo",
|
||||
"Create Order": "Criar pedido",
|
||||
"Find Order": "Encontrar Pedido",
|
||||
"Find Shipping Label": "Encontrar etiqueta de envio",
|
||||
"Create a new order in Shippo": "Criar um novo pedido em Shippo",
|
||||
"Search for an order by its ID": "Procurar uma ordem por seu ID",
|
||||
"Search for a shipping label by its ID": "Pesquisar uma etiqueta de envio por seu ID",
|
||||
"Order Number": "Número do pedido",
|
||||
"Order Status": "Situação do pedido",
|
||||
"Order Date": "Data do pedido",
|
||||
"Total Price": "Preço total",
|
||||
"Subtotal Price": "Preço subtotal",
|
||||
"Total Tax": "Total de impostos",
|
||||
"Currency": "moeda",
|
||||
"Sender Name": "Nome do Remetente",
|
||||
"Sender Company": "Empresa do remetente",
|
||||
"Sender Street Address": "Endereço do remetente",
|
||||
"Sender City": "Cidade do remetente",
|
||||
"Sender State": "Estado do Remetente",
|
||||
"Sender ZIP Code": "Código postal do remetente",
|
||||
"Sender Country": "País do remetente",
|
||||
"Sender Phone": "Telefone do remetente",
|
||||
"Sender Email": "E-mail do remetente",
|
||||
"Recipient Name": "Nome Destinatário",
|
||||
"Recipient Company": "Empresa do Destinatário",
|
||||
"Recipient Street Address": "Endereço do destinatário",
|
||||
"Recipient City": "Cidade do destinatário",
|
||||
"Recipient State": "Estado do Destinatário",
|
||||
"Recipient ZIP Code": "Código postal do beneficiário",
|
||||
"Recipient Country": "País Destinatário",
|
||||
"Recipient Phone": "Telefone do destinatário",
|
||||
"Recipient Email": "Destinatário Email",
|
||||
"Item Title": "Título do Item",
|
||||
"Item Quantity": "Quantidade do item",
|
||||
"Item Total Price": "Preço Total do Item",
|
||||
"Item SKU": "SKU de item",
|
||||
"Item Weight": "Peso do Item",
|
||||
"Item Weight Unit": "Unidade de Peso do Item",
|
||||
"Total Package Weight": "Peso total do pacote",
|
||||
"Package Weight Unit": "Unidade de peso do pacote",
|
||||
"Shipping Cost": "Custo de envio",
|
||||
"Shipping Cost Currency": "Moeda Custo de Envio",
|
||||
"Shipping Method": "Forma de Envio",
|
||||
"Additional Line Items": "Itens de Linha Adicionais",
|
||||
"Order ID": "ID da encomenda",
|
||||
"Label ID": "ID do Marcador",
|
||||
"Custom reference number for the order": "Número de referência personalizado para o pedido",
|
||||
"Current status of the order": "Status atual do pedido",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "Quando o pedido foi realizado pelo comprador (obrigatório) - Formato: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "Preço total incluindo fretes e impostos",
|
||||
"Price before shipping and tax (optional)": "Preço antes do envio e imposto (opcional)",
|
||||
"Total tax amount": "Valor total de impostos",
|
||||
"Currency code (e.g., USD, EUR)": "Código da moeda (ex.: USD, EUR)",
|
||||
"Name of the sender": "Nome do remetente",
|
||||
"Company name of the sender": "Nome da empresa do remetente",
|
||||
"Street address line 1": "Linha de endereço 1",
|
||||
"City": "cidade",
|
||||
"State/Province": "Estado/província",
|
||||
"ZIP/Postal code": "CEP/Código postal",
|
||||
"Two-letter country code (e.g., US)": "Código do país de duas letras (e.g., EUA)",
|
||||
"Name of the recipient": "Nome do destinatário",
|
||||
"Company name of the recipient": "Nome da empresa do destinatário",
|
||||
"Name/description of the item (optional)": "Nome/descrição do item (opcional)",
|
||||
"Total price for this line item (quantity × unit price)": "Preço total para esta linha do item (quantidade x preço unitário)",
|
||||
"Stock keeping unit": "Unidade de estoque",
|
||||
"Weight of a single item (e.g., \"0.5\")": "Peso de um único item (por exemplo, \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "Peso total do pacote para envio (por exemplo, \"2.5\")",
|
||||
"Unit for total package weight": "Unidade para o peso total do pacote",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "Valor do custo de transporte (ex: \"5.99\")",
|
||||
"Currency for shipping cost": "Moeda para o custo de envio",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "Nome do método de envio (ex.: \"Pacote First Class USP\") - opcional",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "Itens de linha adicionais no formato JSON. Exemplo: [{\"title\": \"Produto 2\", \"quantidade\": 2, \"total_price\": \"20.00\"}]",
|
||||
"The ID of the order to find": "O ID do pedido a ser encontrado",
|
||||
"The ID of the shipping label to find": "O ID da etiqueta de envio para encontrar",
|
||||
"Unknown": "Desconhecido",
|
||||
"Awaiting Payment": "Aguardando Pagamento",
|
||||
"Paid": "Paga",
|
||||
"Refunded": "Reembolsado",
|
||||
"Cancelled": "Cancelado",
|
||||
"Partially Fulfilled": "Parcialmente Cumprida",
|
||||
"Shipped": "Enviado",
|
||||
"Pounds (lb)": "Libras (lb)",
|
||||
"Ounces (oz)": "Onças (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "Gramas (g)",
|
||||
"New Shipping Label": "Nova etiqueta de envio",
|
||||
"New Order": "Novo Pedido",
|
||||
"Trigger when a new shipping label is created": "Acionar quando uma nova etiqueta de envio for criada",
|
||||
"Trigger when a new order is created": "Acionar quando uma nova ordem é criada",
|
||||
"Include Test Labels": "Incluir Etiquetas de Teste",
|
||||
"Include test shipping labels in the trigger": "Incluir etiquetas de envio de teste no gatilho"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "Multi-carrier shipping platform for real-time rates, labels, and tracking",
|
||||
"Your Shippo API token": "Your Shippo API token",
|
||||
"Create Order": "Create Order",
|
||||
"Find Order": "Find Order",
|
||||
"Find Shipping Label": "Find Shipping Label",
|
||||
"Create a new order in Shippo": "Create a new order in Shippo",
|
||||
"Search for an order by its ID": "Search for an order by its ID",
|
||||
"Search for a shipping label by its ID": "Search for a shipping label by its ID",
|
||||
"Order Number": "Order Number",
|
||||
"Order Status": "Order Status",
|
||||
"Order Date": "Order Date",
|
||||
"Total Price": "Total Price",
|
||||
"Subtotal Price": "Subtotal Price",
|
||||
"Total Tax": "Total Tax",
|
||||
"Currency": "Currency",
|
||||
"Sender Name": "Sender Name",
|
||||
"Sender Company": "Sender Company",
|
||||
"Sender Street Address": "Sender Street Address",
|
||||
"Sender City": "Sender City",
|
||||
"Sender State": "Sender State",
|
||||
"Sender ZIP Code": "Sender ZIP Code",
|
||||
"Sender Country": "Sender Country",
|
||||
"Sender Phone": "Sender Phone",
|
||||
"Sender Email": "Sender Email",
|
||||
"Recipient Name": "Recipient Name",
|
||||
"Recipient Company": "Recipient Company",
|
||||
"Recipient Street Address": "Recipient Street Address",
|
||||
"Recipient City": "Recipient City",
|
||||
"Recipient State": "Recipient State",
|
||||
"Recipient ZIP Code": "Recipient ZIP Code",
|
||||
"Recipient Country": "Recipient Country",
|
||||
"Recipient Phone": "Recipient Phone",
|
||||
"Recipient Email": "Recipient Email",
|
||||
"Item Title": "Item Title",
|
||||
"Item Quantity": "Item Quantity",
|
||||
"Item Total Price": "Item Total Price",
|
||||
"Item SKU": "Item SKU",
|
||||
"Item Weight": "Item Weight",
|
||||
"Item Weight Unit": "Item Weight Unit",
|
||||
"Total Package Weight": "Total Package Weight",
|
||||
"Package Weight Unit": "Package Weight Unit",
|
||||
"Shipping Cost": "Shipping Cost",
|
||||
"Shipping Cost Currency": "Shipping Cost Currency",
|
||||
"Shipping Method": "Shipping Method",
|
||||
"Additional Line Items": "Additional Line Items",
|
||||
"Order ID": "Order ID",
|
||||
"Label ID": "Label ID",
|
||||
"Custom reference number for the order": "Custom reference number for the order",
|
||||
"Current status of the order": "Current status of the order",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "Total price including shipping and tax",
|
||||
"Price before shipping and tax (optional)": "Price before shipping and tax (optional)",
|
||||
"Total tax amount": "Total tax amount",
|
||||
"Currency code (e.g., USD, EUR)": "Currency code (e.g., USD, EUR)",
|
||||
"Name of the sender": "Name of the sender",
|
||||
"Company name of the sender": "Company name of the sender",
|
||||
"Street address line 1": "Street address line 1",
|
||||
"City": "City",
|
||||
"State/Province": "State/Province",
|
||||
"ZIP/Postal code": "ZIP/Postal code",
|
||||
"Two-letter country code (e.g., US)": "Two-letter country code (e.g., US)",
|
||||
"Name of the recipient": "Name of the recipient",
|
||||
"Company name of the recipient": "Company name of the recipient",
|
||||
"Name/description of the item (optional)": "Name/description of the item (optional)",
|
||||
"Total price for this line item (quantity × unit price)": "Total price for this line item (quantity × unit price)",
|
||||
"Stock keeping unit": "Stock keeping unit",
|
||||
"Weight of a single item (e.g., \"0.5\")": "Weight of a single item (e.g., \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "Total weight of the package for shipping (e.g., \"2.5\")",
|
||||
"Unit for total package weight": "Unit for total package weight",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "Shipping cost amount (e.g., \"5.99\")",
|
||||
"Currency for shipping cost": "Currency for shipping cost",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "Shipping method name (e.g., \"USPS First Class Package\") - optional",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]",
|
||||
"The ID of the order to find": "The ID of the order to find",
|
||||
"The ID of the shipping label to find": "The ID of the shipping label to find",
|
||||
"Unknown": "Unknown",
|
||||
"Awaiting Payment": "Awaiting Payment",
|
||||
"Paid": "Paid",
|
||||
"Refunded": "Refunded",
|
||||
"Cancelled": "Cancelled",
|
||||
"Partially Fulfilled": "Partially Fulfilled",
|
||||
"Shipped": "Shipped",
|
||||
"Pounds (lb)": "Pounds (lb)",
|
||||
"Ounces (oz)": "Ounces (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "Grams (g)",
|
||||
"New Shipping Label": "New Shipping Label",
|
||||
"New Order": "New Order",
|
||||
"Trigger when a new shipping label is created": "Trigger when a new shipping label is created",
|
||||
"Trigger when a new order is created": "Trigger when a new order is created",
|
||||
"Include Test Labels": "Include Test Labels",
|
||||
"Include test shipping labels in the trigger": "Include test shipping labels in the trigger"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"Multi-carrier shipping platform for real-time rates, labels, and tracking": "Multi-carrier shipping platform for real-time rates, labels, and tracking",
|
||||
"Your Shippo API token": "Your Shippo API token",
|
||||
"Create Order": "Create Order",
|
||||
"Find Order": "Find Order",
|
||||
"Find Shipping Label": "Find Shipping Label",
|
||||
"Create a new order in Shippo": "Create a new order in Shippo",
|
||||
"Search for an order by its ID": "Search for an order by its ID",
|
||||
"Search for a shipping label by its ID": "Search for a shipping label by its ID",
|
||||
"Order Number": "Order Number",
|
||||
"Order Status": "Order Status",
|
||||
"Order Date": "Order Date",
|
||||
"Total Price": "Total Price",
|
||||
"Subtotal Price": "Subtotal Price",
|
||||
"Total Tax": "Total Tax",
|
||||
"Currency": "Currency",
|
||||
"Sender Name": "发件人姓名",
|
||||
"Sender Company": "Sender Company",
|
||||
"Sender Street Address": "Sender Street Address",
|
||||
"Sender City": "Sender City",
|
||||
"Sender State": "Sender State",
|
||||
"Sender ZIP Code": "Sender ZIP Code",
|
||||
"Sender Country": "Sender Country",
|
||||
"Sender Phone": "Sender Phone",
|
||||
"Sender Email": "发件人电子邮件",
|
||||
"Recipient Name": "Recipient Name",
|
||||
"Recipient Company": "Recipient Company",
|
||||
"Recipient Street Address": "Recipient Street Address",
|
||||
"Recipient City": "Recipient City",
|
||||
"Recipient State": "Recipient State",
|
||||
"Recipient ZIP Code": "Recipient ZIP Code",
|
||||
"Recipient Country": "Recipient Country",
|
||||
"Recipient Phone": "Recipient Phone",
|
||||
"Recipient Email": "Recipient Email",
|
||||
"Item Title": "Item Title",
|
||||
"Item Quantity": "Item Quantity",
|
||||
"Item Total Price": "Item Total Price",
|
||||
"Item SKU": "Item SKU",
|
||||
"Item Weight": "Item Weight",
|
||||
"Item Weight Unit": "Item Weight Unit",
|
||||
"Total Package Weight": "Total Package Weight",
|
||||
"Package Weight Unit": "Package Weight Unit",
|
||||
"Shipping Cost": "Shipping Cost",
|
||||
"Shipping Cost Currency": "Shipping Cost Currency",
|
||||
"Shipping Method": "Shipping Method",
|
||||
"Additional Line Items": "Additional Line Items",
|
||||
"Order ID": "Order ID",
|
||||
"Label ID": "Label ID",
|
||||
"Custom reference number for the order": "Custom reference number for the order",
|
||||
"Current status of the order": "Current status of the order",
|
||||
"When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z": "When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z",
|
||||
"Total price including shipping and tax": "Total price including shipping and tax",
|
||||
"Price before shipping and tax (optional)": "Price before shipping and tax (optional)",
|
||||
"Total tax amount": "Total tax amount",
|
||||
"Currency code (e.g., USD, EUR)": "Currency code (e.g., USD, EUR)",
|
||||
"Name of the sender": "Name of the sender",
|
||||
"Company name of the sender": "Company name of the sender",
|
||||
"Street address line 1": "Street address line 1",
|
||||
"City": "City",
|
||||
"State/Province": "State/Province",
|
||||
"ZIP/Postal code": "ZIP/Postal code",
|
||||
"Two-letter country code (e.g., US)": "Two-letter country code (e.g., US)",
|
||||
"Name of the recipient": "Name of the recipient",
|
||||
"Company name of the recipient": "Company name of the recipient",
|
||||
"Name/description of the item (optional)": "Name/description of the item (optional)",
|
||||
"Total price for this line item (quantity × unit price)": "Total price for this line item (quantity × unit price)",
|
||||
"Stock keeping unit": "Stock keeping unit",
|
||||
"Weight of a single item (e.g., \"0.5\")": "Weight of a single item (e.g., \"0.5\")",
|
||||
"Total weight of the package for shipping (e.g., \"2.5\")": "Total weight of the package for shipping (e.g., \"2.5\")",
|
||||
"Unit for total package weight": "Unit for total package weight",
|
||||
"Shipping cost amount (e.g., \"5.99\")": "Shipping cost amount (e.g., \"5.99\")",
|
||||
"Currency for shipping cost": "Currency for shipping cost",
|
||||
"Shipping method name (e.g., \"USPS First Class Package\") - optional": "Shipping method name (e.g., \"USPS First Class Package\") - optional",
|
||||
"Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]": "Additional line items in JSON format. Example: [{\"title\": \"Product 2\", \"quantity\": 2, \"total_price\": \"20.00\"}]",
|
||||
"The ID of the order to find": "The ID of the order to find",
|
||||
"The ID of the shipping label to find": "The ID of the shipping label to find",
|
||||
"Unknown": "未知的",
|
||||
"Awaiting Payment": "Awaiting Payment",
|
||||
"Paid": "Paid",
|
||||
"Refunded": "Refunded",
|
||||
"Cancelled": "Cancelled",
|
||||
"Partially Fulfilled": "Partially Fulfilled",
|
||||
"Shipped": "Shipped",
|
||||
"Pounds (lb)": "Pounds (lb)",
|
||||
"Ounces (oz)": "Ounces (oz)",
|
||||
"Kilograms (kg)": "Kilograms (kg)",
|
||||
"Grams (g)": "Grams (g)",
|
||||
"New Shipping Label": "New Shipping Label",
|
||||
"New Order": "New Order",
|
||||
"Trigger when a new shipping label is created": "Trigger when a new shipping label is created",
|
||||
"Trigger when a new order is created": "Trigger when a new order is created",
|
||||
"Include Test Labels": "Include Test Labels",
|
||||
"Include test shipping labels in the trigger": "Include test shipping labels in the trigger"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { createPiece } from '@activepieces/pieces-framework';
|
||||
|
||||
import { shippoAuth } from './lib/auth';
|
||||
import { createOrder } from './lib/actions/create-order';
|
||||
import { findOrder } from './lib/actions/find-order';
|
||||
import { findShippingLabel } from './lib/actions/find-shipping-label';
|
||||
import { newShippingLabel } from './lib/triggers/new-shipping-label';
|
||||
import { newOrder } from './lib/triggers/new-order';
|
||||
|
||||
export const shippo = createPiece({
|
||||
displayName: 'Shippo',
|
||||
description:
|
||||
'Multi-carrier shipping platform for real-time rates, labels, and tracking',
|
||||
auth: shippoAuth,
|
||||
minimumSupportedRelease: '0.36.1',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/shippo.png',
|
||||
authors: ['SinghaAnirban005', 'sanket-a11y'],
|
||||
actions: [createOrder, findOrder, findShippingLabel],
|
||||
triggers: [newShippingLabel, newOrder],
|
||||
});
|
||||
@@ -0,0 +1,379 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { shippoAuth } from '../../lib/auth';
|
||||
import { ShippoClient } from '../../lib/client';
|
||||
|
||||
export const createOrder = createAction({
|
||||
name: 'create_order',
|
||||
displayName: 'Create Order',
|
||||
description: 'Create a new order in Shippo',
|
||||
auth: shippoAuth,
|
||||
props: {
|
||||
order_number: Property.ShortText({
|
||||
displayName: 'Order Number',
|
||||
description: 'Custom reference number for the order',
|
||||
required: true,
|
||||
}),
|
||||
order_status: Property.StaticDropdown({
|
||||
displayName: 'Order Status',
|
||||
description: 'Current status of the order',
|
||||
required: true,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Unknown', value: 'UNKNOWN' },
|
||||
{ label: 'Awaiting Payment', value: 'AWAITPAY' },
|
||||
{ label: 'Paid', value: 'PAID' },
|
||||
{ label: 'Refunded', value: 'REFUNDED' },
|
||||
{ label: 'Cancelled', value: 'CANCELLED' },
|
||||
{ label: 'Partially Fulfilled', value: 'PARTIALLY_FULFILLED' },
|
||||
{ label: 'Shipped', value: 'SHIPPED' },
|
||||
],
|
||||
},
|
||||
defaultValue: 'AWAITPAY',
|
||||
}),
|
||||
placed_at: Property.DateTime({
|
||||
displayName: 'Order Date',
|
||||
description: 'When the order was placed by the buyer (mandatory) - Format: 2025-10-31T11:56:29.244Z',
|
||||
required: true,
|
||||
}),
|
||||
total_price: Property.ShortText({
|
||||
displayName: 'Total Price',
|
||||
description: 'Total price including shipping and tax',
|
||||
required: true,
|
||||
}),
|
||||
subtotal_price: Property.ShortText({
|
||||
displayName: 'Subtotal Price',
|
||||
description: 'Price before shipping and tax (optional)',
|
||||
required: false,
|
||||
}),
|
||||
total_tax: Property.ShortText({
|
||||
displayName: 'Total Tax',
|
||||
description: 'Total tax amount',
|
||||
required: false,
|
||||
}),
|
||||
currency: Property.ShortText({
|
||||
displayName: 'Currency',
|
||||
description: 'Currency code (e.g., USD, EUR)',
|
||||
required: true,
|
||||
defaultValue: 'USD',
|
||||
}),
|
||||
|
||||
// Sender Address (From Address)
|
||||
from_name: Property.ShortText({
|
||||
displayName: 'Sender Name',
|
||||
description: 'Name of the sender',
|
||||
required: false,
|
||||
}),
|
||||
from_company: Property.ShortText({
|
||||
displayName: 'Sender Company',
|
||||
description: 'Company name of the sender',
|
||||
required: false,
|
||||
}),
|
||||
from_street1: Property.ShortText({
|
||||
displayName: 'Sender Street Address',
|
||||
description: 'Street address line 1',
|
||||
required: false,
|
||||
}),
|
||||
from_city: Property.ShortText({
|
||||
displayName: 'Sender City',
|
||||
description: 'City',
|
||||
required: false,
|
||||
}),
|
||||
from_state: Property.ShortText({
|
||||
displayName: 'Sender State',
|
||||
description: 'State/Province',
|
||||
required: false,
|
||||
}),
|
||||
from_zip: Property.ShortText({
|
||||
displayName: 'Sender ZIP Code',
|
||||
description: 'ZIP/Postal code',
|
||||
required: false,
|
||||
}),
|
||||
from_country: Property.ShortText({
|
||||
displayName: 'Sender Country',
|
||||
description: 'Two-letter country code (e.g., US)',
|
||||
required: false,
|
||||
defaultValue: 'US',
|
||||
}),
|
||||
from_phone: Property.ShortText({
|
||||
displayName: 'Sender Phone',
|
||||
required: false,
|
||||
}),
|
||||
from_email: Property.ShortText({
|
||||
displayName: 'Sender Email',
|
||||
required: false,
|
||||
}),
|
||||
|
||||
// Recipient Address (To Address)
|
||||
to_name: Property.ShortText({
|
||||
displayName: 'Recipient Name',
|
||||
description: 'Name of the recipient',
|
||||
required: true,
|
||||
}),
|
||||
to_company: Property.ShortText({
|
||||
displayName: 'Recipient Company',
|
||||
description: 'Company name of the recipient',
|
||||
required: false,
|
||||
}),
|
||||
to_street1: Property.ShortText({
|
||||
displayName: 'Recipient Street Address',
|
||||
description: 'Street address line 1',
|
||||
required: true,
|
||||
}),
|
||||
to_city: Property.ShortText({
|
||||
displayName: 'Recipient City',
|
||||
description: 'City',
|
||||
required: true,
|
||||
}),
|
||||
to_state: Property.ShortText({
|
||||
displayName: 'Recipient State',
|
||||
description: 'State/Province',
|
||||
required: true,
|
||||
}),
|
||||
to_zip: Property.ShortText({
|
||||
displayName: 'Recipient ZIP Code',
|
||||
description: 'ZIP/Postal code',
|
||||
required: true,
|
||||
}),
|
||||
to_country: Property.ShortText({
|
||||
displayName: 'Recipient Country',
|
||||
description: 'Two-letter country code (e.g., US)',
|
||||
required: true,
|
||||
defaultValue: 'US',
|
||||
}),
|
||||
to_phone: Property.ShortText({
|
||||
displayName: 'Recipient Phone',
|
||||
required: false,
|
||||
}),
|
||||
to_email: Property.ShortText({
|
||||
displayName: 'Recipient Email',
|
||||
required: false,
|
||||
}),
|
||||
|
||||
// Line Items - Single Item (Simple approach)
|
||||
line_item_title: Property.ShortText({
|
||||
displayName: 'Item Title',
|
||||
description: 'Name/description of the item (optional)',
|
||||
required: false,
|
||||
}),
|
||||
line_item_quantity: Property.Number({
|
||||
displayName: 'Item Quantity',
|
||||
required: false,
|
||||
defaultValue: 1,
|
||||
}),
|
||||
line_item_total_price: Property.ShortText({
|
||||
displayName: 'Item Total Price',
|
||||
description: 'Total price for this line item (quantity × unit price)',
|
||||
required: false,
|
||||
}),
|
||||
line_item_sku: Property.ShortText({
|
||||
displayName: 'Item SKU',
|
||||
description: 'Stock keeping unit',
|
||||
required: false,
|
||||
}),
|
||||
line_item_weight: Property.ShortText({
|
||||
displayName: 'Item Weight',
|
||||
description: 'Weight of a single item (e.g., "0.5")',
|
||||
required: false,
|
||||
}),
|
||||
line_item_weight_unit: Property.StaticDropdown({
|
||||
displayName: 'Item Weight Unit',
|
||||
required: false,
|
||||
defaultValue: 'lb',
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Pounds (lb)', value: 'lb' },
|
||||
{ label: 'Ounces (oz)', value: 'oz' },
|
||||
{ label: 'Kilograms (kg)', value: 'kg' },
|
||||
{ label: 'Grams (g)', value: 'g' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
|
||||
// Shipping Information
|
||||
weight: Property.ShortText({
|
||||
displayName: 'Total Package Weight',
|
||||
description: 'Total weight of the package for shipping (e.g., "2.5")',
|
||||
required: true,
|
||||
}),
|
||||
weight_unit: Property.StaticDropdown({
|
||||
displayName: 'Package Weight Unit',
|
||||
description: 'Unit for total package weight',
|
||||
required: false,
|
||||
defaultValue: 'lb',
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Pounds (lb)', value: 'lb' },
|
||||
{ label: 'Ounces (oz)', value: 'oz' },
|
||||
{ label: 'Kilograms (kg)', value: 'kg' },
|
||||
{ label: 'Grams (g)', value: 'g' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
shipping_cost: Property.ShortText({
|
||||
displayName: 'Shipping Cost',
|
||||
description: 'Shipping cost amount (e.g., "5.99")',
|
||||
required: false,
|
||||
}),
|
||||
shipping_cost_currency: Property.ShortText({
|
||||
displayName: 'Shipping Cost Currency',
|
||||
description: 'Currency for shipping cost',
|
||||
required: false,
|
||||
defaultValue: 'USD',
|
||||
}),
|
||||
shipping_method: Property.ShortText({
|
||||
displayName: 'Shipping Method',
|
||||
description: 'Shipping method name (e.g., "USPS First Class Package") - optional',
|
||||
required: false,
|
||||
}),
|
||||
|
||||
// Multiple Line Items
|
||||
additional_line_items: Property.Json({
|
||||
displayName: 'Additional Line Items',
|
||||
description: 'Additional line items in JSON format. Example: [{"title": "Product 2", "quantity": 2, "total_price": "20.00"}]',
|
||||
required: false,
|
||||
defaultValue: [],
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const {
|
||||
order_number,
|
||||
order_status,
|
||||
placed_at,
|
||||
total_price,
|
||||
subtotal_price,
|
||||
total_tax,
|
||||
currency,
|
||||
from_name,
|
||||
from_company,
|
||||
from_street1,
|
||||
from_city,
|
||||
from_state,
|
||||
from_zip,
|
||||
from_country,
|
||||
from_phone,
|
||||
from_email,
|
||||
to_name,
|
||||
to_company,
|
||||
to_street1,
|
||||
to_city,
|
||||
to_state,
|
||||
to_zip,
|
||||
to_country,
|
||||
to_phone,
|
||||
to_email,
|
||||
line_item_title,
|
||||
line_item_quantity,
|
||||
line_item_total_price,
|
||||
line_item_sku,
|
||||
line_item_weight,
|
||||
line_item_weight_unit,
|
||||
weight,
|
||||
weight_unit,
|
||||
shipping_cost,
|
||||
shipping_cost_currency,
|
||||
shipping_method,
|
||||
additional_line_items,
|
||||
} = context.propsValue;
|
||||
|
||||
const client = new ShippoClient({
|
||||
apiToken: context.auth.secret_text,
|
||||
});
|
||||
|
||||
// Build to address
|
||||
const to_address: any = {
|
||||
name: to_name,
|
||||
street1: to_street1,
|
||||
city: to_city,
|
||||
state: to_state,
|
||||
zip: to_zip,
|
||||
country: to_country,
|
||||
};
|
||||
if (to_company) to_address.company = to_company;
|
||||
if (to_phone) to_address.phone = to_phone;
|
||||
if (to_email) to_address.email = to_email;
|
||||
|
||||
// Build order data with mandatory fields
|
||||
const orderData: any = {
|
||||
order_number,
|
||||
order_status: order_status as
|
||||
| 'UNKNOWN'
|
||||
| 'AWAITPAY'
|
||||
| 'PAID'
|
||||
| 'REFUNDED'
|
||||
| 'CANCELLED'
|
||||
| 'PARTIALLY_FULFILLED'
|
||||
| 'SHIPPED',
|
||||
placed_at,
|
||||
total_price,
|
||||
currency,
|
||||
to_address,
|
||||
};
|
||||
|
||||
// Build from address (optional)
|
||||
if (from_name && from_street1 && from_city && from_state && from_zip && from_country) {
|
||||
const from_address: any = {
|
||||
name: from_name,
|
||||
street1: from_street1,
|
||||
city: from_city,
|
||||
state: from_state,
|
||||
zip: from_zip,
|
||||
country: from_country,
|
||||
};
|
||||
if (from_company) from_address.company = from_company;
|
||||
if (from_phone) from_address.phone = from_phone;
|
||||
if (from_email) from_address.email = from_email;
|
||||
orderData.from_address = from_address;
|
||||
}
|
||||
|
||||
// Build line items (optional)
|
||||
const line_items = [];
|
||||
|
||||
// Add primary line item if provided
|
||||
if (line_item_title && line_item_total_price) {
|
||||
const primary_item: any = {
|
||||
title: line_item_title,
|
||||
quantity: line_item_quantity || 1,
|
||||
total_price: line_item_total_price,
|
||||
currency: currency,
|
||||
};
|
||||
if (line_item_sku) primary_item.sku = line_item_sku;
|
||||
if (line_item_weight) primary_item.weight = line_item_weight;
|
||||
if (line_item_weight_unit) primary_item.weight_unit = line_item_weight_unit;
|
||||
|
||||
line_items.push(primary_item);
|
||||
}
|
||||
|
||||
// Add additional line items if provided
|
||||
if (additional_line_items && Array.isArray(additional_line_items)) {
|
||||
additional_line_items.forEach((item: any) => {
|
||||
const additional_item: any = {
|
||||
title: item.title || '',
|
||||
quantity: Number(item.quantity) || 1,
|
||||
total_price: item.total_price || '0.00',
|
||||
currency: item.currency || currency,
|
||||
};
|
||||
if (item.sku) additional_item.sku = item.sku;
|
||||
if (item.weight) additional_item.weight = item.weight;
|
||||
if (item.weight_unit) additional_item.weight_unit = item.weight_unit;
|
||||
|
||||
line_items.push(additional_item);
|
||||
});
|
||||
}
|
||||
|
||||
// Add line items to order if any exist
|
||||
if (line_items.length > 0) {
|
||||
orderData.line_items = line_items;
|
||||
}
|
||||
|
||||
// Optional fields
|
||||
if (subtotal_price) orderData.subtotal_price = subtotal_price;
|
||||
if (total_tax) orderData.total_tax = total_tax;
|
||||
if (weight) orderData.weight = weight;
|
||||
if (weight_unit) orderData.weight_unit = weight_unit;
|
||||
if (shipping_cost) orderData.shipping_cost = shipping_cost;
|
||||
if (shipping_cost_currency) orderData.shipping_cost_currency = shipping_cost_currency;
|
||||
if (shipping_method) orderData.shipping_method = shipping_method;
|
||||
|
||||
return await client.createOrder(orderData);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,26 @@
|
||||
import { createAction, Property } from "@activepieces/pieces-framework";
|
||||
import { shippoAuth } from "../../lib/auth";
|
||||
import { ShippoClient } from "../../lib/client";
|
||||
|
||||
export const findOrder = createAction({
|
||||
name: 'find_order',
|
||||
displayName: 'Find Order',
|
||||
description: 'Search for an order by its ID',
|
||||
auth: shippoAuth,
|
||||
props: {
|
||||
order_id: Property.ShortText({
|
||||
displayName: 'Order ID',
|
||||
description: 'The ID of the order to find',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { order_id } = context.propsValue;
|
||||
|
||||
const client = new ShippoClient({
|
||||
apiToken: context.auth.secret_text,
|
||||
});
|
||||
|
||||
return await client.getOrder(order_id);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,26 @@
|
||||
import { createAction, Property } from "@activepieces/pieces-framework";
|
||||
import { shippoAuth } from "../../lib/auth";
|
||||
import { ShippoClient } from "../../lib/client";
|
||||
|
||||
export const findShippingLabel = createAction({
|
||||
name: 'find_shipping_label',
|
||||
displayName: 'Find Shipping Label',
|
||||
description: 'Search for a shipping label by its ID',
|
||||
auth: shippoAuth,
|
||||
props: {
|
||||
label_id: Property.ShortText({
|
||||
displayName: 'Label ID',
|
||||
description: 'The ID of the shipping label to find',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { label_id } = context.propsValue;
|
||||
|
||||
const client = new ShippoClient({
|
||||
apiToken: context.auth.secret_text,
|
||||
});
|
||||
|
||||
return await client.getShippingLabel(label_id);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,33 @@
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { PieceAuth } from '@activepieces/pieces-framework';
|
||||
|
||||
export const shippoAuth = PieceAuth.SecretText({
|
||||
displayName: 'API Token',
|
||||
description: 'Your Shippo API token',
|
||||
required: true,
|
||||
validate: async ({ auth }) => {
|
||||
if (auth) {
|
||||
try {
|
||||
await httpClient.sendRequest({
|
||||
method: HttpMethod.GET,
|
||||
url: 'https://api.goshippo.com/orders/',
|
||||
headers: {
|
||||
Authorization: `ShippoToken ${auth}`,
|
||||
},
|
||||
});
|
||||
return {
|
||||
valid: true,
|
||||
};
|
||||
} catch (error) {
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid Api Key',
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid Api Key',
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,99 @@
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { ShippoConfig, Order, ShippingLabel, ApiListResponse, CreateOrderRequest } from './common';
|
||||
|
||||
export class ShippoClient {
|
||||
private baseUrl = 'https://api.goshippo.com';
|
||||
|
||||
constructor(private config: ShippoConfig) {}
|
||||
|
||||
private async makeRequest<T>(method: HttpMethod, endpoint: string, body?: any): Promise<T> {
|
||||
const response = await httpClient.sendRequest({
|
||||
method,
|
||||
url: `${this.baseUrl}${endpoint}`,
|
||||
headers: {
|
||||
Authorization: `ShippoToken ${this.config.apiToken}`,
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body,
|
||||
});
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
async createOrder(orderData: CreateOrderRequest): Promise<Order> {
|
||||
return this.makeRequest<Order>(HttpMethod.POST, '/orders', orderData);
|
||||
}
|
||||
|
||||
async getOrder(orderId: string, fields?: string[]): Promise<Order> {
|
||||
const queryParams = fields ? `?fields=${fields.join(',')}` : '';
|
||||
return this.makeRequest<Order>(HttpMethod.GET, `/orders/${orderId}${queryParams}`);
|
||||
}
|
||||
|
||||
async listOrders(params?: {
|
||||
page?: number;
|
||||
results_per_page?: number;
|
||||
order_status?: string;
|
||||
placed_at_gt?: string;
|
||||
}): Promise<ApiListResponse<Order>> {
|
||||
const queryParams = new URLSearchParams();
|
||||
if (params?.page) queryParams.append('page', params.page.toString());
|
||||
if (params?.results_per_page) queryParams.append('results_per_page', params.results_per_page.toString());
|
||||
if (params?.order_status) queryParams.append('order_status', params.order_status);
|
||||
if (params?.placed_at_gt) queryParams.append('placed_at_gt', params.placed_at_gt);
|
||||
|
||||
const queryString = queryParams.toString();
|
||||
const endpoint = `/orders${queryString ? `?${queryString}` : ''}`;
|
||||
|
||||
return this.makeRequest<ApiListResponse<Order>>(HttpMethod.GET, endpoint);
|
||||
}
|
||||
|
||||
async updateOrder(orderId: string, orderData: Partial<Order>): Promise<Order> {
|
||||
return this.makeRequest<Order>(HttpMethod.PATCH, `/orders/${orderId}`, orderData);
|
||||
}
|
||||
|
||||
async deleteOrder(orderId: string): Promise<void> {
|
||||
await this.makeRequest(HttpMethod.DELETE, `/orders/${orderId}`);
|
||||
}
|
||||
|
||||
async getShippingLabel(labelId: string): Promise<ShippingLabel> {
|
||||
return this.makeRequest<ShippingLabel>(HttpMethod.GET, `/transactions/${labelId}`);
|
||||
}
|
||||
|
||||
async listShippingLabels(params?: {
|
||||
page?: number;
|
||||
results_per_page?: number;
|
||||
}): Promise<ApiListResponse<ShippingLabel>> {
|
||||
const queryParams = new URLSearchParams();
|
||||
if (params?.page) queryParams.append('page', params.page.toString());
|
||||
if (params?.results_per_page) queryParams.append('results_per_page', params.results_per_page.toString());
|
||||
|
||||
const queryString = queryParams.toString();
|
||||
const endpoint = `/transactions${queryString ? `?${queryString}` : ''}`;
|
||||
|
||||
return this.makeRequest<ApiListResponse<ShippingLabel>>(HttpMethod.GET, endpoint);
|
||||
}
|
||||
|
||||
async createShippingLabel(transactionData: {
|
||||
carrier_account: string;
|
||||
servicelevel_token: string;
|
||||
shipment: string;
|
||||
metadata?: string;
|
||||
label_file_type?: 'PDF' | 'PNG' | 'ZPL';
|
||||
async?: boolean;
|
||||
}): Promise<ShippingLabel> {
|
||||
return this.makeRequest<ShippingLabel>(HttpMethod.POST, '/transactions', transactionData);
|
||||
}
|
||||
|
||||
// Additional useful methods
|
||||
async createShipment(shipmentData: any): Promise<any> {
|
||||
return this.makeRequest(HttpMethod.POST, '/shipments', shipmentData);
|
||||
}
|
||||
|
||||
async getRates(shipmentId: string): Promise<any> {
|
||||
return this.makeRequest(HttpMethod.GET, `/shipments/${shipmentId}/rates`);
|
||||
}
|
||||
|
||||
async trackShippingLabel(trackingNumber: string, carrier: string): Promise<any> {
|
||||
return this.makeRequest(HttpMethod.GET, `/tracks/${carrier}/${trackingNumber}`);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
export interface ShippoConfig {
|
||||
apiToken: string;
|
||||
}
|
||||
|
||||
export interface Address {
|
||||
name: string;
|
||||
company?: string;
|
||||
street1: string;
|
||||
street2?: string;
|
||||
city: string;
|
||||
state: string;
|
||||
zip: string;
|
||||
country: string;
|
||||
phone?: string;
|
||||
email?: string;
|
||||
}
|
||||
|
||||
export interface Parcel {
|
||||
length: number;
|
||||
width: number;
|
||||
height: number;
|
||||
distance_unit: 'in' | 'cm';
|
||||
weight: number;
|
||||
mass_unit: 'lb' | 'kg';
|
||||
}
|
||||
|
||||
export interface Order {
|
||||
object_id?: string;
|
||||
order_number: string;
|
||||
order_status: 'PAID' | 'UNPAID' | 'CANCELLED' | 'REFUNDED' | 'ONHOLD';
|
||||
placed_at: string;
|
||||
from_address: Address;
|
||||
to_address: Address;
|
||||
line_items: LineItem[];
|
||||
total_price: string;
|
||||
total_tax?: string;
|
||||
currency: string;
|
||||
weight?: string;
|
||||
weight_unit?: string;
|
||||
shipping_cost?: string;
|
||||
shipping_cost_currency?: string;
|
||||
object_created?: string;
|
||||
object_updated?: string;
|
||||
}
|
||||
|
||||
export interface LineItem {
|
||||
title: string;
|
||||
sku?: string;
|
||||
quantity: number;
|
||||
total_price: string;
|
||||
currency: string;
|
||||
weight?: string;
|
||||
weight_unit?: string;
|
||||
}
|
||||
|
||||
export interface CreateOrderRequest {
|
||||
order_number: string;
|
||||
order_status: 'PAID' | 'UNPAID' | 'CANCELLED' | 'REFUNDED' | 'ONHOLD';
|
||||
placed_at: string;
|
||||
total_price: string;
|
||||
currency: string;
|
||||
from_address: Address;
|
||||
to_address: Address;
|
||||
line_items: LineItem[];
|
||||
total_tax?: string;
|
||||
weight?: string;
|
||||
weight_unit?: string;
|
||||
shipping_cost?: string;
|
||||
shipping_cost_currency?: string;
|
||||
}
|
||||
|
||||
export interface ShippingLabel {
|
||||
object_id: string;
|
||||
object_owner: string;
|
||||
carrier_account: string;
|
||||
servicelevel_token: string;
|
||||
tracking_number: string;
|
||||
tracking_status: string;
|
||||
tracking_url_provider: string;
|
||||
label_url: string;
|
||||
rate: string;
|
||||
parcel: string;
|
||||
address_from: Address;
|
||||
address_to: Address;
|
||||
metadata?: string;
|
||||
test: boolean;
|
||||
created_at: string;
|
||||
object_created: string;
|
||||
}
|
||||
|
||||
export interface ApiListResponse<T> {
|
||||
count: number;
|
||||
next: string | null;
|
||||
previous: string | null;
|
||||
results: T[];
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
import {
|
||||
createTrigger,
|
||||
TriggerStrategy,
|
||||
StaticPropsValue,
|
||||
AppConnectionValueForAuthProperty,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import dayjs from 'dayjs';
|
||||
import { ShippoClient } from '../client';
|
||||
import { shippoAuth } from '../auth';
|
||||
|
||||
const props = {};
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof shippoAuth>, StaticPropsValue<typeof props>> = {
|
||||
strategy: DedupeStrategy.TIMEBASED,
|
||||
items: async ({ auth, lastFetchEpochMS }) => {
|
||||
const client = new ShippoClient({
|
||||
apiToken: auth.secret_text,
|
||||
});
|
||||
|
||||
const result = await client.listOrders({
|
||||
results_per_page: 100,
|
||||
});
|
||||
console.log('Fetched orders:', JSON.stringify(result));
|
||||
const filteredOrders = result.results.filter((order) => {
|
||||
const orderTime = dayjs(order.placed_at).valueOf();
|
||||
return orderTime > lastFetchEpochMS;
|
||||
});
|
||||
|
||||
return filteredOrders.map((order: any) => ({
|
||||
epochMilliSeconds: dayjs(order.placed_at).valueOf(),
|
||||
data: order,
|
||||
}));
|
||||
},
|
||||
};
|
||||
|
||||
export const newOrder = createTrigger({
|
||||
name: 'new_order',
|
||||
displayName: 'New Order',
|
||||
description: 'Trigger when a new order is created',
|
||||
type: TriggerStrategy.POLLING,
|
||||
auth: shippoAuth,
|
||||
props,
|
||||
sampleData: {
|
||||
object_id: '4f2bc588e4e5446cb3f9fdb7cd5e190b',
|
||||
object_owner: 'shippotle@shippo.com',
|
||||
order_number: '#1068',
|
||||
order_status: 'PAID',
|
||||
placed_at: '2016-09-23T01:28:12Z',
|
||||
to_address: {
|
||||
object_created: '2016-09-23T01:38:56Z',
|
||||
object_updated: '2016-09-23T01:38:56Z',
|
||||
object_id: 'd799c2679e644279b59fe661ac8fa488',
|
||||
object_owner: 'shippotle@shippo.com',
|
||||
is_complete: true,
|
||||
validation_results: {},
|
||||
name: 'Mr Hippo',
|
||||
company: 'Shippo',
|
||||
street1: '215 Clayton St.',
|
||||
street2: '',
|
||||
city: 'San Francisco',
|
||||
state: 'CA',
|
||||
zip: '94117',
|
||||
country: 'US',
|
||||
phone: '15553419393',
|
||||
email: 'shippotle@shippo.com',
|
||||
is_residential: null,
|
||||
metadata: '',
|
||||
},
|
||||
from_address: null,
|
||||
line_items: [
|
||||
{
|
||||
object_id: 'abf7d5675d744b6ea9fdb6f796b28f28',
|
||||
title: 'Hippo Magazines',
|
||||
variant_title: '',
|
||||
sku: 'HM-123',
|
||||
quantity: 1,
|
||||
total_price: '12.10',
|
||||
currency: 'USD',
|
||||
weight: '0.40',
|
||||
weight_unit: 'lb',
|
||||
manufacture_country: null,
|
||||
max_ship_time: null,
|
||||
max_delivery_time: null,
|
||||
description: null,
|
||||
},
|
||||
],
|
||||
shipping_cost: '12.83',
|
||||
shipping_cost_currency: 'USD',
|
||||
shipping_method: 'USPS First Class Package',
|
||||
shop_app: 'Shippo',
|
||||
subtotal_price: '12.10',
|
||||
total_price: '24.93',
|
||||
total_tax: '0.00',
|
||||
currency: 'USD',
|
||||
transactions: [],
|
||||
weight: '0.40',
|
||||
weight_unit: 'lb',
|
||||
notes: null,
|
||||
},
|
||||
async test(context) {
|
||||
return await pollingHelper.test(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
async onEnable(context) {
|
||||
await pollingHelper.onEnable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
await pollingHelper.onDisable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
async run(context) {
|
||||
return await pollingHelper.poll(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,122 @@
|
||||
import {
|
||||
createTrigger,
|
||||
TriggerStrategy,
|
||||
PiecePropValueSchema,
|
||||
Property,
|
||||
AppConnectionValueForAuthProperty,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import dayjs from 'dayjs';
|
||||
import { shippoAuth } from '../auth';
|
||||
import { ShippoClient } from '../client';
|
||||
|
||||
const polling: Polling<
|
||||
AppConnectionValueForAuthProperty<typeof shippoAuth>,
|
||||
{ test_mode?: boolean }
|
||||
> = {
|
||||
strategy: DedupeStrategy.TIMEBASED,
|
||||
items: async ({ auth, propsValue, lastFetchEpochMS }) => {
|
||||
const client = new ShippoClient({
|
||||
apiToken: auth.secret_text,
|
||||
});
|
||||
|
||||
const result = await client.listShippingLabels({
|
||||
results_per_page: 100,
|
||||
});
|
||||
|
||||
let filteredLabels = result.results.filter((label) => {
|
||||
const labelTime = dayjs(label.object_created).valueOf();
|
||||
return labelTime > lastFetchEpochMS;
|
||||
});
|
||||
|
||||
if (!propsValue.test_mode) {
|
||||
filteredLabels = filteredLabels.filter(
|
||||
(label) => !label.test
|
||||
);
|
||||
}
|
||||
|
||||
return filteredLabels.map((label: any) => ({
|
||||
epochMilliSeconds: dayjs(label.object_created).valueOf(),
|
||||
data: label,
|
||||
}));
|
||||
},
|
||||
};
|
||||
|
||||
export const newShippingLabel = createTrigger({
|
||||
name: 'new_shipping_label',
|
||||
displayName: 'New Shipping Label',
|
||||
description: 'Trigger when a new shipping label is created',
|
||||
type: TriggerStrategy.POLLING,
|
||||
auth: shippoAuth,
|
||||
props: {
|
||||
test_mode: Property.Checkbox({
|
||||
displayName: 'Include Test Labels',
|
||||
description: 'Include test shipping labels in the trigger',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
sampleData: {
|
||||
commercial_invoice_url: 'string',
|
||||
created_by: {
|
||||
first_name: 'Shwan',
|
||||
last_name: 'Ippotle',
|
||||
username: 'shippotle@shippo.com',
|
||||
},
|
||||
eta: 'string',
|
||||
label_file_type: 'PDF_4x6',
|
||||
label_url:
|
||||
'https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA',
|
||||
messages: [],
|
||||
metadata: 'string',
|
||||
object_created: '2019-08-24T14:15:22Z',
|
||||
object_id: '915d94940ea54c3a80cbfa328722f5a1',
|
||||
object_owner: 'shippotle@shippo.com',
|
||||
object_state: 'VALID',
|
||||
object_updated: '2019-08-24T14:15:22Z',
|
||||
parcel: 'e94c7fdfdc7b495dbb390a28d929d90a',
|
||||
qr_code_url:
|
||||
'https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA',
|
||||
rate: {},
|
||||
status: 'SUCCESS',
|
||||
test: true,
|
||||
tracking_number: '9499907123456123456781',
|
||||
tracking_status: 'DELIVERED',
|
||||
tracking_url_provider:
|
||||
'https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781',
|
||||
},
|
||||
async test(context) {
|
||||
return await pollingHelper.test(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
async onEnable(context) {
|
||||
await pollingHelper.onEnable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
await pollingHelper.onDisable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
async run(context) {
|
||||
return await pollingHelper.poll(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user