Dit artikel beschrijft uit welke onderdelen de WooCommerce connector bestaat en hoe de connector kan worden ingericht in Uniconta.
Artikelen en artikel varianten naar WooCommerce
Lorem ipsum
Product omschrijvingen en afbeeldingen naar Uniconta
Het toevoegen van product omschrijvingen en afbeeldingen vanuit WooCommerce naar Uniconta kan doormiddel van een connector. Bij het aanmaken van deze connector moeten de volgende velden worden gevuld.
- Id: ***_Products
- Naam: *** products to Uniconta
- Bron: WooCommerce
- Target: Uniconta
- Klassenaam: Product

Na het aanmaken van de connector moeten de Parameters worden gevuld. Klik hierbij eerst op de knop LoadParameters.
- Url: hier komt de URL van de WooCommerce omgeving.
- ApiKey: De RestAPI van de WooCommerce omgeving.
- ApiSecret: De secret RestAPI van de WooCommerce omgeving.
- LastExecution: Hoeft niet gevuld te worden.

Na deze parameters ingevuld te hebben kan dit tabblad opgeslagen en afgesloten worden. Navigeer terug naar het Connectors tabblad.
Vervolgens moet de Veld mapping gedaan worden, in dit scherm moet aangegeven worden welk veld in Uniconta gevuld moet worden met welke data vanuit WooCommerce.
- TargetEntity: InvItemClientUser (de artikeltabel met eigen velden in Uniconta)
- TargetFld: Het veld in Uniconta dat gevuld moet worden, bijvoorbeeld: ‘wcproducttitel’.
- SourceEntity: de tabel in WooCommerce waar de connector de data vandaan moet halen.
- SourceFld: Het veld in WooCommerce waar de connector de data vandaan moet halen.
- Arg: Wanneer het een MetaField is dan kan met SourceFld ‘f:GetProductMetaField’ de naam van een eigen veld in WooCommerce ophalen. In het ‘Arg’ veld moet dan de naam van het veld in WooCommerce worden opgegeven.
- Expr: Mocht het zo zijn dat een bepaald veld in WooCommerce vertaald moet worden naar een bepaalde waarde in Uniconta dan kan in dit veld nog via de ‘EditExpr‘ knop bovenin een iif functie (of een andere functie) worden geschreven.

Update van de voorraad in WooCommerce
Het synchroniseren van de voorraad vanuit Uniconta naar WooCommerce kan doormiddel van een connector. Bij het aanmaken van deze connector moeten de volgende velden worden gevuld.
- Id: ***_Stock
- Naam: *** Voorraad
- Bron: Uniconta
- Target: WooCommerce
- Klassenaam: Stock

Na het aanmaken van de connector moeten de Parameters worden ingevuld. Klik hierbij eerst op de knop LoadParameters.
- Url: Bij de kolom FixedValue moet de URL van de WooCommerce omgevingen ingevuld worden.
- ApiKey: Hier moet de RestAPI van de WooCommerce omgeving worden ingevuld.
- ApiSecret: Hier moet de secret RestAPI van de WooCommerce omgeving worden ingevuld.
- LastExecution: Hoeft niet te worden ingevuld.
- FieldNameWcIdItem: Het veld in Uniconta waar het WooCommerce ID is opgeslagen voor een artikel.
- FieldNameWcIdVariant: Het veld in Uniconta waar het WooCommerce ID is opgeslagen voor een variant.
- StockWareHouse: De code van het magazijn waar de producten/varianten zijn opgeslagen, dit magazijn zal gebruikt worden om te synchroniseren met WooCommerce.

Na de parameters te hebben ingesteld moet er voor deze connector nog een filter worden toegepast. In het tabblad Connectors kan er voor de connector worden gekozen voor ‘RecFilterExpr’. In dit scherm kunnen er filterregels worden gezet voor de producten/varianten die moeten worden meegenomen in bijwerken van de voorraad. Mocht bijvoorbeeld niet elk product/variant op de webshop staan dan kan hier gefilterd worden op een bepaald veld dat aangeeft of het artikel/variant moet worden meegenomen.
- Naam: De omschrijving van het filter
- ProcessStep: Keuze uit ProcessProduct (voor artikelen) en ProcessVariation (voor variaties).
- SourceEntity: Dit moet worden gevuld met ‘InvItemStorageClient’, hier wordt de voorraad per artikel/variatie bijgehouden in Uniconta.
- Expr: Hier wordt de filterregel geschreven.
- Het filter dat hier gebruikt wordt: “iif(LookupValue(‘InvItemClientUser’, ‘Item’,[InvItemStorageClient.Item] , ‘xxx’),True,False)” Hierbij moet xxx de naam van het veld zijn dat bepaald of het artikel/variant moet worden gesynchroniseerd.

