AFAS - Virtuemart
Technische documentatie

Redundant uitgevoerd

De middleware servers voor het APIcenter zijn redundant in meerdere datacenters.

AVG proof

Alle logs worden een maximale termijn opgeslagen en kunnen desgewenst verwijderd of niet opgeslagen worden.

Toegang tot APIcenter

Je hebt toegang tot ons APIcenter om de status van de koppeling te monitoren

Technische informatie

In deze documentatie wordt beschreven wat de koppeling tussen Virtuemart en AFAS inhoudt, welke gegevens worden uitgewisseld en hoe dit tot stand komt. In de basis is de koppeling zelf een tussenlaag, welke met behulp van instellingen en parameters, verzoeken doet aan zowel AFAS als Virtuemart voor bepaalde informatie. De koppeling slaat daarbij zelf geen informatie op, deze wordt alleen verwerkt, voornamelijk relevant in verband met de AVG wetgeving.

Instelling verbinding

Informatie uit AFAS verkrijgen gaat met behulp van connectoren. In de connectoren wordt bepaald welke velden worden uitgelezen om vervolgens te kunnen verzenden naar de Virtuemart installatie. De koppeling maakt gebruik van de volgende connectoren, waarbij de connectoren met een extra suffix, kopieën zijn van standaard connectoren met extra velden:

  • Profit_Article_Basic_App
  • Profit_ArticleGroups_VirtueMart
  • Profit_Debtor_App
  • Profit_Deliveryaddress
  • Profit_OrgPer_App
  • KnOrganisation (update)
  • KnPerson (update)
  • FbSales (update)
  • KnSalesRelationOrg (update)
  • KnSalesRelationPer (update)


Hoe deze connectoren zijn opgebouwd wordt uitgebreid besproken bij de documentatie van de verschillende functionaliteiten.

Informatie vanuit Virtuemart wordt verkregen via de API. Hiervoor dient in de admin permissie voor ingesteld zijn. Op basis van een token wordt het mogelijk om verzoeken te doen voor informatie.

Zodra beide verbindingen tot stand zijn gekomen worden deze configuratie opgeslagen op het Dashboard. Dit wordt aangeduid met “APIcenter”. Deze tussenlaag verwerkt alle aanvragen of verzendingen van informatie. Afhankelijk van de gekozen oplossing zijn op het dashboard ook de overige instellingen terug te vinden.

Functionaliteiten

De koppeling bestaat uit 4 onderdelen/modules. Dit zijn;

  • het exporteren van bestellingen
  • het importeren van producten
  • het importeren van klanten
  • het synchroniseren van voorraad.

Daarbij is het financiële systeem AFAS altijd leidend, met uitzondering van de bestellingen. Deze komen binnen op Virtuemart.

Exporteren van Bestellingen

Zodra in Virtuemart een bestelling binnenkomt wordt de bestelling naar AFAS gestuurd. Periodiek wordt er via een cronjob gecheckt of er nieuwe bestellingen zijn binnengekomen. De gemiddelde snelheid van het verwerken van bestellingen bedraagt 10 bestellingen per 15-30 minuten. Als de server van Virtuemart snel genoeg is kan dit opgeschaald worden naar een maximum van 10 bestellingen per 5 minuten. Hieronder een opsomming van de belangrijkste functionaliteiten.

  • Periodieke controle op nieuwe bestellingen via een cronjob.
  • Bestellingen kunnen naar AFAS gestuurd worden als verkooporder of als verkoopfactuur.
  • Producten dienen in AFAS aanwezig te zijn. Match wordt gemaakt met SKU / Artikelnummer. Deze worden als orderregels toegevoegd aan de verkooporder.
  • BTW instellingen worden veelal intern door AFAS geregeld. Alleen de Virtuemart  instelling inclusief/exclusief kan van invloed zijn.
  • Kortingen worden vanuit Magento op de verkooporder meegenomen, de kortingen hoeven niet in AFAS bekend te zijn. (Bijv. bij Kort-daagse kortingsacties). Prijzen op de bestelling van Virtuemart zijn leidend en worden door AFAS overgenomen.
  • Bij sprake van verzendkosten worden deze kosten op een product in AFAS geboekt. Het SKU van dit Verzend product kan worden ingesteld  op het dashboard. Ook hier is het bedrag vanuit Virtuemart leidend.
  • De klant die de bestelling plaatst wordt aan de hand van het emailadres gematched in AFAS. Als de debiteur al bestaat wordt de verkooporder hieraan toegewezen, zo niet, word er een nieuwe debiteur aangemaakt met de bekende gegevens.
  • Ondersteuning voor zowel factuur- als verzendadres.

