De functie getReceipts()
heeft een extra includeOrderReferences
request-parameter gegeven, waarmee je kunt aangeven of je ook referenties (receipt.orderIds
) naar de bestelbon(nen) van elke kassabon wilt ontvangen. Het standaardgedrag was voorheen dat deze referenties ingeladen werden, maar dat gebeurt nu niet meer, omdat de impact op de performance potentieel ernstig is.
We vermoeden dat weinigen gebruik maken van deze referenties, maar pas uw koppeling dus aan als u deze wel gebruikt. De PHP client is ook bijgewerkt om deze parameter te ondersteunen.
Sinds Q-line v8.0.0 kunnen snelknopgroepen per filiaal beheerd werden. Deze lokaal beheerde snelknoppen worden nu ook via de API teruggegeven.
Deze versie werkt correct met de 11.0.0 database.
Deze versie werkt nog niet correct met de 11.0.0 database.
Na het voltooien van een aanvraag is de API nu sneller gereed om de volgende aanvraag af te handelen.
De service heeft nu de mogelijkheid om meerdere verzoeken tegelijk af te handelen.
Het tegelijk afhandelen van verzoeken moet via de configuratie eerst geactiveerd worden.
De volgende instellingen kunnen nu vanuit het config bestand ingesteld worden dat via de --config optie wordt meegegeven. Eventuele commandline opties gaan voor wat er in het config bestand staat. Hieronder alle mogelijke instellingen met hun standaard waardes.
[Settings]
output= ; --output <filenaam>
ssl=1 ; omgekeerde van --nossl
cgi=1 ; omgekeerde van --standalone
port=18083 ; --port
sync_marker_limit=1000 ; --sync_marker_limit
fast_load=1 ; omgekeerde van --nofastload
profiler=0 ; --profile
debug= ; --debug <filenaam>
min_workers=1
max_workers=1
Als max_workers op 1 staat zal de API effectief helemaal geen workers gebruiken en daarmee ook de overhead van het doorgeven van aanvragen naar de workers elimineren.
Ondersteuning voor de "OPWAARDEER" omzetgroepsoort, die in de API als TURNOVER_GROUP_TYPE_BALANCE_UPGRADE
wordt gerepresenteerd. Indien onbekende omzetgroepsoorten worden aangetroffen, retourneert de API deze als TURNOVER_GROUP_TYPE_UNKNOWN
.
Nieuwe V2 van de functies savePurchaseOrderV2
en savePurchaseDeliveryV2
waarbij purchasePrice
een string ipv. een int64 is. Hiermee kunnen decimale waardes met meer dan 2 decimalen ingevoerd worden.
Nieuwe V2 van de functies getPurchaseOrdersV2
en getPurchaseDeliveriesV2
die de purchasePrice
ook als string ipv. int64 retourneren.
Alle functies die relationNumber
en relationName
retourneren, retourneren nu ook relationCategoryId
en relationBankAccountNumber
(bijv. getOrders
, getReceipts
, getInvoices
).
Functies voor interfiliale opdrachten toegevoegd.
getInterbranchShipments
getInterbranchDeliveries
createInterbranchOrder
createInterbranchShipment
createInterbranchDelivery
claimInterbranchOrder
releaseInterbranchOrder
shipInterbranchOrder
deliverInterbranchShipment
Ondersteuning voor CA-ondertekende certificaten bij het aanroepen van Webhooks toegevoegd
Nieuwe API-call: getRelationPoints
. De syncMarker
die hierin voorkomt is ook toegevoegd als relationPointsSyncMarker
aan het resultaat van getCurrentSyncMarkers
.
De API ondersteunt nu ook het webhook-event completeSession
. Deze wordt momenteel aangeroepen bij het afrekenen van een tafelorder via payTableOrder(V2)
.
Het werkpleknummer dat meegegeven wordt via queueBranchOrder
wordt nu ook daadwerkelijk gebruikt bij het opslaan van de filiaalorder, in plaats van standaard terug te vallen op werkplek 1.
Het werkpleknummer dat meegegeven wordt via queueBranchOrder
wordt nu ook daadwerkelijk gebruikt bij het opslaan van de filiaalorder, in plaats van standaard terug te vallen op werkplek 1.
De functie getShifts()
retourneert nu ook de evt. inhoud van de "Betreft"-regel, via het veld reference
.
Nieuwe functie deliverOrderV2
die het mogelijk maakt om deelleveringen te maken. Zo is het mogelijk om meerdere pakbonnen van een order te maken.
Nieuwe functie getPackingSlipsByOrder
die de pakbon(nen) van de opgegeven order retourneert.
Nieuwe functie deliverOrderV2
die het mogelijk maakt om deelleveringen te maken. Zo is het mogelijk om meerdere pakbonnen van een order te maken.
Nieuwe functie getPackingSlipsByOrder
die de pakbon(nen) van de opgegeven order retourneert.
Het is nu ook mogelijk om bij een pinbetaling de gerelateerde transactiedetails op te vragen. Er moet wel autorisatie gegeven worden voor toegang tot deze gegevens. U kunt bekijken welke autorisatie u hebt op uw Partnerpagina.
De API-functie getProducts
retourneert nu maximaal syncMarkerLimit
aantal articles
ipv. products
. Echter, als het eerste product
meer dan deze limiet aan articles
bevat, dan zal dit product in zijn geheel geretourneerd worden. Anders kun je in de situatie terechtkomen waarin getProducts
niets meer retourneert.
De API-functie getProducts
retourneert nu maximaal syncMarkerLimit
aantal articles
ipv. products
. Echter, als het eerste product
meer dan deze limiet aan articles
bevat, dan zal dit product in zijn geheel geretourneerd worden. Anders kun je in de situatie terechtkomen waarin getProducts
niets meer retourneert.
De API-functie getProducts
icm. een filter zoals onlyActive
en een syncMarker
gaven niet altijd alle gewijzigde artikelen terug sinds de opgegeven syncMarker
. Er konden artikelen overgeslagen worden in het resultaat.
De API-functie getProducts
icm. een filter zoals onlyActive
en een syncMarker
gaven niet altijd alle gewijzigde artikelen terug sinds de opgegeven syncMarker
. Er konden artikelen overgeslagen worden in het resultaat.
De API-functie getButtonLayout
retourneert nu een lay-out gebaseerd op de aanname dat hoofdgroepen altijd boven de subgroepen en artikelknoppen getoond worden. Zoals ook het geval is bij de Android app.
De API-functie getButtonLayout
retourneert nu een lay-out gebaseerd op de aanname dat hoofdgroepen altijd boven de subgroepen en artikelknoppen getoond worden. Zoals ook het geval is bij de Android app.
Bij elke API-functie die terminal
als parameter heeft, wordt het Laatste ping tijdstip nu ook bijgewerkt.
Bij elke API-functie die terminal
als parameter heeft, wordt het Laatste ping tijdstip nu ook bijgewerkt.
Nieuwe functies voor het beheren van offertes:
getProposals
- haal lijst van offertes opgetProposal
- haal enkele offerte opsaveProposal
- sla nieuwe offerte op of werk bestaande offerte bijcancelProposal
- annuleer offerte, indien mogelijkcreateOrderFromProposal
- maak order van offerte, indien mogelijkcreateInvoiceFromProposal
- maak factuur van offerte, indien mogelijkNieuwe functie getArticleGroupChanges()
die elke gewijzigde artikelgroep teruggeeft sinds de vorige syncMarker
. Het is ook mogeijk om te filteren op bepaalde groupNumbers
. Het verschil met getArticleGroups
is dat de laatstgenoemde de artikelgroepen in de hiërarchische structuur retourneert, terwijl deze nieuwe functie de artikelgroepen "plat" retourneert. Gebruik de parentGroupNumber
om te bepalen waar de artikelgroep moet zitten.
Nieuwe functie getArticleGroupChanges()
die elke gewijzigde artikelgroep teruggeeft sinds de vorige syncMarker
. Het is ook mogeijk om te filteren op bepaalde groupNumbers
. Het verschil met getArticleGroups
is dat de laatstgenoemde de artikelgroepen in de hiërarchische structuur retourneert, terwijl deze nieuwe functie de artikelgroepen "plat" retourneert. Gebruik de parentGroupNumber
om te bepalen waar de artikelgroep moet zitten.
Het was mogelijk dat de BTW-percentages van artikelen in de componentArticleList
onjuist waren, ook konden artikelen onterecht meerdere keren voorkomen. Dit is opgelost.
Het was mogelijk dat de BTW-percentages van artikelen in de componentArticleList
onjuist waren, ook konden artikelen onterecht meerdere keren voorkomen. Dit is opgelost.
Het was mogelijk dat de BTW-percentages van artikelen in de componentArticleList
onjuist waren, ook konden artikelen onterecht meerdere keren voorkomen. Dit is opgelost.
De regels van kassabonnen, orders en facturen bevatten nu ook evt. metadata behorende bij Webhooks. Dit gaat om de volgende optionele eigenschappen:
line.webhookData.webhookLineId
- De UUID van de regel zoals via de Webhooks gecommuniceerd.line.webhookData.webhookConsumerId
- (optioneel) De UUID van de Webhook Consumer (externe applicatie) indien deze regel door deze externe applicatie is toegevoegd.line.webhookData.webhookExternalDiscount.discountId
- (optioneel) De UUID van de korting als die via een Webhook Consumer is toegevoegd.line.webhookData.webhookExternalDiscount.discountDescription
- (optioneel) Omschrijving van de externe korting indien die bij het toevoegen is opgegeven.line.webhookData.webhookExternalDiscount.webhookConsumerId
- (optioneel) De UUID van de Webhook Consumer (externe applicatie) die deze korting heeft toegevoegd.line.webhookData.webhookExternalDiscount.discountPercentage
- (optioneel) Het extern toegepaste kortingspercentage.line.webhookData.webhookExternalDiscount.discountAmount
- (optioneel) Het extern toegepaste kortingsbedrag.De regels van kassabonnen, orders en facturen bevatten nu ook evt. metadata behorende bij Webhooks. Dit gaat om de volgende optionele eigenschappen:
line.webhookData.webhookLineId
- De UUID van de regel zoals via de Webhooks gecommuniceerd.line.webhookData.webhookConsumerId
- (optioneel) De UUID van de Webhook Consumer (externe applicatie) indien deze regel door deze externe applicatie is toegevoegd.line.webhookData.webhookExternalDiscount.discountId
- (optioneel) De UUID van de korting als die via een Webhook Consumer is toegevoegd.line.webhookData.webhookExternalDiscount.discountDescription
- (optioneel) Omschrijving van de externe korting indien die bij het toevoegen is opgegeven.line.webhookData.webhookExternalDiscount.webhookConsumerId
- (optioneel) De UUID van de Webhook Consumer (externe applicatie) die deze korting heeft toegevoegd.line.webhookData.webhookExternalDiscount.discountPercentage
- (optioneel) Het extern toegepaste kortingspercentage.line.webhookData.webhookExternalDiscount.discountAmount
- (optioneel) Het extern toegepaste kortingsbedrag.Nieuwe artikeleigenschappen:
article.course
- Toont aan bij welke gang het artikel hoort, inclusief de naam, afkorting en volgnummer van de gang.article.specialPrice
- Geeft aan of er een speciale prijsafhandeling bij het artikel hoort, zoals "Gratis", "Vraagprijs (positief)" of "Vraagprijs (negatief)".article.showPreparationMethodsDirectly
- Geeft aan of de bereidingswijzen direct geopend moeten worden bij het selecteren van het artikel.article.showPreparationMethodsPerGroup
- Geeft aan of de bereidingswijzen per groep getoond moeten worden of allemaal in één keer.Nieuwe artikeleigenschappen:
article.course
- Toont aan bij welke gang het artikel hoort, inclusief de naam, afkorting en volgnummer van de gang.article.specialPrice
- Geeft aan of er een speciale prijsafhandeling bij het artikel hoort, zoals "Gratis", "Vraagprijs (positief)" of "Vraagprijs (negatief)".article.showPreparationMethodsDirectly
- Geeft aan of de bereidingswijzen direct geopend moeten worden bij het selecteren van het artikel.article.showPreparationMethodsPerGroup
- Geeft aan of de bereidingswijzen per groep getoond moeten worden of allemaal in één keer.Een verkooporder (order
) bevat nu de eigenschappen onDeliveryUrl
en onInvoiceUrl
. De URL's die je hieraan meegeeft zullen in MplusKASSA geopend worden in de standaardbrowser op het moment dat je resp. een pakbon van de verkooporder maakt of een factuur.
Een omzetgroepnummer (turnoverGroup
) buiten het ondersteunde bereik (0-999) wordt nu geweigerd.
Een omzetgroepnummer (turnoverGroup
) buiten het ondersteunde bereik (0-999) wordt nu geweigerd.
Een omzetgroepnummer (turnoverGroup
) buiten het ondersteunde bereik (0-999) wordt nu geweigerd.
getCashCountList
retourneert nu ook de extra details van elke extra werkplek die geteld is, via cashCountExtraWorkplaceList
.
getCashCountList
retourneert nu ook de extra details van elke extra werkplek die geteld is, via cashCountExtraWorkplaceList
.
Bestellingen met gewichtsartikelen die via de API werden bijgewerkt, werden altijd tegengeboekt en weer opgeboekt, ook al waren ze inhoudelijk niet gewijzigd.
Bestellingen met gewichtsartikelen die via de API werden bijgewerkt, werden altijd tegengeboekt en weer opgeboekt, ook al waren ze inhoudelijk niet gewijzigd.
De imageList
van een artikel is nu gelijk voor alle artikelen van een product.
De imageList
van een artikel is nu gelijk voor alle artikelen van een product.
De eigenschappen priceIncl
, priceExcl
, originalPriceIncl
en originalPriceExcl
worden nu waar ontbrekend ook ingevuld.
De eigenschappen priceIncl
, priceExcl
, originalPriceIncl
en originalPriceExcl
worden nu waar ontbrekend ook ingevuld.
De imageList
van een artikel is nu gelijk voor alle artikelen van een product.
De eigenschappen priceIncl
, priceExcl
, originalPriceIncl
en originalPriceExcl
worden nu waar ontbrekend ook ingevuld.
De functie getReceipts
retourneert nu per receipt
ook evt. ingevuld antwoorden op vragen die tijdens het afrekenen gesteld zijn. Deze antwoorden (en de gestelde vraag) zijn terug te vinden in de lijst receipt.answerList
.
De functie getReceipts
retourneert nu per receipt
ook evt. ingevuld antwoorden op vragen die tijdens het afrekenen gesteld zijn. Deze antwoorden (en de gestelde vraag) zijn terug te vinden in de lijst receipt.answerList
.
De functie getReceipts
retourneert nu per receipt
ook evt. ingevuld antwoorden op vragen die tijdens het afrekenen gesteld zijn. Deze antwoorden (en de gestelde vraag) zijn terug te vinden in de lijst receipt.answerList
.
Functie setSubTableCount
toegevoegd.
Deze functie stelt het maximum aantal subtafels van een tafel in.
creditInvoice
is nu geïmplementeerd. Het annuleren van een factuur zorgt ervoor dat er een creditfactuur van de geannuleerde factuur aangemaakt wordt.
cancelInvoice
is nu geïmplementeerd. Het annuleren van een factuur zorgt ervoor dat er een creditfactuur van de geannuleerde factuur aangemaakt wordt.
getArticleGroups
retourneert nu ook, waar van toepassing, de afbeelding van een artikelgroep (via image
).
Nieuwe functies: getRetailSpaceRental()
en getRetailSpaceRentals()
.
Nieuwe functies: getRetailSpaceRental()
en getRetailSpaceRentals()
.
Nieuwe functies: getRetailSpaceRental()
en getRetailSpaceRentals()
.
Nieuwe eigenschappen: order.orderBarcode
, receipt.receiptNumber
, receipt.receiptBarcode
, invoice.invoiceBarcode
, saveInvoice.info.invoiceNumber
, saveInvoice.info.invoiceBarcode
, articleStockHistory.invoiceBarcode
, articleStockHistory.receiptBarcode
.
Nieuwe eigenschappen: order.orderBarcode
, receipt.receiptNumber
, receipt.receiptBarcode
, invoice.invoiceBarcode
, saveInvoice.info.invoiceNumber
, saveInvoice.info.invoiceBarcode
, articleStockHistory.invoiceBarcode
, articleStockHistory.receiptBarcode
.
Nieuwe functie getTicketCounterSales()
.
getInvoices
en getReceipts
retourneren nu ook orderIds
indien de facturen of kassabonnen afkomstig zijn van verkooporder(s) of bestelling(en). Ook worden extOrderIds
geretourneerd indien de orders die ook hadden.
De functie getLicenseInformation
retourneert nu ook de waarde isGKS
bij elk filiaal, welke aangeeft of het gelicenseerde filiaal wel of niet een GKS-licentie heeft.
Na het voltooien van een aanvraag is de API nu sneller gereed om de volgende aanvraag af te handelen.
De service heeft nu de mogelijkheid om meerdere verzoeken tegelijk af te handelen.
Het tegelijk afhandelen van verzoeken moet via de configuratie eerst geactiveerd worden.
De volgende instellingen kunnen nu vanuit het config bestand ingesteld worden dat via de --config optie wordt meegegeven. Eventuele commandline opties gaan voor wat er in het config bestand staat. Hieronder alle mogelijke instellingen met hun standaard waardes.
[Settings]
output= ; --output <filenaam>
ssl=1 ; omgekeerde van --nossl
cgi=1 ; omgekeerde van --standalone
port=18083 ; --port
sync_marker_limit=1000 ; --sync_marker_limit
fast_load=1 ; omgekeerde van --nofastload
profiler=0 ; --profile
debug= ; --debug <filenaam>
min_workers=1
max_workers=1
Als max_workers op 1 staat zal de API effectief helemaal geen workers gebruiken en daarmee ook de overhead van het doorgeven van aanvragen naar de workers elimineren.
getTableListV2
geeft nu ook de OnFloorPlan
property van de TafelStatusLijst door aan de client.
payTableOrder
geeft nu bij bepaalde problemen een uitgebreidere foutmelding
Nieuwe functies tbv. subtafels (bijv. tafel 1A, 1B, etc):
getTableListV2
getTableOrderCourseListV2
requestNextTableOrderCourseV2
cancelTableOrderV2
printTableReceiptV2
Nieuwe velden tbv. subtafels:
order.tableSubNumber
MoveTableOrderRequest.tableSubNumber
GetTableOrderRequest.tableSubNumber
ReleaseTableRequest.tableSubNumber
GetTableOrderCourseListResponse.tableSubNumber
Als deze nieuwe velden niet worden opgegeven bij het aanroep van een functie, dan wordt automatisch subtafel 1 (A) gebruikt.
De eigenschap product.description
wordt nooit meer gebaseerd op de description
van een niet-actief artikel, als er ook actieve artikelen aanwezig zijn.
De eigenschap product.description
wordt nooit meer gebaseerd op de description
van een niet-actief artikel, als er ook actieve artikelen aanwezig zijn.
Vastloper tijdens het uitvoeren van deliverOrder
opgelost.
Probleem opgelost bij het gebruiken van samengestelde artikelen via de API.
Probleem opgelost bij het gebruiken van samengestelde artikelen via de API.
Probleem opgelost: Bij het toepassen van een kortingspercentage op een artikel (bijv. via de handheld) wordt dit artikel niet meer als retour aangemerkt.
Onder speciale combinatie was het mogelijk dat createProduct
en updateProduct
vastliepen.
Onder speciale combinatie was het mogelijk dat createProduct
en updateProduct
vastliepen.
Ook getOrder
retourneert nu een ingevulde paymentList
(mits er natuurlijk ook echt aanbetalingen op de order gedaan zijn).
Ook getOrder
retourneert nu een ingevulde paymentList
(mits er natuurlijk ook echt aanbetalingen op de order gedaan zijn).
Wanneer artikelen, relaties of medewerkers meer dan 117 kaartvelden hebben, werkte het aanmaken of bijwerken van deze kaarten via de API niet.
Wanneer artikelen, relaties of medewerkers meer dan 117 kaartvelden hebben, werkte het aanmaken of bijwerken van deze kaarten via de API niet.
Probleem opgelost met getRelations
.
Probleem opgelost met getPurchaseOrders
en getPurchaseDeliveries
.
Probleem opgelost met getPurchaseOrders
en getPurchaseDeliveries
.
getReceiptsByCashCount
kon meer kassabonnen teruggeven dan de bedoeling was. Ook kassabonnen van andere filialen die toevallig overlap hadden met de gekozen kastelling op het gewenste filiaal werden geretourneerd.
getReceiptsByCashCount
kon meer kassabonnen teruggeven dan de bedoeling was. Ook kassabonnen van andere filialen die toevallig overlap hadden met de gekozen kastelling op het gewenste filiaal werden geretourneerd.
De eigenschappen order.lineList.line.pluNumber
, .supplierRelationNumber
en .supplierArticleNumber
worden nu ook ingevuld.
De recente toevoeging van turnoverGroupAccountNumber
veroorzaakte een foutmelding als hij niet ingevuld was.
De recente toevoeging van turnoverGroupAccountNumber
veroorzaakte een foutmelding als hij niet ingevuld was.
Probleem opgelost dat kon optreden bij het bepalen van een vrij articleNumber
bij het toevoegen van nieuwe artikelen.
Probleem opgelost dat kon optreden bij het bepalen van een vrij articleNumber
bij het toevoegen van nieuwe artikelen.
Probleem opgelost dat kon optreden bij het bepalen van een vrij articleNumber
bij het toevoegen van nieuwe artikelen.
Klein probleem opgelost in de combinatie GKS en opslaan tafelorders.
getArticlesInLayout
gaf niet de juiste prijs terug als je een standaard prijsgroep had ingesteld voor het betreffende filiaal, maar wel als je zowel voor filiaal als voor werkplek een standaard prijsgroep had ingesteld.