Nadat de benodigde filters zijn ingesteld moet de ‘Veld mapping‘ gedaan worden voor de connector. Hierbij moeten de velden in WooCommerce gevuld worden vanuit Uniconta.
- Naam: Hier kan ingegeven worden wat de stap doet.
- ProcessStep: Hier kan worden ingegeven of het om een artikel of een variant gaat.
- TargetEntity: In dit veld wordt aangegeven om welk WooCommerce veld het gaat. Normaliter wordt hier gekeken naar stock_status (instock of outofstock) en stock_quantity (het aantal dat op voorraad is van dit product/variant).
- SourceEntity: Deze moet InvItemStorageClient zijn, het veld vanuit Uniconta.
- SourceFld: Als een waarde direct vanuit een veld in Uniconta overgenomen kan worden kan dat veld hier worden aangegeven.
- Expr: Hier kunnen de functies worden gegeven, in dit geval kan het zo zijn dat een veld in WooCommerce anders is aangegeven dan het veld in Uniconta. Bijvoorbeeld: “Iif([InvItemStorageClient.Available]>0,’instock’ ,’outofstock’ )” Hierbij wordt aangegeven dat als het voorraadaantal groter is dan 0 het item in het veld stock_status (eerder aangegeven in TargetFld) wordt weergegeven als ‘instock’ wat wordt herkend door WooCommerce.
- MapOrder: In deze kolom kan de volgorde van stappen worden ingegeven, de connector zal eerst met het laagste nummer beginnen en zo elke keer de stappen uitvoeren die bij het volgende nummer staan.

Orders WooCommerce naar Uniconta
Het synchroniseren van orders vanuit WooCommerce naar Uniconta kan doormiddel van een connector. Bij het aanmaken van deze connector moeten de volgende velden worden gevuld.
- Id: ***_Order
- Naam: *** Order
- Bron: WooCommerce
- Target: Uniconta
- Klassenaam: Order

Vervolgens moeten de Parameters worden ingevuld, hierbij moet eerst weer op de knop LoadParameters worden geklikt. Vervolgens moeten de volgende parameters ingevuld worden:
- Url: De URL van de WooCommerce webshop.
- ApiKey: De RestAPI van de WooCommerce webshop.
- ApiSecret: De secret RestAPI van de WooCommerce webshop.
- LastExecution: Hoeft niet te worden ingevuld.
- DaysInPast: Het aantal dagen terug waar de connector naar moet kijken.
- FieldNameOrderKey: Het veld in Uniconta waar de WooCommerce order key moet worden opgeslagen.
- FixedDebtorAccount: Als alle orders op dezelfde debtor moeten worden opgeslagen dan kan dat hier ingegeven worden.
- DebtorLookup: De manier waarop de debtor bepaald moet worden, dit kan via de email, het contact of een vast emailaccount.
- FieldContactAccountKey: Dit kan gebruikt worden om een bestaand contact te linken aan een WooCommerce customer id.

Na het vullen van de parameters de ‘Veld mapping‘ kan gedaan worden. Deze knop kan gevonden worden in het Connectors tabblad. Hierbij worden de velden in Uniconta gevuld vanuit de velden in WooCommerce. De ‘Veld mapping‘ kent dezelfde kolommen als bij de andere connectors. Voor de orders worden er veel velden meegenomen vanuit WooCommerce, daarvoor is het opgedeeld in de volgende ProcessSteps.
- CreateDebtor
- Deze stap maakt de klant aan in Uniconta, velden zoals naam, adresregels, etc. worden gevuld vanuit de WooCommerce order.
- Order
- Deze stap maakt de orderkop aan, hier zal het afleveradres, de betalingsmethode, etc. gevuld worden.
- OrderLine
- Deze stap maakt de orderregels aan in de desbetreffende order, de bestelde artikelen en de aantallen worden overgenomen vanuit de WooCommerce order.
- ShippingLine
- Deze stap zorgt ervoor dat de door de klant gekozen verzendmethode wordt overgenomen in Uniconta, inclusief de eventuele verzendkosten.
- FeeLine
- Mochten er extra kosten zijn voor bijvoorbeeld het gebruik van Afterpay, dan kan dat in deze stap meegenomen worden.
Retouren WooCommerce naar Uniconta
Het synchroniseren van retouren vanuit WooCommerce naar Uniconta kan doormiddel van een connector. Bij het aanmaken van deze connector moeten de volgende velden worden gevuld.
- Id: ***_Refund
- Naam: *** Refund
- Bron: WooCommerce
- Target: Uniconta
- Klassenaam: ReturnOrder

