Het is nu mogelijk om met een KassaCloud account (iam.kassacloud.nl/auth/realms/mpluskassa/account) in te loggen in de backend.
Dit maakt het mogelijk om vanuit de toekomstige mpluskassa.support portal direct in te loggen in mpluskassa.online.
Als je het financiële overzicht Totalen met de optie "Openstaande tafel" opvraagt, krijg je nu ook de juiste lijst van tafels terug als het gaat om een slave API. Het desbetreffende filiaal moet dan wel het enige filiaal zijn waar je de Totalen voor opvraagt, want we kunnen het resultaat van verschillende API's (master of slave) niet combineren.
Op de online handheld kom je er nu sneller achter (binnen seconden) wanneer je werkplek door iemand anders wordt geclaimd.
We updaten nu gelijk het online autorisatie-cache wanneer een medewerker voor het eerst inlogt, ipv. te wachten op de eerste autorisatie-vraag vanuit de frontend app.
Dit zorgt ervoor dat de beschikbare filialen direct geretourneerd kunnen worden.
Vanaf Q-line v58 wordt waar mogelijk gebruik gemaakt van de idempotente createOrderV3
en payOrderV2
.
Dit voorkomt dubbele registraties in de Q-line.
Het is nu mogelijk om via Webhooks te betalen vanaf een kiosk.
Zowel Webhook-betaalwijzen die wij zelf beheren, zoals CCVCC en Adyen, maar ook die van externe partijen, zoals de Cikam Easy Cash, werken hierdoor op de bestelzuilen.
OnlineOrderType bevat nu ook de registeredOrderInfo
die gevuld zal worden met orderNumber
en orderBarcode
zodra de order volledig in de Q-line geregistreerd staat (dus inclusief evt. Master/Slave sync).
Hierdoor kan de bestelwebsite een barcode tonen die bij de kassa gescand kan worden.
OnlineOrderQuery toegevoegd waarmee je op basis van idempotencyKey
of mplusOrderId
een order kunt opvragen.
Hierdoor kan de bestelwebsite informatie over de zojuist geplaatste order tonen.
Ondersteuning ingebouwd voor het doorgeven van levertijdstip aan een tafelbestelling (via handheld, kiosk, etc).
In mpluskassa.online wordt het eigenaarschapsfilter alleen nog toegepast als het eigenaarssysteem geactiveerd is.
Indien het eigenaarsfilter wordt toegepast, is het filiaalfilter niet meer bepalend.
De backend ondersteunt nu het opvragen van activiteiten via de query:activities
Out-of-the-box heeft de EBS-50 (elektronische schapkaartjes) een artikelnummer-limiet van 5 karakters. In de achterliggende MySQL-database is dit echter wel op te hogen naar bijv. 40 karakters.
Als er sprake is van deze limitering, dan zal dit bij het bijwerken van de schapkaartjes nu ook duidelijk als foutmelding naar boven komen in mpluskassa.online.
De articleVariantsQuery
ondersteunt nu het doorgeven van een filter net zoals de overviewListQuery
. Hierdoor kun je de call compacter maken.
De backend ondersteunt nu het doorgeven van callbackUrl
bij een betaling via webhooks. CloudEFT kan deze URL aanroepen om de backend aan te sporen de betaling direct te verwerken en bijv. een tafelbestelling door te zetten.
De backend ondersteunt nu het doorgeven van een factuuradres bij het plaatsen van een bestelling via de bestelwebsite. Deze wordt uiteraard dan ook doorgegeven naar de Q-line.
De backend ondersteunt nu het opvragen van offertes via de query:proposals
.
De backend heeft nu ondersteuning voor het koppelen (mutation:eslArticleLinks
) en het vervolgens automatisch bijwerken (mutation:eslSync
) van elektronische schaplabels (Electronic Shelf Labels).
Momenteel wordt de Opticon EBS-50 ondersteund.
Alle rapportage-queries worden nu automatische voorzien van een zogenaamd ownerFilter
, gebaseerd op de ingelogde medewerker. Dit complimenteert het systeem van eigenaarschap dat geïntroduceerd wordt in Q-line v57.
Er is nu ondersteuning voor een Vlaamse en Franse lokalisatie van online, op https://mpluskassa.online/nl-be/ en https://mpluskassa.online/fr/.
Als de browser deze talen als voorkeurstalen heeft, zal de bezoeker eerst op deze versies terechtkomen bij bijv. het scannen van een QR-code.
Als een instelling een minimale of maximale waarde heeft, en de backend is daarvan op de hoogte, dan wordt nu ook door de backend gecontroleerd dat de instelling zich binnen deze grenswaarden bevindt.
Als een verkooporder een levertijd meekrijgt, dan wordt de leverdatum nu ook altijd ingesteld op diezelfde dag.
Als er een logregel op basis van een Exception naar Datadog gestuurd wordt, dan klopt de trace nu beter met de locatie waar de oorspronkelijke Exception optrad.
De query:availableTimeslots
retourneert nu voor meerdere dagen de beschikbare tijdsloten afhankelijk van de instelling guest_order_delivery_timeslots_available_days
danwel guest_order_takeaway_timeslots_available_days
.
De mutation:placeGuestOrder
kijkt ook naar deze instelling om te controleren of een deliveryPeriodBegin
geldig is.
De backend retourneert nu aparte foutcodes als er een API-call wordt gebruikt waarvoor geen autorisatie verleend is (3027) of als er een rechtenprobleem op de achterliggende database is (3028).
Het is nu in de kiosk mogelijk om af te rekenen met BPE. Indien van toepassing wordt hierbij ook gecontroleerd of de desbetreffende medewerker nog voldoende BPE budget heeft.
De orderverwerking baseert zich nu altijd op het resultaat van determinePricing
bij het doorgeven van een order van de backend aan de kassa. Dat betekent dat altijd rekening gehouden wordt Sales & Acties, menuprijzen, relatiekortingen, filiaalprijzen, etc.
Probleem opgelost waardoor bij het aanmaken/kopiëren van een nieuwe artikelkaart, het veld "BTW-code 2" niet ingevuld werd.
Automatisch je vorige werkplek claimen bij het inloggen werkt nu alleen nog als je niet tussentijds op een ander apparaat een andere werkplek geclaimd hebt.
Als je via de online handheld een werkplek geclaimd hebt, wordt deze nu automatisch vrijgegeven als je expliciet uitlogt. Als je je sessie laat verlopen, blijft de werkplek wel geclaimd.
Het is nu mogelijk om een orderwebsite bestelling te plaatsen zonder betaling.
Hiervoor moet de instelling "guest_order_payment_required
" uit staan.
Nieuwe hierarchical
scope en helperfunctie aangemaakt om het makkelijker te maken om hiërarchische instellingen in te lezen.
Bij het plaatsen van een bestelwebsite bestelling wordt het bedrijfsnaam veld nu ook ingevuld op de relatiekaart
Let op: vanaf API versie 58 werkt dit pas door een bug in updateRelation dat de bedrijfsnaam niet werd opgeslagen
De QR-code generator is nu geïntegreerd in de backend en draait niet meer apart op gen.ordercode.nl.
Voor weerinformatie in mpluskassa.online gebruiken wij de WeatherStack API, maar je kunt die informatie niet over meer dan 60 dagen opvragen, terwijl het in online wel mogelijk is op zo'n periode te filteren.
De foutmeldingen die je hierdoor krijgt worden vanaf nu niet meer naar Datadog/Sentry gestuurd. Tevens bevat de foutmelding naar de frontend nu ook informatie over wat er fout gaat: Your specified historical time frame is too long. [Maximum: 60 days]
Het lijstje met geautoriseerde kaartvelden wordt nu apart van alle andere autorisaties opgeslagen zodat dit veel sneller te raadplegen is in de relevante situaties (zoals bij het uitvoeren van query:overview
).
Wanneer er filialen of werkplekken uit een licentie verwijderd worden, dan worden deze nu apart gemarkeerd door de backend, zodat je ze niet meer automatisch terugkrijgt als je bijvoorbeeld een lijst van werkplekken opvraagt.
Als er tijdens het plaatsen van een bestelling op de orderwebsite ontdekt wordt dat de geconfigureerde betaalwijze niet bestaat of niet actief is, dan wordt dit direct gemeld bij het plaatsen, en niet pas als de klant al betaald heeft. Hiermee voorkomen we dat de verkooporders wel aankomen in de Q-line, maar de betalingen niet.
Het sessielogboek in de backoffice is nu gebaseerd op de CEST tijdzone, ipv. de UTC tijdzone. Daardoor komen de tijdstippen nu overeen met alle overige tijdstippen binnen de applicatie.
Bij het uitvoeren van determinePricing
wordt nu automatisch het relatienummer uit de huidige sessie toegepast als dat niet expliciet wordt meegegeven.
Als een SOAP API onbereikbaar is, wordt dit nu via een speciale foutcode (3013) gemeld ipv. de algemene SOAP foutcode 3012.
Foutmelding opgelost tijdens opslaan van persoonlijke gegevens in guest app.
Tafeloverzicht werkt nu ook goed voor tafels op Slaves.
Het is weer mogelijk voor gebruikers om via de /guest omgeving hun eigen kassabonnen te bekijken.
Probleem opgelost dat email kopieën niet aankwamen voor bestelwebsite bestellingen
Als er parallel een WebhookInteractiveFlow wordt aangeroepen, dan zal nu slechts één daadwerkelijk uitgevoerd worden en alle parallel draaiende requests zullen daarna hetzelfde resultaat als de eerste terug krijgen.
Dit verhelpt een bug dat de callbackUrl
vanuit CloudEFT een dubbele verwerking van bepaalde gegevens triggert, en ook dat status-updates onzichtbaar blijven als je niet de eerste was die erom vroeg.
Probleem opgelost in het opvragen van pakbonnen waardoor je geen resultaat kreeg bij pakbonnen zonder gekoppelde relatie.
Probleem opgelost waardoor de versie-check bij oudere API's soms niet goed werkte.
Probleem opgelost waardoor je een webhookbetaling niet kon afbreken als de externe webhookpartij niet of niet correct reageerde.
Probleem opgelost als je probeert af te rekenen met een BPE-betaalwijze in de kiosk.
Probleem opgelost waardoor je in de handheld soms geen artikelen kon aanslaan die je wel op de snelknoppen had.
Probleem opgelost dat er een negatieve aanbetaling gedaan werd als je een (webhook)betaling annuleerde met een bedrag dat hoger was dan het totaalbedrag van de tafel.
Probleem opgelost waardoor mutation:retryGuestOrder
niet werkte.
Foutmelding: "ValueError: "0" is not a valid backing value for enum App\Libraries\Order\Enums\OrderMode"
Als er bij een bestelzuil geen printer ingesteld is, dan krijg je daar nu een duidelijkere foutmelding over.
Foutmelding opgelost die kon optreden als voor een bepaalde kaartsoort geen categorieën ingesteld stonden.
De apps op de acceptatie-omgeving weten weer dat ze op de acceptatie-omgeving draaien, en tonen daardoor weer de oranje waarschuwingsbalk.
Als via employeeBranchAuthorizations
autorisaties opgevraagd worden, maar de autorisaties zijn nog niet lokaal gecached, dan is er nu een fallback dat ze op dat moment nog even via de API ingelezen worden uit de Q-line.
Als voor een medewerker nog geen autorisatie ingeladen heeft, maar toch overviewList
uitgevoerd wordt, dan wordt dat nu weer duidelijker gecommuniceerd dat je niet geautoriseerd bent, ipv. dat er een onbekende foutmelding terugkomt.
Wanneer tijdens de uitvoer van het refresh token request ontdekt wordt dat een token verlopen is, wordt dat nu aan de frontend geretourneerd als "Unauthorized" ipv. een "Unknown" error, zodat de desbetreffende app automatisch naar het inlogscherm springt.
Probleem opgelost dat het eigenaarsfilter niet werd toegepast bij het ophalen van rapportage gegevens
Probleem opgelost dat de backend geen emails meer verstuurde
Als een payOrder mislukt met een SOAP foutmelding, wordt die nu in alle gevallen gelogd naar het sessielogboek.
Als de EBS-50, tijdens het beheren van elektronische schapkaartjes, een foutresultaat geeft, wordt dat nu ook in de response geretourneerd.
Probleem opgelost bij het doorgeven van de vertaalde artikelvelden aan de bestel-apps.
Probleem opgelost bij het toevoegen en bewerken van apparaten.
Wanneer het aanmaken van een verkooporder in de Q-line lukt, maar dit resultaat is niet goed ontvangen door online, dan wordt dit nu bij de tweede aanmaakpoging herkend en hersteld.
Er is een bug opgelost waardoor je in Google Chrome op een gegeven moment tegen een 400 Bad Request foutmelding op ging lopen.
Bug opgelost waardoor een realtime status URL (zoals je bijv. krijgt in de orderstatus e-mails), niet werkte.
Bug opgelost waardoor een directe betaling van een tafel een foutmelding opleverde.
Indirect modification of overloaded property App\Models\OrderPaymentRequest::$order has no effect
Probleem opgelost bij het ophalen van het tijdslotenoverzicht
Probleem opgelost waardoor bij een geforceerde app refresh per ongeluk naar het inlogscherm van mpluskassa.online geredirect werd, ipv. terug naar de app.