PDF-inköpsorder ser “enkla” ut tills du sitter och skriver in artikelnummer manuellt, jagar saknade kundreferenser och rättar samma radfelsfel två gånger. Det är långsamt arbete, och det stjäl fokus från det som faktiskt driver intäkter.
Det här är den typen av röra som drabbar sales ops först, men e-handelschefer och byråteam som stöttar B2B-butiker känner av det också. Med automatisering av PDF-order kan du omvandla mailade inköpsorder till försäljningsorder i Adobe Commerce och bara granska avvikelserna.
Nedan ser du hur flödet körs, vad det förändrar i vardagen och vad du behöver för att implementera det utan att göra hela veckan till ett IT-projekt.
så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Gmail till Adobe Commerce: PDF-order blir kundorder
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Extract from File", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Create cart"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>On form submission"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Customer", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Quote Id", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>set Billing Address"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>estimate Shipping Methods"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>set Reference Number"]
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "set OpenAI", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>set Order Comment"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>get Payment Methods"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>check Companycredit"]
n13@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Extract from File1", pos: "b", h: 48 }
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>set Address"]
n16["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>get Configurable"]
n17@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If companyCredit", pos: "b", h: 48 }
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>set Express Shipping Method"]
n20@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n21["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>set Standard Shipping Method"]
n22@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Feedback", pos: "b", h: 48 }
n23@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Clean Articlenumber", pos: "b", h: 48 }
n24["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>get Cart Items"]
n25["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>remove From Shopping Cart"]
n26["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>get Cart Items1"]
n27["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>remove From Shopping Cart1"]
n28@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Default Address", pos: "b", h: 48 }
n29@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Feedback Default Address", pos: "b", h: 48 }
n30@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n31@{ icon: "mdi:cog", form: "rounded", label: "Extract from File2", pos: "b", h: 48 }
n32@{ icon: "mdi:location-exit", form: "rounded", label: "Stop and Error1", pos: "b", h: 48 }
n33@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n34@{ icon: "mdi:swap-vertical", form: "rounded", label: "Json error message", pos: "b", h: 48 }
n35@{ icon: "mdi:swap-vertical", form: "rounded", label: "Combine error fields", pos: "b", h: 48 }
n36@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing1", pos: "b", h: 48 }
n37@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set successfull message", pos: "b", h: 48 }
n38@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set empty email message", pos: "b", h: 48 }
n39@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set empty products message", pos: "b", h: 48 }
n40@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Products not empty", pos: "b", h: 48 }
n41@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Emails not empty", pos: "b", h: 48 }
n42@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Information", pos: "b", h: 48 }
n43@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Information 2", pos: "b", h: 48 }
n44@{ icon: "mdi:swap-vertical", form: "rounded", label: "Pay on account error message", pos: "b", h: 48 }
n45@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set empty PO number message", pos: "b", h: 48 }
n46@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If PO number not empty", pos: "b", h: 48 }
n47@{ icon: "mdi:swap-vertical", form: "rounded", label: "Vorgangsnummer", pos: "b", h: 48 }
n48@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing3", pos: "b", h: 48 }
n49@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Products", pos: "b", h: 48 }
n50["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code"]
n51@{ icon: "mdi:swap-vertical", form: "rounded", label: "get Products", pos: "b", h: 48 }
n52@{ icon: "mdi:cog", form: "rounded", label: "Execute Workflow", pos: "b", h: 48 }
n53@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n54["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge1"]
n55["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>place Order"]
n56["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>filter Emailadresses"]
n57["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>remove SCH"]
n58@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing4", pos: "b", h: 48 }
n59@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Feedback configurable", pos: "b", h: 48 }
n60["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>get Order by PO number"]
n61@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set empty PO number message1", pos: "b", h: 48 }
n62@{ icon: "mdi:swap-horizontal", form: "rounded", label: "IF PO number not exists", pos: "b", h: 48 }
n63@{ icon: "mdi:play-circle", form: "rounded", label: "Microsoft Outlook Trigger", pos: "b", h: 48 }
n64@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Text", pos: "b", h: 48 }
n65@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n66@{ icon: "mdi:cog", form: "rounded", label: "Move a message", pos: "b", h: 48 }
n67@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing2", pos: "b", h: 48 }
n68["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>get Customer"]
n69@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Customer", pos: "b", h: 48 }
n70@{ icon: "mdi:cog", form: "rounded", label: "Products", pos: "b", h: 48 }
n71@{ icon: "mdi:brain", form: "rounded", label: "Azure OpenAI Chat Model1", pos: "b", h: 48 }
n72@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop until existing customer..", pos: "b", h: 48 }
n73@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If configurable product found", pos: "b", h: 48 }
n74@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare sku & quote", pos: "b", h: 48 }
n75@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If product in cart", pos: "b", h: 48 }
n76@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop over products", pos: "b", h: 48 }
n77["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Combine processed skus"]
n78["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Combine failed skus"]
n79@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Feedback failed", pos: "b", h: 48 }
n80@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Feedback processed", pos: "b", h: 48 }
n81["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Combine feedback"]
n82@{ icon: "mdi:cog", form: "rounded", label: "Keep 1", pos: "b", h: 48 }
n83@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If express", pos: "b", h: 48 }
n84@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Emails", pos: "b", h: 48 }
n85@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Emails", pos: "b", h: 48 }
n86@{ icon: "mdi:cog", form: "rounded", label: "Email combine", pos: "b", h: 48 }
n87@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If developer", pos: "b", h: 48 }
n50 --> n31
n53 --> n76
n20 --> n83
n18 --> n73
n82 --> n36
n54 --> n75
n30 --> n47
n30 --> n57
n30 --> n70
n65 --> n8
n70 --> n46
n64 --> n86
n11 --> n5
n83 --> n21
n83 --> n19
n57 --> n70
n85 --> n84
n8 --> n56
n1 --> n4
n69 --> n3
n69 --> n72
n55 --> n66
n15 --> n28
n87 --> n55
n87 --> n26
n84 --> n72
n68 --> n69
n51 --> n49
n3 --> n15
n22 --> n36
n4 --> n24
n4 --> n51
n86 --> n50
n47 --> n70
n24 --> n25
n26 --> n27
n42 --> n33
n81 --> n82
n41 --> n40
n41 --> n38
n52 --> n53
n17 --> n87
n17 --> n44
n16 --> n18
n0 --> n43
n43 --> n33
n9 --> n10
n14 --> n43
n31 --> n42
n28 --> n1
n28 --> n29
n75 --> n77
n75 --> n11
n75 --> n78
n34 --> n32
n76 --> n54
n76 --> n52
n2 --> n0
n40 --> n30
n40 --> n39
n49 --> n23
n78 --> n79
n74 --> n76
n74 --> n54
n12 --> n17
n10 --> n12
n5 --> n6
n79 --> n81
n35 --> n34
n56 --> n41
n7 --> n9
n77 --> n80
n46 --> n60
n46 --> n45
n60 --> n62
n80 --> n81
n62 --> n85
n62 --> n61
n38 --> n48
n23 --> n18
n23 --> n16
n71 -.-> n65
n33 --> n65
n63 --> n64
n36 --> n35
n67 --> n22
n48 --> n35
n58 --> n81
n6 --> n20
n59 --> n58
n39 --> n48
n13 --> n14
n27 --> n37
n45 --> n48
n19 --> n7
n44 --> n35
n61 --> n48
n29 --> n36
n21 --> n7
n73 --> n74
n73 --> n59
n72 --> n67
n72 --> n68
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2,n13,n63 trigger
class n65 ai
class n71 aiModel
class n17,n28,n30,n40,n41,n46,n62,n69,n73,n75,n83,n87 decision
class n1,n5,n6,n7,n9,n10,n16,n19,n21,n24,n25,n26,n27,n55,n60,n68 api
class n12,n15,n50,n56,n57,n77,n78,n81 code
class n0 disabled
class n2 disabled
class n13 disabled
class n14 disabled
class n37 disabled
class n43 disabled
classDef customIcon fill:none,stroke:none
class n1,n2,n5,n6,n7,n9,n10,n12,n15,n16,n18,n19,n21,n24,n25,n26,n27,n50,n54,n55,n56,n57,n60,n68,n77,n78,n81 customIcon
utmaningen: att förvandla PDF-inköpsorder till korrekt formaterade ordrar
De flesta B2B-team tappar inte tid för att de inte kan skapa ordrar. De tappar tid för att varje mailad PDF-inköpsorder blir ett litet “projekt”. Någon laddar ner bilagan, läser raderna, kopierar artikelnummer till Adobe Commerce och inser sedan att kunden mailade från en annan adress än den som finns registrerad. Nu gissar du. Lägg till ett enda stavfel (artikelnummer, antal, pris, fraktmetod) så får du förseningar, kreditproblem och obekväma uppföljningar. Det är mentalt dyrt arbete, särskilt när du gör det hela dagen.
Det summerar snabbt. Här är var det vanligtvis faller isär.
- Folk skriver in rader från PDF:er manuellt, och en enda fel siffra blir ett lagerproblem senare.
- Kundvalidering är inkonsekvent, så “är det här rätt konto?” blir en återkommande minidiskussion.
- Ordrar fastnar i inkorgar under peak-timmar eftersom skapandet är för manuellt för att göras direkt.
- När något inte stämmer finns det ingen tydlig avvikelseväg, vilket gör att du granskar varje order som om den vore misstänkt.
lösningen: Gmail-PDF:er konverteras till ordrar i Adobe Commerce
Det här flödet bevakar en inkorg efter inkommande mail med PDF-inköpsorder, hämtar bilagan och extraherar orderdetaljerna du bryr dig om (artikelnummer, antal, kundreferens och relaterade fält baserat på din mall). Därefter validerar det avsändaren mot en befintlig kund i Adobe Commerce och kontrollerar att kunden är berättigad till Company Credit. Om allt matchar skapar flödet en försäljningsorder i Adobe Commerce (Magento 2) med Company Credit som betalningsmetod. När något inte matchar gissar det inte. I stället flaggar det ordern, loggar vad som gick fel och skickar den för manuell granskning så att du bara hanterar de knepiga.
Flödet startar med en e-posttrigger (Gmail, IMAP eller till och med en webhook-uppladdning om du föredrar det). Sedan tolkar det PDF:en, validerar kunden och skapar ordern via API-anrop till Adobe Commerce (HTTP-förfrågningar). Slutligen loggar det utfallet och kan notifiera teamet via kanaler som Telegram eller ett kalkylark ni redan använder för uppföljning.
vad som förändras: före vs. efter
| detta elimineras | effekt du kommer att märka |
|---|---|
|
|
effekt i verkligheten
Säg att du får 20 PDF-inköpsorder per vecka och att varje tar cirka 12 minuter att ladda ner, läsa, skriva in och dubbelkolla i Adobe Commerce. Det är runt 4 timmar adminjobb, och då förutsatt att inget går fel. Med det här flödet lägger du kanske 2 minuter på att kasta ett öga på flaggade avvikelser medan de korrekta ordrarna skapas av sig själva. Även om hälften av ordrarna behöver granskning i början, tar du ändå tillbaka några timmar i veckan, och “var är den där ordern?”-förseningarna minskar snabbt.
krav
- n8n-instans (testa n8n Cloud gratis)
- alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Gmail för att ta emot inköpsorder och trigga bearbetning.
- Adobe Commerce (Magento 2) för att skapa försäljningsorder via API.
- Adobe Commerce API-inloggning (skapa en integration i Adobe Commerce-admin)
svårighetsgrad: Medel. Du kopplar konton, lägger in behörigheter och finjusterar PDF-tolkningen så att den matchar din mall.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
flödets steg
Ett mail med en PDF-inköpsorder kommer in. Flödet bevakar din inkorg (Gmail-trigger, IMAP e-posttrigger eller en webhook om inköpsorder kommer via en portaluppladdning). Det letar specifikt efter PDF-bilagor så att slumpmässiga trådar inte dras in.
PDF:en extraheras och tolkas. n8n laddar ner bilagan och ett PDF-tolkningssteg läser dokumentet och mappar det till strukturerade fält som kundreferens, artikelnummer och antal. Om du använder OpenAI i din version kan AI-steget hjälpa till att normalisera stökiga layouter, men du styr fortfarande vad som “räknas” som en giltig orderrad.
Kund- och betalningsregler valideras. Flödet kontrollerar avsändaren mot en befintlig kund i Adobe Commerce och verifierar behörighet för Company Credit. Om kunden inte finns eller inte får använda Company Credit går det till en avvikelseväg i stället för att skapa en riskfylld order.
En order skapas (eller flaggas). När valideringen går igenom skapar HTTP-förfrågningar en försäljningsorder i Adobe Commerce med de extraherade produkterna och mängderna. När valideringen misslyckas loggas detaljer (ofta till Google Sheets) och en notifiering kan skickas till en kanal som Telegram för snabb uppföljning.
Du kan enkelt ändra betalningsmetod från Company Credit till Purchase Order eller Bank Transfer beroende på behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
saker att se upp med
- Adobe Commerce API-inloggning kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera, kontrollera först inställningarna för Adobe Commerce Integration (och integreringsanvändarens roll).
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om noder längre ned fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att sitta och redigera utdata för alltid.
vanliga frågor
Oftast på en eftermiddag om din Adobe Commerce API-åtkomst är klar.
Ja, men du vill ha någon som är bekväm med systeminställningar vid första uppsättningen. Den enda “pilliga” delen är att anpassa PDF-tolkningen så att den matchar din PO-layout.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-kostnader om du använder AI-extraktion, vilket vanligtvis är några cent per dokument.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger obegränsade körningar men kräver grundläggande serverhantering.
Du kan byta e-posttrigger (Gmail, IMAP eller Webhook) utan att ändra resten av logiken. De flesta anpassningar sker i steget för PDF-tolkning (fältmappning, identifiering av orderrader) och i kontrollerna för “validera kund”, så att dina regler matchar hur dina B2B-konton faktiskt fungerar. Om du inte använder Company Credit, ändra betalningsmetodfälten i HTTP-förfrågningarna som skapar order i Adobe Commerce. Många team lägger också till en Google Sheets-logg för varje körning och skickar sedan bara Telegram-notiser vid avvikelser.
Oftast handlar det om utgångna uppgifter eller en integreringsanvändare som tappat behörigheter. Skapa om Adobe Commerce API-tokens, uppdatera dem i n8n och bekräfta att integrationsrollen kan skapa ordrar och läsa kunder. Om felen bara uppstår vid hög volym kan det också vara rate limiting eller timeouts, så att sprida ut förfrågningar lite (eller batcha) hjälper.
Med n8n Cloud Starter kan du köra tusentals körningar per månad, vilket räcker för de flesta B2B-inkorgsvolymer.
Ofta, ja, eftersom PDF-till-order-flöden behöver grenlogik, omförsök och avvikelsevägar som blir klumpiga (och dyra) i enklare verktyg. n8n är också enklare att köra i egen drift, vilket spelar roll när varje inköpsorder triggar flera steg och du inte vill räkna uppgifter hela dagen. En annan praktisk fördel: att jobba med råa HTTP-förfrågningar ger dig full kontroll över Adobe Commerce-endpoints, vilket betyder färre connector-begränsningar. Zapier eller Make kan fortfarande fungera om dina PDF:er är helt konsekventa och dina valideringsregler är lätta. Om du är osäker, prata med en automationsexpert och få en snabb rekommendation.
När detta väl rullar slutar korrekt formaterade PDF-inköpsorder vara “jobb” och blir i stället indata. Du granskar det som avviker, godkänner och går vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.