Vervolgens moeten de Parameters worden ingevuld, hierbij moet eerst weer op de knop LoadParameters worden geklikt. Vervolgens moeten de volgende parameters ingevuld worden:
- Url: De URL van de WooCommerce webshop.
- ApiKey: De RestAPI van de WooCommerce webshop.
- ApiSecret: De secret RestAPI van de WooCommerce webshop.
- LastExecution: Hoeft niet te worden ingevuld.
- DaysInPast: Het aantal dagen terug waar de connector naar moet kijken.
- FieldNameOrderKey: Het veld in Uniconta waar de WooCommerce order key moet worden opgeslagen.
- FieldNameRefundId: Het veld in Uniconta waar de WooCommerce refund id moet worden opgeslagen.
- FixedDebtorAccount: Als alle orders op dezelfde debtor moeten worden opgeslagen dan kan dat hier ingegeven worden.
- DebtorLookup: De manier waarop de debtor bepaald moet worden, dit kan via de email, het contact of een vast emailaccount.
- FieldContactAccountKey: Dit kan gebruikt worden om een bestaand contact te linken aan een WooCommerce customer id.

Na het vullen van de parameters de ‘Veld mapping‘ kan gedaan worden. Deze knop kan gevonden worden in het Connectors tabblad. Hierbij worden de velden in Uniconta gevuld vanuit de velden in WooCommerce. De ‘Veld mapping‘ kent dezelfde kolommen als bij de andere connectors. Voor de retouren worden er veel velden meegenomen vanuit WooCommerce, daarvoor is het opgedeeld in de volgende ProcessSteps.
- Refund
- Deze stap verwijdert de order, en maakt de retourkop aan, hier zal het afleveradres, de betalingsmethode, etc. gevuld worden net zoals bij de order. Ook zal de retourreden, het toaal aantal geretourneerde items en de retourdatum worden opgeslagen.
- RefundLine
- Deze stap maakt de orderregels aan in de desbetreffende retourorder, de geretourneerde artikelen en de aantallen worden overgenomen vanuit de WooCommerce retourorder.
- ShippingLine
- Deze stap zorgt ervoor dat de door de klant gekozen verzendmethode wordt overgenomen in Uniconta, inclusief de eventuele verzendkosten. Mocht er voor worden gekozen om de verzendkosten ook terug te betalen dan kan dat hier ook aangegeven worden.
- FeeLine
- Mochten er extra kosten zijn gerekend voor bijvoorbeeld het gebruik van Afterpay, en dit moet ook terugbetaald worden, dan kan dat in deze stap meegenomen worden.
Functies te gebruiken in de mapping
Functies die veel gebruikt worden in de ‘Veld mapping’ zijn:
- Concat(
- Concat(String1, … ,StringN)
- Geeft een stringwaarde terug die de concatenatie bevat van de huidige string met eventuele aanvullende strings
- ConvertCountryCode(
- ConvertCountryCode(isocountrycode)
- Converteer iso code naar landnaam
- IsoCountryCode = Iso land code van land
- Voorbeeld
- ConvertCountryCode(‘NL’)
- GetFirstFromList(
- GetFirstFromList(list, returnfield)
- Haalt het eerste item uit een lijst van items op en haalt er een waarde uit.
- List = Lijst waar in gekeken moet worden
- ReturnField = Veld dat de waarde bevat
- Voorbeeld
- GetFirstFromList(Lijst, veldNaam)
- GetVatZone(
- GetVatZone(isocountrycode)
- Haal de btw zone op gebaseerd op het land.
- IsoCountryCode = Iso land code van land
- Voorbeeld
- GetVatZone(‘NL’)
- GetWooCommerceMetaField(
- GetWooCommerceMetaField(fieldkey, metaobject)
- Haalt het Meta veld op gebaseerd op de naam.
- FieldKey = Veldsleutel
- MetaObject = MetaObject
- Voorbeeld
- GetWooCommerceMetaField(‘veldNaam’, metaObject)
- iif(
- Iif(FirstClause, FirstClauseTrueValue, …, LastClause, LastClauseTrueValue, FalseValue)
- Retourneert ofwel de waarde gedefinieerd voor de eerste Booleaanse voorwaarde die waar is, of de laatste waarde als geen van deze voorwaarden waar is.
- Deze functie kan elk aantal argumenten accepteren.
- LookupValue(
- LookupValue(tablename, lookupfield, lookupvalue, returnfield)
- Deze functie zoekt in een tabel naar de eerste voorkomst van de zoekwaarde en retourneert de waarde uit het waardeveld.
- TableName = Tabel waar in gekeken moet worden
- LookupField = Veld dat moet worden opgezocht
- LookupValue = Waarde die gevonden moet worden
- Returnfield = Veld dat de waarde bevat die eruit moet komen.
- Voorbeeld
- LookupValue(‘Tabelnaam’, veldNaam,waarde,veldNaam)
- ToDouble(
- ToDouble(Value)
- Converteert de waarde naar een equivalent 64-bits decimaal getal.
- ToStr(
- ToStr(Value)
- Retourneert een tekenreeksrepresentatie van een object.
Batch manager
De batch manager staat net als de DataConnectors onder ‘Tools‘. Het scherm ziet er als volgt uit:

De volgende kolommen kunnen worden gevuld:
- Naam: Hier kan de naam van de batch worden ingevuld, bijvoorbeeld: *** Orders, *** Returns of *** Stock.
- DIIName: Hier moet gekozen worden voor uit mogelijke Plugins of op maat gemaakte files.
- Klassenaam: Hier moet gekozen worden voor wat de batch manager moet doen, bijvoorbeeld: WooCommerceOrder, WooCommerceReturn of WooCommerceStock.
- RecurrencePeriod: Hier moet gekozen worden op welke manier de batches herhaald moeten worden, bijvoorbeeld: Minute, Hour, Day, RunAfter (als hij direct na een andere batch uitgevoerd moet worden), CronExpression (Meer uitleg hieronder).
- CronExpression: Een CronExpression is een code om aan te geven wanneer en hoe vaak iets herhaald moet worden, zie deze website voor een uitleg om er mee te werken. In de volgende kolom genaamd ‘CronDescription‘ staat uitgetypt wat de gegeven CronExpressie doet.
- RunAfter: Hier kan de sleutel van een andere batch worden ingegeven als er bij RecurrencePeriod RunAfter is aangegeven.
- ScheduledStart: De datum wanneer de eerste batch moet starten.
- Parameters: Hier moet worden aangegeven welke connector gebruikt moet worden en wat voor type dit is. Let op! deze kolom is hoofdlettergevoelig en moet dus precies ingegeven zijn, het moet in ieder geval Connector= en ConnectorType= bevatten en deze twee moeten gescheiden worden door een puntkomma. Een voorbeeld hiervan is: Connector=***_ORDER;ConnectorType=Woocommerce
Een batch kan naast de geplande start ook handmatig worden gestart, klik hiervoor de batch aan en klik dan op RunJob in de header. Het uitvoeren van de batch zal waarschijnlijk even duren, na het uitvoeren van de batch kan er op het Logboek geklikt worden om te zien of er fouten zijn opgetreden tijdens het uitvoeren.
Tip: Er is ook een mogelijkheid om een testbatch te maken voor bijvoorbeeld één order, hierbij is het belangrijk dat in de kolom Parameters dit aangegeven moet worden. Dit ziet er als volgt uit: Id=16640;Connector=***_ORDER;ConnectorType=Woocommerce. Met deze batch wordt alleen order id 16640 opgehaald vanuit WooCommerce. Wil je deze batch bewaren om vaker te testen, geef dit dan aan in de naam van de batch. Bijvoorbeeld: 1 *** Orders. Als er een testbatch gedaan moet worden voor de voorraad dan is het Id het WooCommerce product id van het artikel (of de artikelvariant).