Har du någonsin undrat vilka steg beställningarna faktiskt tar via Prime Penguin till din logistikleverantör? Och varför de stegen ser ut som de gör? Det är här vi försöker reda ut de batcher som styr nästan all datasynkronisering som Prime Penguin gör.
Eftersom orderflödet är det mest komplicerade vi kommer att hantera, och även det viktigaste, är detta vad vi kommer att använda i den här artikeln. Men observera att all datasynkronisering i Prime Penguin troligen kommer att vara batchad, så det gäller även produkter, inköpsorder, returer, leverantörer etc.
Översikt
Det Prime Penguin gör är, i sin mest grundläggande form, att synkronisera data ("state") mellan flera system, dina försäljningskanaler, ditt affärssystem, dina logistikleverantörer.
Staten är helvetet - Ken Arnold
I synnerhet är distribuerat tillstånd mellan flera system ett ännu större helvete, om det nu är möjligt. Vi behöver inte ta upp "problemet med de två generalerna" eller "distribuerade transaktioner" i den här artikeln, utan bara konstatera att det är förvånansvärt svårt att hålla data synkroniserade mellan olika system.
Prime Penguin försöker vara praktiska kommer vi att läsa data i satser med schemalagda intervall, och vi kommer att skriva data i satser med schemalagda intervall. Och däremellan kommer data att vila i Prime Penguin. Detta har fördelen att det fungerar i nästan alla system och är effektivt för stora datamängder, men det kommer att medföra timingproblem och kan vara besvärligt att sätta sig in i.
Åh ja, intervallet mellan de schemalagda satserna kan variera beroende på försäljningskanal. Och om du har "utvecklingsstöd" hos oss kan vi också ha anpassat intervallet för dig. Bara för att komplicera saker ytterligare.
Orderflödet
1) Läsning från försäljningskanalen
I allmänhet kommer Prime Penguin att läsa order från försäljningskanalen (eller ERP) var 30:e minut. Vi kommer också att använda filter för att försöka avgöra vilka order som är berättigade att hämtas och vad vi behöver göra med dem.
För de flesta försäljningskanaler innebär det att alla ordrar läses, men med ett filter som anger "om de ändrats sedan". Detta ger oss inte bara order som har redigerats, utan även nya order som har skapats. Om försäljningskanalen inte stöder det här filtret får vi försöka läsa ordrar från en viss period bakåt i tiden, men det är mindre tillförlitligt och vi försöker undvika det.
Så..:
- Läs alla order som har skapats eller ändrats sedan den senaste synkroniseringen
- För varje ny order, använd filter för att säkerställa att den är i ett sådant skick att vi kan hämta den
2) Lagra order från försäljningskanalen
Nya order kommer att skapas i Prime Penguin och befintliga order kommer att uppdateras - om möjligt. Ordern kommer att lagras i ett gemensamt "Prime Penguin -format" (se "Fältmappning" nedan). Här är vårt första problem:
- Beställningarna kommer inte omedelbart att vidarebefordras till deras logistikleverantörer
3) Skriv order till logistikleverantören
En ny order skapas, och ändringar görs om möjligt, hos logistikleverantören enligt den aktuella orderrutinen. Detta görs i allmänhet en gång per timme - men detta kan variera mellan olika logistikleverantörer. Ordern kommer att ha ett annat format i logistikleverantörens system (se "Fältmappning" nedan). Här är nästa par problem:
- Det är inte alla logistikleverantörer som omedelbart bekräftar ordern, så det kan ta ett tag innan ordern uppdateras i Prime Penguin för att visa att den nu är PENDING på lagret.
- Även om orderstatusen omedelbart uppdateras av logistikleverantören kommer den inte att synas omedelbart i försäljningskanalen.
4) Läsa och lagra orderuppdateringar från logistikleverantören
Vid ett senare tillfälle kommer logistikleverantören att plocka, packa och skicka ordern, vilket uppdaterar orderstatusen i logistikleverantörens system.