{ "active": false, "connections": { "HTTP Request1": { "main": [ [ { "node": "Split Response Into Orders", "type": "main", "index": 0 } ] ] }, "Schedule Trigger": { "main": [ [ { "node": "HTTP Request1", "type": "main", "index": 0 } ] ] }, "Split Response Into Orders": { "main": [ [ { "node": "Upsert Customer", "type": "main", "index": 0 }, { "node": "Merge", "type": "main", "index": 1 } ] ] }, "Postgres": { "main": [ [ { "node": "Merge1", "type": "main", "index": 0 } ] ] }, "Crypto": { "main": [ [ { "node": "Code", "type": "main", "index": 0 } ] ] }, "Upsert Customer": { "main": [ [ { "node": "Merge", "type": "main", "index": 0 } ] ] }, "Merge": { "main": [ [ { "node": "Crypto", "type": "main", "index": 0 } ] ] }, "Code": { "main": [ [ { "node": "Postgres", "type": "main", "index": 0 }, { "node": "Merge1", "type": "main", "index": 1 } ] ] }, "Merge1": { "main": [ [ { "node": "Item Lists", "type": "main", "index": 0 } ] ] }, "Item Lists": { "main": [ [ { "node": "IF1", "type": "main", "index": 0 } ] ] }, "Code1": { "main": [ [ { "node": "Postgres2", "type": "main", "index": 0 } ] ] }, "Postgres2": { "main": [ [ { "node": "IF", "type": "main", "index": 0 } ] ] }, "IF1": { "main": [ [ { "node": "Code2", "type": "main", "index": 0 } ], [ { "node": "Code1", "type": "main", "index": 0 } ] ] }, "Code2": { "main": [ [ { "node": "Baserow", "type": "main", "index": 0 }, { "node": "Merge2", "type": "main", "index": 1 } ] ] }, "Baserow": { "main": [ [ { "node": "Merge2", "type": "main", "index": 0 } ] ] } }, "createdAt": "2023-12-11T17:25:14.909Z", "id": "55eZFqIMkqfMEtaC", "meta": null, "name": "Billbee Aufträge -> Data Warehouse", "nodes": [ { "parameters": { "url": "https://app.billbee.io/api/v1/orders", "authentication": "genericCredentialType", "genericAuthType": "httpBasicAuth", "sendQuery": true, "queryParameters": { "parameters": [ { "name": "minOrderDate", "value": "={{ $today.minus(1 $day) }}" }, { "name": "pageSize", "value": "250" } ] }, "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "X-Billbee-Api-Key", "value": "2855BE2C-1D67-4AB0-9DEB-3073E6D27B1C" } ] }, "options": {} }, "id": "34781fe0-a66e-43a6-a616-45a1ad27f2e8", "name": "HTTP Request1", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.1, "position": [ -260, -1340 ], "credentials": { "httpBasicAuth": { "id": "xANPcw3p1Nh0wF9J", "name": "Billbee Basic" } } }, { "parameters": { "rule": { "interval": [ { "triggerAtMinute": 5 } ] } }, "id": "28e8e58e-aea3-4c88-b174-7f4a51c425bd", "name": "Schedule Trigger", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [ -520, -1340 ] }, { "parameters": { "schema": { "__rl": true, "mode": "list", "value": "public" }, "table": { "__rl": true, "value": "fact_order_details", "mode": "list", "cachedResultName": "fact_order_details" }, "columns": { "mappingMode": "defineBelow", "value": { "product_id": "={{ $json.Product.EAN }}", "quantity": "={{ $json.Quantity }}", "price_each": "={{ $json.TotalPrice / $json.Quantity}}", "order_detail_id": 0, "order_id": 0 }, "matchingColumns": [], "schema": [ { "id": "order_detail_id", "displayName": "order_detail_id", "required": false, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true }, { "id": "order_id", "displayName": "order_id", "required": true, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true }, { "id": "product_id", "displayName": "product_id", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "quantity", "displayName": "quantity", "required": true, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true }, { "id": "price_each", "displayName": "price_each", "required": true, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true } ] }, "options": {} }, "id": "dab64316-4942-4207-b75a-dcd78704ab05", "name": "Postgres1", "type": "n8n-nodes-base.postgres", "typeVersion": 2.3, "position": [ 2600, -1580 ], "credentials": { "postgres": { "id": "JW5wwsSY4obQbCBb", "name": "Postgres - warehouse" } } }, { "parameters": { "operation": "upsert", "schema": { "__rl": true, "mode": "list", "value": "public" }, "table": { "__rl": true, "value": "dim_customers", "mode": "list", "cachedResultName": "dim_customers" }, "columns": { "mappingMode": "defineBelow", "value": { "customer_id": "={{ $json.Customer.Number }}", "customer_country": "={{ $json.ShippingAddress.CountryISO2 }}" }, "matchingColumns": [ "customer_id" ], "schema": [ { "id": "customer_id", "displayName": "customer_id", "required": false, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true, "removed": false }, { "id": "customer_country", "displayName": "customer_country", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": false } ] }, "options": {} }, "id": "6bd22bb9-e978-436e-bfa0-5f7579dec8d0", "name": "Upsert Customer", "type": "n8n-nodes-base.postgres", "typeVersion": 2.3, "position": [ 300, -1480 ], "credentials": { "postgres": { "id": "JW5wwsSY4obQbCBb", "name": "Postgres - warehouse" } } }, { "parameters": { "conditions": { "boolean": [ { "value1": "={{ $json }} {{ $json.product_ean }}", "operation": "notEqual", "value2": "={{ null }}" } ] } }, "id": "7991fd99-8f2d-4911-bc42-98b1c78269b3", "name": "IF", "type": "n8n-nodes-base.if", "typeVersion": 1, "position": [ 2540, -1280 ] }, { "parameters": { "fieldToSplitOut": "Data", "options": {} }, "id": "f951938c-ca90-4f33-9dce-099084407196", "name": "Split Response Into Orders", "type": "n8n-nodes-base.itemLists", "typeVersion": 3, "position": [ 40, -1480 ] }, { "parameters": { "operation": "upsert", "schema": { "__rl": true, "value": "public", "mode": "list", "cachedResultName": "public" }, "table": { "__rl": true, "value": "dim_orders", "mode": "list", "cachedResultName": "dim_orders" }, "columns": { "mappingMode": "defineBelow", "value": { "order_id": "={{ $json.order_hash }}", "platform_id": "={{ $json.platform }}", "customer_id": "={{ $json.Customer.Number }}", "order_date": "={{ $json.CreatedAt.toDate().format(\"yyyyMMdd\") }}", "order_ref": "={{ $json.OrderNumber }}" }, "matchingColumns": [ "order_id" ], "schema": [ { "id": "order_ref", "displayName": "order_ref", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": false }, { "id": "order_date", "displayName": "order_date", "required": true, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": false }, { "id": "customer_id", "displayName": "customer_id", "required": true, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": false }, { "id": "platform_id", "displayName": "platform_id", "required": false, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": false }, { "id": "order_id", "displayName": "order_id", "required": true, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false } ] }, "options": {} }, "id": "716963ce-227c-470b-83d5-85c4af9442f3", "name": "Postgres", "type": "n8n-nodes-base.postgres", "typeVersion": 2.3, "position": [ 1120, -1320 ], "credentials": { "postgres": { "id": "JW5wwsSY4obQbCBb", "name": "Postgres - warehouse" } } }, { "parameters": { "value": "={{ $json.OrderNumber.concat($json.CreatedAt.toDate().format(\"yyyy-MM-d\")) }}", "dataPropertyName": "=order_hash" }, "id": "67fd82c6-055a-41d7-bc5e-ca727b0f9777", "name": "Crypto", "type": "n8n-nodes-base.crypto", "typeVersion": 1, "position": [ 700, -1320 ] }, { "parameters": { "mode": "chooseBranch", "output": "input2" }, "id": "8490a7f7-6f11-487b-8f81-4c97f56c638b", "name": "Merge", "type": "n8n-nodes-base.merge", "typeVersion": 2.1, "position": [ 500, -1320 ] }, { "parameters": { "language": "python", "pythonCode": "# Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor item in _input.all():\n\tmatch item.json.Seller.BillbeeShopName:\n\t\tcase 'eBay':\n item.json.platform = 12\n\t\tcase 'lana-kk':\n item.json.platform = 1\n\t\tcase 'Amazon':\n item.json.platform = 2\n\t\tcase 'Weltkarten24':\n item.json.platform = 3\n\t\tcase 'KAUFLAND':\n item.json.platform = 5\n\t\tcase 'Wayfair':\n item.json.platform = 4\n\t\tcase 'Böttcher AG':\n item.json.platform = 7\n\t\tcase 'Juramondo':\n item.json.platform = 9\n\t\tcase 'wild.lanakk.com':\n item.json.platform = 8\n\t\tcase 'Etsy':\n item.json.platform = 10\n\t\tcase 'Otto':\n item.json.platform = 6\n\t\tcase 'weltkarte-kinder':\n item.json.platform = 11\n\t\tcase _:\n item.json.platform = 1\nreturn _input.all()\n" }, "id": "2006b054-3147-4f8a-b8d1-6ce19554dfde", "name": "Code", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 920, -1320 ] }, { "parameters": { "mode": "chooseBranch", "output": "input2" }, "id": "5d30f116-d392-4a34-9977-c9cb1bcaae07", "name": "Merge1", "type": "n8n-nodes-base.merge", "typeVersion": 2.1, "position": [ 1300, -1100 ] }, { "parameters": { "fieldToSplitOut": "OrderItems", "include": "selectedOtherFields", "fieldsToInclude": "order_hash", "options": {} }, "id": "dc3a5418-691f-42a9-b09f-bb4c9d0e2155", "name": "Item Lists", "type": "n8n-nodes-base.itemLists", "typeVersion": 3, "position": [ 1520, -1100 ] }, { "parameters": { "language": "python", "pythonCode": "# Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor item in _input.all():\n if item.json.OrderItems.Product.EAN is None:\n print(\"hoho\")\n item.json.OrderItems.Product.EAN = \"9999999999999\"\n item.json.OrderItems.Product.order_detail_sku = item.json.OrderItems.Product.SKU\nreturn _input.all()\n" }, "id": "2b2f4265-e3af-444e-81d6-61c976ead182", "name": "Code1", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 2040, -1120 ] }, { "parameters": { "operation": "select", "schema": { "__rl": true, "mode": "list", "value": "public" }, "table": { "__rl": true, "value": "dim_products", "mode": "list", "cachedResultName": "dim_products" }, "limit": 1, "where": { "values": [ { "column": "product_ean", "value": "={{ $json.OrderItems.Product.EAN }}" } ] }, "options": {} }, "id": "54832aff-c8aa-476e-89ce-762f1d037ed3", "name": "Postgres2", "type": "n8n-nodes-base.postgres", "typeVersion": 2.3, "position": [ 2180, -1100 ], "alwaysOutputData": true, "credentials": { "postgres": { "id": "JW5wwsSY4obQbCBb", "name": "Postgres - warehouse" } } }, { "parameters": { "databaseId": 104, "tableId": 526, "limit": 1, "additionalOptions": { "filters": { "fields": [ { "field": 4229, "value": "={{ $json.OrderItems.Product.SKU }}" } ] } } }, "id": "6cbb5ce8-550a-4b3c-b87f-3f1d1a3a7f02", "name": "Baserow", "type": "n8n-nodes-base.baserow", "typeVersion": 1, "position": [ 2140, -1700 ], "alwaysOutputData": true, "credentials": { "baserowApi": { "id": "j10WQMd09rnsjW3T", "name": "Baserow account" } } }, { "parameters": { "conditions": { "boolean": [ { "value1": "={{ $json.OrderItems.Product.EAN }}", "value2": "={{ null }}" }, { "value1": "={{ $json.OrderItems.Product.SKU }}", "operation": "notEqual", "value2": "={{ null }}" } ] } }, "id": "8f0d7af7-8f64-45c9-8bf7-9c13b7f71991", "name": "IF1", "type": "n8n-nodes-base.if", "typeVersion": 1, "position": [ 1720, -1280 ] }, { "parameters": { "language": "python", "pythonCode": "# Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor item in _input.all():\n product = item.json.OrderItems.Product\n if product and product.get('SKU'):\n print('hey')\n # Correct old SKU schema\n product.SKU = product.SKU.replace('worldmap','wm')\n product.SKU = product.SKU.replace('weltkarte','wk')\n # Correct very old Amazon SKUs\n product.SKU = product.SKU.replace('kork_M1','-de-kork-l_120x80-1-S')\n product.SKU = product.SKU.replace('kork_S','-de-kork-l_100x70-1-S')\nreturn _input.all()" }, "id": "d49cb597-20e6-4580-8a14-6c876eefa24a", "name": "Code2", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1860, -1520 ] }, { "parameters": { "mode": "combine", "mergeByFields": { "values": [ { "field1": "['SKU (Text)']", "field2": "OrderItems.Product.SKU" } ] }, "joinMode": "enrichInput2", "options": {} }, "id": "bd3d3873-ac13-4d0d-97d3-97a7feb867b6", "name": "Merge2", "type": "n8n-nodes-base.merge", "typeVersion": 2.1, "position": [ 2180, -1360 ] } ], "pinData": {}, "settings": { "executionOrder": "v1" }, "staticData": null, "tags": [], "triggerCount": 0, "updatedAt": "2023-12-18T19:09:43.000Z", "versionId": "b828beea-9c8a-43fd-97b6-f3ad61c8fb22" }