Ondersteuning voor filteren op status bestelling (Bijv. alleen betaalde bestelling naar AFAS)

Importeren van producten:

Ook de producten worden geïmporteerd op basis van een periodiek proces. Afhankelijk van de server is de gemiddelde import snelheid rond de 250 producten per uur. De initiële import is dan ook een tijdrovend proces. Echter zodra dit voltooid is, worden alleen producten bijgewerkt die recentelijk zijn gewijzigd of recentelijk zijn toegevoegd. Bij de standaard configuratie zijn de volgende velden gemapped met elkaar. Verdere attributen zijn vrije keus. Attributen met type Ja/Nee, tekst, numeriek, dropdown (vrije tabel), multi- select worden ondersteund.

AFAS Attribuut Virtuemart attribuut Type
Itemcode Product code Text
Description Product name (name) Text
Artikelgroep Categorie name (speciale dropdown)
BTW groep Tax Handmatige mapping (niet standaard invulling)
Basisverkoopprijs Cost Price Numeriek (currency)
Voorraad In Stock Numeriek
Afbeelding / Bestandsnaam Image_pair Base64_string (image)

Importeren van klanten:

De koppeling biedt ook de mogelijkheid om klanten vanuit AFAS te importeren naar Virtuemart. Dit wordt opgeslagen als een User met ‘type C’. Hiervoor worden alleen de algemene gegevens gebruikt aangezien Virtuemart niet de velden heeft om alle informatie op te slaan. Denk aan; voornaam, achternaam, adresgegevens, eventueel bedrijfsnaam, emailadres, telefoonnummer. Dit is gebaseerd op de standaard Profit_Debtor connector.

  • DebtorName
  • AddressLine 1/3/4
  • TelNr
  • Email
  • CreateDate
  • DateModified

Voorraadsynchronisatie:

Bij de initiële import van de producten wordt de voorraad van een product overgenomen vanuit AFAS. Daarnaast wordt ook netjes de voorraad afgeboekt in AFAS als er een order wordt geëxporteerd. Daarnaast biedt de koppeling de optie om aan te geven in welke systeem eventuele extra voorraadwijzigingen plaatsvinden. Bijvoorbeeld als van een product extra wordt besteld bij een inkoper. Deze voorraad wordt dan aan de huidige voorraad in AFAS (of Virtuemart) toegevoegd, vervolgens synchroniseert de koppeling dit, zodat de voorraad weer klopt. Wat de koppeling enkel moet weten is welk systeem gebruikt wordt om de voorraad extra bij te werken. Dit wordt dan als leidend gebruikt in de synchronisatie.

Extra instellingen Dashboard (APIcenter)
  • Importeren van producten (her)-uitvoeren vanaf een bepaalde datum.
    In de praktijk hebben servers (Virtuemart) en AFAS om de zoveel tijd een storing. Mocht hierdoor een import niet helemaal goed lopen, is met deze instelling het mogelijk om producten vanaf een bepaalde datum opnieuw te laten importeren.
  • Bij het aanmaken van nieuwe debiteuren worden standaardvelden meegestuurd. Betaalconditie (default=14), Verzamelrekening (default=1400), administratie (default=2)
  • Orderoffset
    Het aantal orders dat in eerste instantie genegeerd moet worden.
  • E-mail ontvangen wanneer order niet goed verzonden kan worden.
    Wanneer een order vanuit Virtuemart naar AFAS om wat voor reden niet goed in AFAS gezet kan worden, dan ontvang je hiervan een e-mail.