Hello,
Assuming you have only two items, you can come up with something like this using a function node, It might not be the best way to do it, but you can give it a try I guess !
(For my method to work you'll need to have differents topics name on your messages to be able to differentiate them, and also I deleted my previous post cause I made a mistake)
[{"id":"a877e7f86dc43baa","type":"inject","z":"4649623030b5e549","name":"","props":[{"p":"payload.line_items","v":"[{\"item1\":\"item1\"}]","vt":"json"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"item1","x":310,"y":1000,"wires":[["96c64f3e38f8254a"]]},{"id":"f0ad6519098139b0","type":"inject","z":"4649623030b5e549","name":"","props":[{"p":"payload.line_items","v":"[{\"item2\":\"item2\"}]","vt":"json"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"item2","x":310,"y":1060,"wires":[["96c64f3e38f8254a"]]},{"id":"5416325db8307a6f","type":"debug","z":"4649623030b5e549","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":710,"y":1040,"wires":[]},{"id":"96c64f3e38f8254a","type":"function","z":"4649623030b5e549","name":"","func":"var local_msg = RED.util.cloneMessage(msg);\nflow.set(local_msg.topic, local_msg);\n\nvar item1 = flow.get(\"item1\") || \"\";\nvar item2 = flow.get(\"item2\") || \"\";\n\nvar new_item = {};\nnew_item.payload = {};\nnew_item.payload.line_items = [];\n\nif(item1.topic === \"item1\" && item2.topic === \"item2\"){\n new_item.payload.line_items.push(item1.payload.line_items[0])\n new_item.payload.line_items.push(item2.payload.line_items[0])\n\n return new_item;\n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1040,"wires":[["5416325db8307a6f"]]}]