Magento 2 node - Needs more fields for updating products

My use case:

I’m trying to keep a Wordpress store & Magento 2 store in sync with regards to some product data, however the current M2 node is extremely limited on what fields it can update.

Curranty only the following fields are supported:

  • Name
  • Price
  • Weight
  • Status
  • Visability
  • Type Set
  • Attribute Set

Fields I would like to see added:

  • Description
  • Short Description (short_description)
  • Qty or Default Stock
  • Sale price (special_price)

and/or the ability to set arbitrary custom attributes (Both WooCommerce & Magento support these).

I have this workflow working well in Integromat/Make, however at 4-6 “operations” per update, and several updates per hour, it will get expensive over there very quickly.

Are you willing to work on this?

I believe I lack the relevant skills to assist directly.

I am also interested in the development of this node.
I already have two nodes currently under development but Magento is next on the list.
I learn on the job, I am not a developer by training, but responsible for my company, if there is no more development by then, we can both see how to move forward.
I come back here asap

It looks like there’s a section for handling custom attributes here: n8n/GenericFunctions.ts at master · n8n-io/n8n · GitHub about line 748 or so.

however they are commented out, and editing nodes is a bit above my skill level at the moment, however looking over the other pre-baked fields, it looks like extending it with some custom ones wouldn’t be very difficult.

Now I’m running into this issue. after working a handful of times in testing now i get this error:

{"message":"400 - {\"message\":\"Specified request cannot be processed.\"}","name":"Error","stack":"Error: Request failed with status code 400\n    at createError (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/createError.js:16:15)\n    at settle (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/settle.js:17:12)\n    at IncomingMessage.handleStreamEnd (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/adapters/http.js:269:11)\n    at IncomingMessage.emit (node:events:538:35)\n    at endReadableNT (node:internal/streams/readable:1345:12)\n    at processTicksAndRejections (node:internal/process/task_queues:83:21)"}