{
  "id": "jDO3Mna9FMs6rTdJ",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Remove background from WooCommerce product images",
  "tags": [],
  "nodes": [
    {
      "id": "7b97db40-96b7-4f7d-a26f-14e2416d4730",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -620,
        100
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b1a25e04-37e1-425e-b146-090a8f49e43f",
      "name": "Remove from Image URL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        360,
        120
      ],
      "parameters": {
        "url": "https://api.backgroundcut.co/v2/cut/",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image_file_url",
              "value": "={{ $json.image_url }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "383e0206-3cbe-4d4c-9e01-6ca857d3092b",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -620,
        -180
      ],
      "parameters": {
        "width": 720,
        "height": 180,
        "content": "## PRELIMINARY STEP\n- Clone [this Sheet](https://docs.google.com/spreadsheets/d/1DxiZTvam_4oHHnZVBj_3K3pmWRld8T7l2v_DMuGsqss/edit?usp=sharing) and set the columns ID and IMAGE\n- Get API_KEY from [BackgroundCut.co](https://backgroundcut.co)\n- Set Header Auth in \"Remove from Image URL\" node (Name: Authorization - Value: API_KEY)\n- Get WooCommerce API and set it in \"Update product\" node\n- Set YOUR_FTP_URL in the node \"New Image Url\""
      },
      "typeVersion": 1
    },
    {
      "id": "0591f51b-4ac3-4613-b78f-8fcafd0a5893",
      "name": "FTP",
      "type": "n8n-nodes-base.ftp",
      "position": [
        920,
        120
      ],
      "parameters": {
        "path": "=/test/{{ $json.fileName }}",
        "operation": "upload"
      },
      "credentials": {
        "ftp": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ca4a2fd6-cf8d-4dac-860d-f890ed482029",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -180,
        100
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "cbcb21e3-9d5c-482f-b630-6fb693a32491",
      "name": "Get Filename",
      "type": "n8n-nodes-base.code",
      "position": [
        640,
        120
      ],
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'fileName' to the JSON of each one\nfor (const item of $input.all()) {\n  const url = item.json.image_url;\n  const fileName = url.split('/').pop(); // Estrae l'ultima parte dell'URL\n  item.json.fileName = fileName;\n}\n\nreturn $input.all();\n"
      },
      "typeVersion": 2
    },
    {
      "id": "0604040e-b6bb-444c-ba17-3b776a388826",
      "name": "New Image Url",
      "type": "n8n-nodes-base.set",
      "position": [
        360,
        380
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0a6e53bf-3d3d-42b3-a08f-b7d2329a987b",
              "name": "image_url",
              "type": "string",
              "value": "=https://YOUR_FTP_URL/{{ $json.fileName }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d3fd2786-7218-4b60-a287-3fdf5621df0a",
      "name": "Update product",
      "type": "n8n-nodes-base.wooCommerce",
      "position": [
        640,
        380
      ],
      "parameters": {
        "imagesUi": {
          "imagesValues": [
            {
              "alt": "",
              "src": "={{ $json.image_url }}",
              "name": ""
            }
          ]
        },
        "resource": "product",
        "operation": "update",
        "productId": "={{ $('Set Product Fields').item.json.ID }}",
        "metadataUi": {},
        "dimensionsUi": {},
        "updateFields": {}
      },
      "credentials": {
        "wooCommerceApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4b5b75d1-2d7b-418b-938a-4f75c0ed84ea",
      "name": "Set Product Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        100,
        120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7510c8a8-77e4-4985-a83e-eb313c8b3da9",
              "name": "image_url",
              "type": "string",
              "value": "={{ $json.IMAGE }}"
            },
            {
              "id": "ed48e2f6-8423-4317-a746-b6dfa22c7f7c",
              "name": "product_id",
              "type": "string",
              "value": "={{ $json.ID }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "a5056024-b941-4078-a859-8e83dc0a28a5",
      "name": "Ger Products",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -400,
        100
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "DONE"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DxiZTvam_4oHHnZVBj_3K3pmWRld8T7l2v_DMuGsqss/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1DxiZTvam_4oHHnZVBj_3K3pmWRld8T7l2v_DMuGsqss",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DxiZTvam_4oHHnZVBj_3K3pmWRld8T7l2v_DMuGsqss/edit?usp=drivesdk",
          "cachedResultName": "BackgroundCut WooCommerce products"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "badead5e-2ce6-4b21-a859-ebc6af0110ae",
      "name": "Update Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        920,
        380
      ],
      "parameters": {
        "columns": {
          "value": {
            "DONE": "x",
            "NEW IMAGE": "={{ $('New Image Url').item.json.image_url }}",
            "row_number": "={{ $('Set Product Fields').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "IMAGE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "NEW IMAGE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "NEW IMAGE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "DONE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "DONE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DxiZTvam_4oHHnZVBj_3K3pmWRld8T7l2v_DMuGsqss/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1DxiZTvam_4oHHnZVBj_3K3pmWRld8T7l2v_DMuGsqss",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DxiZTvam_4oHHnZVBj_3K3pmWRld8T7l2v_DMuGsqss/edit?usp=drivesdk",
          "cachedResultName": "BackgroundCut WooCommerce products"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "b7752651-e5b0-4202-9647-c68dc86ffaa3",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -620,
        -480
      ],
      "parameters": {
        "color": 3,
        "width": 720,
        "height": 260,
        "content": "# Remove background from WooCommerce product images\nThis workflow automates the process of removing backgrounds from WooCommerce product images using the BackgroundCut API, and then updates the product images in both WooCommerce and a Google Sheet.\n\nOnce set up, the workflow processes product images in bulk, removing backgrounds and updating WooCommerce seamlessly."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d8ae8235-9079-4d57-9999-24cde0c4ca77",
  "connections": {
    "FTP": {
      "main": [
        [
          {
            "node": "New Image Url",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ger Products": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Filename": {
      "main": [
        [
          {
            "node": "FTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "New Image Url": {
      "main": [
        [
          {
            "node": "Update product",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update product": {
      "main": [
        [
          {
            "node": "Update Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Set Product Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Product Fields": {
      "main": [
        [
          {
            "node": "Remove from Image URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove from Image URL": {
      "main": [
        [
          {
            "node": "Get Filename",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Ger Products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}