We verwerken nu ook de MultiSafepay betaalstatus van PayPal en andere betaalwijzen.
Voor MultiSafepay betaalstatus kijken we nu naar de eigenschap order.status in plaats van payment.status. Die laatste wordt namelijk niet in alle gevallen goedgezet ook al is de bestelling (en dus de betaling) wel voltooid.
Het is nu mogelijk om van specifieke API's kortstondig alle communicatie te loggen om zo sneller problemen op het spoor te komen.
Via de Pay.nl integratie ondersteunen we nu ook PayPal en handmatige overboeking
Er is betere rate-limiting toegevoegd, om te voorkomen dat één device of user een onevenredig aantal requests per seconde gebruikt.
Payconig toegevoegd als beschikbare betaalwijze voor PayNL, zodat deze geselecteerd kan worden in de QR en GUEST apps.
Herkenning van werkplektypes GUEST
, NARROWCASTING
en QR
.
Er is nog geen ondersteuning voor het versturen van e-mails vanaf een "eigen" e-mailadres. Alle e-mail vanuit online komt altijd vanaf noreply@mpluskassa.online
.
We zien geregeld dat klanten dit proberen op te lossen door toch een e-mailadres in te vullen in het veld dat eigenlijk bedoeld is voor Bedrijfsnaam.
We gaan nu zorgen dat als dit gebeurt, alleen het stukje vóór de "@" gebruikt wordt.
Hiermee hopen we de bezorgbaarheid van onze e-mailbevestigingen te verbeteren, want waarschijnlijk verdwijnen e-mail nu af en toe in de spam.
Ondersteuning toegevoegd voor Pay by Bank van Pay.
Dit ontsluit betalingen via banken in België, Duitsland, Frankrijk, Luxemburg, Spanje, Oostenrijk, Denemarken, Zweden en Noorwegen.
Te activeren vanuit de Pay. portal onder de verkooplocatie bij Country or region specific payment methods.
De ReceiptsQuery
kan nu ook tableNumber
retourneren (als de achterliggende API het nog niet ondersteund, krijg je null
terug).
Het is nu mogelijk om cadeaukaarten op te waarderen vanaf een bestelzuil.
Bij het inloggen wordt ook geprobeerd een eventuele vorige werkplekclaim te herstellen. Echter, dat mislukte als de werkplek inmiddels niet meer bestond. Dat veroorzaakt nu geen crash tijdens het inloggen meer.
Je kon bij een QR tafelbundel specifieke tafelnummers instellen, dit werkt nu ook in combinatie met de instelling "Kies automatisch de eerste beschikbare tafel".
Indien ingesteld wordt nu de tekst op de e-mail templates voor bezorg- en afhaalkosten vervangen met de tekst van het artikel.
De getButtonLayoutGroupDetails
call wordt nu, indien van toepassing, naar de Slave API geroute.
Af en toe komt een online app niet voorbij het "splash" screen met het MplusKASSA logo.
Dit heeft niet altijd dezelfde reden.
En we kunnen niet altijd in onze foutrapporten tracker kijken, omdat die dan meestal ook nog niet opgestart is.
Vanaf nu kun je in deze situatie zeven keer op het logo tikken om een speciale log-modus te starten waarbij alle fouten direct naar het scherm gestuurd worden.
Je kunt ook ?log
aan de URL toevoegen om dit te activeren.
Vervolgens kun je dit gebruiken om het probleem te melden.
Als je de ApiVersionQuery
uitvoert, krijg je nu in de eerste plaats het resultaat van de Slave API als je op een werkplek werkt die bij een slave hoort.
Tafels die geopend worden op de online handheld kunnen nu ook geclaimd door de desbetreffende werkplek.
We hebben een nieuw systeem geïntroduceerd om grote hoeveelheden data in te lezen. Dit systeem is sneller en breder inzetbaar dan het vorige pagineringssysteem.
Ondersteuning voor het instellen van een whitelist van postcodes waar je bezorgt. Tevens bug opgelost in de afstandsberekening tussen een bezorgadres en het vestigingsadres (de bug leverde bijna dubbele afstanden op).
Ondersteuning toegevoegd voor iDEAL betalingen via Pay.nl. Hiervoor moet je een Verkooplocatie toevoegen via Online > Integraties > Pay.
Als een orderstatusmelding niet in de gewenste taal beschikbaar is, wordt teruggevallen op een andere taal. Vlaams valt terug op Nederlands, de overige talen vallen terug op Engels.
Email template aanpassingen.
Ticket counter rapport api calls toegevoegd.
Kiosk kassabon kan nu afgedrukt worden op basis van de order.idempotencyKey.
Online is nu gewapend tegen het offline gaan van de MpluginAPI. Dit betekent dat als Online al weet welke API bij een bepaalde toegangscode hoort, je gewoon kunt inloggen op deze toegangscode, ook als de MpluginAPI offline is.
Het is nu mogelijk om tweefactorauthenticatie te activeren voor een medewerker. Als dit ingeschakeld is, moet een medewerker een Authenticator applicatie koppelen waarmee codes gegenereerd kunnen worden.
Voor het genereren van de codes kunnen verschillende apps gebruikt worden, zoals:
Elke keer dat een werkplek wordt geclaimd of vrijgegeven wordt nu gelogd. Een overzicht hiervan zal inzichtelijk zijn via Beheer > Sessies.
Dit maakt het makkelijker om de oorzaak te vinden waarom gebruikers geregeld opnieuw hun werkplek moeten kiezen terwijl ze gebruik maken van de handheld.
In de praktijk bleek het niet mogelijk om oude PWA installaties ("Toevoegen aan startscherm") automatisch te migreren naar de nieuwe URL-structuur (zonder taalcode).
Hierdoor zullen deze installaties altijd de melding "Er is een nieuwe versie beschikbaar" tonen bij opstarten.
Om gebruikers naar de nieuwe PWA te leiden zal er in deze situaties voortaan een tussenscherm getoond worden die aangeeft dat deze versie van de app niet langer beschikbaar is.
Dankzij verschillende aanpassingen in de gehele mpluskassa.online architectuur hebben we nu een heel snelle betalingsflow gerealiseerd.
Dit wordt ook vergezeld van een nieuwe versie van de Handheld app die uitgerold gaat worden naar de Sunmi Store, CCV Store en de Google Play Store.
Deze app heeft ook een nieuw icoontje en zal bij gebruik het gehele scherm vullen.
De taalkeuze is uit de URL verwijderd.
Bijv: https://mpluskassa.online/nl/handheld is nu gewoon https://mpluskassa.online/handheld
Dit was nodig om te zorgen dat de terugroute vanuit externe (betaal)apps naar onze apps sneller kan plaatsvinden.
Als je een "oude" URL aanroept, dan wordt je doorgestuurd naar de nieuwe URL, waarbij de applicatie wel automatisch de taal uit de oude URL overneemt.
Het is nu mogelijk een roterend bestelnummer aan bestelwebsite orders toe te voegen op de betreft-regel.
Je kunt nu een werkpleknummer instellen dat gebruikt wordt voor QR en Guest bestellingen.
De autorisaties per gebruiker worden nu in een aparte tabel opgeslagen, en niet meer in de users
tabel. Dit verbetert de performance vooral bij administraties met een grote hoeveelheid filialen.
Als je een PayNL verkooplocatie verwijdert, dan kun je die nu direct weer toevoegen. Voorheen bleef de naam ("SL-...") dan gereserveerd.
Een "declined" status bij MultiSafepay wordt nu niet meer als annulering geïnterpreteerd. Het is namelijk best mogelijk dat daarna alsnog de betaling bevestigd wordt.
Het is nu mogelijk om de kaartbetalingen vanaf een Payter terminal naar een gewenst filiaal te leiden, in plaats van altijd naar filiaal 1. Daarnaast kun je ook aangeven dat een specifiek artikel gebruikt moet worden voor de achterliggende transactie.
Er wordt nu gedetecteerd wanneer filialen niet meer gelicenseerd zijn. Indien nodig wordt module-afhankelijke functionaliteit dan ook automatisch uitgeschakeld.
Als er een blob gemaakt wordt voor een grote data-transfer, dan krijgt deze nu altijd de no-cache
response header, zodat deze nooit opgeslagen wordt in het cache van de client.
Paar scenario's aangepakt waarin er fouten naar Datadog gestuurd waren die niet echt signalen waren en alleen maar ruis veroorzaakten.
De fragmenten "Tijd: ..." en "Bonnr: ..." op de bon van de bestelzuil zijn nu vertaald.
We gaan nu actief bij MultiSafepay een order annuleren als we status "declined" terugkrijgen. Blijkbaar kan een klant weer terug gaan naar de MultiSafepay pagina en deze betaling dan opnieuw proberen.
Tevens gaan we "declined" niet meer als eindstatus beschouwen, zodat we zo'n situatie eventueel alsnog goed kunnen afhandelen.
Polyfill voor de BIGGER-OR-EQUAL
en SMALLER-OR-EQUAL
operators van overviewListQuery
toegevoegd, zodat we in de frontend vast kunnen programmeren alsof die operator al bestaat in de API.
Het apple-app-site-association
bestand is nu correct waardoor de iOS versie van onze Handheld wrapper ook geopend kan worden door de PAY.POS app van Pay.nl.
De ButtonLayoutGroupDetailsQuery zal nu terugvallen op gebruik maken van de Master-API als een Slave-filiaal geen eigen Slave-API heeft.
De TransferSettingsMutation is up-to-date gebracht met de recente wijzigingen aan de SettingsQuery. Met de TransferSettingsMutation kun je online inrichting kopiëren tussen werkplekken, filialen, administraties en zelfs omgevingen.
In geval van een DoubleVerifiedPayment zorgt de backend er nu voor dat de twee placeTableOrder
calls die uitgevoerd kunnen worden (voor de BackendVerified en FrontendVerified flow), nooit op hetzelfde moment lopen. Dit voorkomt de (onschuldige) "potential concurrency issue" in het API logboek.
Als een webhookinteractie is voltooid, en intern wordt de originele request (bijv. placeKioskOrder
) nogmaals aangeroepen, dan registeren we nu ook wanneer die laatste request is begonnen en voltooid, zodat we hiermee problemen met snelheid kunnen oplossen.
Voordat we een backend request verwerken, gaan we eerst asynchroon testen of we een databaseverbinding kunnen maken. Dit mag maximaal 5 seconden duren. Hiermee hopen we Lambda congestie tijdens een (tijdelijke) netwerkstoring te verhelpen.
BPE betaalwijzen worden altijd als "active" doorgegeven aan de frontend, ongeacht hun "active" status in de Q-line
Zelfs als de QR app laten we nu enkel MultiSafepay betaalwijzen zien die "direct" verrekend worden. Dus geen betaalwijzen als "Overboeking bank" en "Klarna". Ook als onze klant deze betaalwijzen wel heeft geactiveerd in hun MultiSafepay portal.
Voor de bestelwebsite kun je deze betaalwijzen wel gewoon gebruiken.
De "publieke" apps (Guest en QR) zullen nu niet de adresbalk "Mplus-oranje" maken, aangezien dit soms totaal niet matched met de huisstijl van onze klanten.
Het inlezen van de licentiemodules is efficiënter geworden.
We ondersteunen nu, als fallback, ook de JSON POST
methode van Pay.nl Exchange Settings.
De aangeraden methode blijft SIGNED JSON POST
.
Als je een on-device betaalwijze hebt ingesteld, maar de achterliggende integratie (bijv. MultiSafePay of Pay.nl) niet hebt afgerond, dan krijg je nu een foutmelding als je die betaalwijze wilt gebruiken.
Performance van mutation placeTableOrder
bij vooral klanten met veel betaalwijzen verbeterd.
Het moet altijd mogelijk zijn om iets op de betaalwijze CONTANT te boeken, bijv. om wisselgeld te boeken. Ook als dat niet een van de selecteerbare betaalwijzen in de handheld is.
Een LoginBundle heeft nu de eigenschap automatically_use_next_table
. Als dit actief is, dan wordt steeds automatisch het volgende tafelnummer uit het ingestelde tafelbereik gebruikt om direct in te loggen als je de inlogcode van deze LoginBundle gebruikt.
De juiste werkplek wordt nu gebruikt afhankelijk van de app, dat wil zeggen: QR voor de QR-app, GUEST voor de bestelwebsite.
Hersteld dat een kioskorder weer vaker geprobeerd wordt op te sturen naar de kassa als deze de eerste keer mislukt.
Probleem opgelost met het ophalen van betaalwijzen, geïntroduceerd vanwege de nieuwe BPE budgetperiode YEAR
.
Bij het aanmaken van een nieuw artikel, relatie of medewerker wordt nu ook gecontroleerd of de medewerker geautoriseerd is om dit te doen op het huidige filiaal, in plaats van het standaardfiliaal 1.
ReleaseTable gaat nu naar de juiste API in het geval van Master/Slave.
Probleem opgelost dat sync markers niet juist werden opgevraagd
Probleem opgelost waardoor in sommige set-ups geen e-mailbevestigingen meer werden verzonden.
De UpdateLoginBundleMutation had een bug waardoor je bundelinstellingen die eenmaal ingeschakeld waren (zoals specifieke tafelnummers) nooit weer kon uitschakelen.
BranchesQuery en LicensedModulesQuery gaan nu beter om met een storing van KMS. Ze blijven de laatst bekende informatie retourneren, in plaats van een foutmelding.
Probleem opgelost dat snelknopgroepen met beheer per filiaal niet de juiste knoppen toonden in een master/slave setup
Probleem opgelost dat mix en match sales and acties niet altijd goed werden doorgegeven, wat resulteerde in tafels met een openstaand bedrag
De bon die wordt afgedrukt door de bestelzuil bevat nu ook de totalen per artikel.
Als je de UsersQuery aanroept met een filter op username, dan wordt deze nu hoofdletterongevoelig toegepast.
Probleem opgelost waardoor uitgeschakelde tijdsloten weer ingeschakeld werden als je dezelfde weekdag maar met een andere datum wijzigde.
Probleem opgelost dat de allergieën en diëten niet zichtbaar werden in de gast-app
Wanneer een cadeaukaart restitutie wordt aangevraagd, en de relatie bestaat al, worden de ingevoerde gegevens zoals IBAN alsnog toegevoegd aan de bestaande relatie.
Het opvragen van kaarten (artikelen, relaties of medewerkers) houdt er nu ook rekening mee als de bovenliggende categorieën niet zichtbaar zijn voor de huidige medewerker.
Als een webhook vanuit de callbackUrl
wordt aangeroepen, bevat deze nu ook weer de session
-data.
De webhook ids blijven nu consistent gedurende een session in de online apps. Ook wordt het session id nu gegenereerd als een COMB UUID.
Probleem opgelost waardoor ná tweefactorauthenticatie het apparaat slechts één inlog werd vertrouwd, ipv. de bedoelde zeven dagen.
Probleem opgelost waardoor webhook dialogId's niet als string werden doorgegeven.
Bij een lokale installatie van de backend zal er nu in alle gevallen gebruik gemaakt worden van de lokale API en niet alleen als je eerst hebt ingelogd via de lokale API.
Probleem opgelost waardoor bepaalde BPE-wijzen zichtbaar werden in apps waar dat niet de bedoeling was.
Probleem opgelost waardoor in sommige gevallen de prijsberekening voor betalingen niet klopte (de bereidingswijzen werden niet meegerekend).
Als er geen Slave-API beschikbaar is, dan zal een getReceipts
aanroep nu gebruik maken van de Master-API. Op die manier werkt het kassabonnenoverzicht ook als je filtert op een Slave-filiaal
Als er een wachtwoordreset wordt aangevraagd, dan worden daar nu alleen actieve relaties voor gebruikt.
Er werd niet altijd goed rekening gehouden met de ingestelde tijdzone om te bepalen hoeveel orders al geplaatst waren in een bepaald tijdslot.
Als er wordt teruggevallen op een alternatief verzendkanaal, bijv. van WhatsApp naar SMS, dan worden evt. andere verzendkanalen niet ook opnieuw getriggerd. Dit voorkomt dat je vervolgens ook nog eens dubbele e-mails krijgt.
Als je een werkplekgekoppeld pinapparaat verwijderd hebt, dan blijft deze werkplek niet meer "grijs" in het werkplekoverzicht.
Het genereren van QR-codes inclusief tafel-label werkt weer.
Als je een pinapparaat verwijderd hebt dat ook nog aan een handheld gekoppeld zat, dan kon je daarna de instellingen van die handheld niet meer wijzigen. Dat kan nu weer wel.
Als een query probeert de licentie bij te werken vanuit KMS, maar IAM kan op dat moment geen token voor gebruik met KMS retourneren, dan wordt de laatst bekende licentie geretourneerd ipv. dat de query mislukt.
De fallback van WhatsApp naar SMS werkt nu weer goed.
Probleem opgelost in de afhandeling van bezorgbevestigingen van de Vonage SMS API.
Als je vanuit een Franstalige /inventory app wordt doorgestuurd om in te loggen, dan krijg je nu ook weer een Franstalig inlogscherm.
Als DoubleVerifiedPayment ingeschakeld is, zal er nu nooit meer teruggevallen worden op een WebhookPayment.
Probleem opgelost waardoor fooibedragen via de bestelzuil dubbel werden doorberekend tijdens de afrekening.