Recreatex 6.0.0
What's new
Security | Supporting full encryption of all Recreatex passwords, for optimal security |
Supporting multiple administrator accounts to manage passwords | |
Loyalty | Intersolve gateway - enables GANTNER to dynamically configure and test Intersolve compatible cards. Our customers benefit from a faster turn-around to support Intersolve compatible loyalty cards. |
Priopass - Support for the Priopass loyalty pass | |
UiTPAS – support for Mia tarrifs + integration with activities in web shop | |
Direct debit (Incasso) | Supporting freeze of direct debit period, and more flexible direct debit reversals |
Web shop | Key usability improvements for online bookings
|
Create online bookings as a contact for an organization or company (impersonation) | |
Key performance improvements for online ticketing, exhibitions and lessons |
Detailed information
This topic contains more detailed information about certain new features in this version:
Direct Debit improvements
Priopass integration
The new integration of the Priopass makes it possible to scan a Priopass at a Recreatex POS. Based on the validity of the Priopass a ticket will be printed in Recreatex. A license is needed to use this new functionality.
Priopass configuration
Create a card definition of the type Priopass in Sydadmin > Management > Devices > Card definitions. Make sure the settings are configured correctly.
Configure all parameters in Recreatex in POS > parameters > tab Priopass.
Create a payment method Priopass in General > Settings > Finances > Payment methods.
Priopass use
When scanning a Priopass on the POS, it will be displayed if the card is valid and a ticket can be printed.
Priopass reports
To print a report of all Priopass registrations, go to POS > Reports > Report Priopass-registrations.
Loyalty Gateway
Intersolve is a provider of several loyalty cards (Museumkaart, Rotterdampas, …)
A new Loyalty gateway has been created in order to:
improve the stability between Recreatex and the Intersolve system.
make it easier to configure new Intersolve cards in the future.
Instead of the locally installed Liab service, Recreatex will now communicate directly with the Intersolve web service.
Warning
Customers already using one or more of the Intersolve cards will have to make changes to the configuration in Recreatex to make sure the validation of the cards works after an update to 6.0.0
The Intersolve configuration has been simplified and bundled in these locations:
in Sydadmin > Management > Devices > Card definitions (see dropdown box)
in General > Parameters > Tab Intersolve
in General > Basic data > Articles > Articles > Article card > Tab Intersolve
in General > Settings > Finances > Payment methods (field for Intersolve)
Details about configuration can be found in the manual Intersolve: Configuration & Use within Recreatex. The use of the cards itself has not changed.
Web shop facility booking usability improvements
In the web shop the flow and visualisations to create a facility booking have been optimized.
This new functionality can be enabled with a manager setting.
Note
To make full use of the new flow, please make sure you have configured images on all activities, Locations and types.
When working with direct linking, make sure to change to the new URL:
Old flow URL : http://webshop....be/Reservations/Overview?id=...
New flow URL : http://webshop....be/Bookings/Overview?id=...
In the new flow you can start from:
the Activity
the location
a type
or create a quick booking
All three flows will eventually lead the user to a colour coded calendar view only showing the places where the selected activity can take place. The colours of this calendar view can be changed in the web shop manager. When the check box Allow activity colours for occupied hours is enabled, the colours from the activity as configured in Recreatex will be used. When disabled, all bookings get the colour configured in the Manager under Colour occupied Hours.
In the day view time slots can be selected by clicking and dragging.
In the week and month view you can click on a day to go to the day view of that particular day.
Web shop impersonation
Within Recreatex it was already possible to create a facility booking for an organisation or company and link the contact person of the organisation. It is now also possible for a contact person to make such a facility booking through the web shop.
A contact person for a company or organisation can be created in three ways:
in Recreatex itself
on the web shop with the account of the organisation
on the web shop with a contact person login of the organisation that has “administrator” privileges
Contact person log in process
A contact person can be linked to an existing address or not.
To make sure the contact can log into the web shop, the Show on Website setting for the contact needs to be enabled.
If the contact person is linked to an existing address, the credentials of the existing address need to be used. The moment that this user logs in he/she will get the choice to log in for the individual account or as a contact person of the organisation. If the contact person is not linked to an individual account, the credentials of the contact person itself need to be used.
Configuring the rights of a contact person
The contact person can only see the modules for which (s)he has privileges (letting/booking/exhibitions/ticketing). If the contact person is configured as an administrator (s)he will be able to change the address and other fields of the organisation and will be able to edit or add other contacts.
How it looks on the web shop
When you’re logged in with the contact person you will be able to see additional info in the My Profile menu (depending on the configuration of the contact).
It is possible to switch between the individual account and the contact accounts. When there are already items in the basket, you get a warning that the basket will be cleared (as it is possible that a booking for the individual and for the organisation have different prices)
Recreatex API
Recreatex Platform and API versions will be released in sync
From Recreatex 6.0.0.0 onwards, the Recreatex API will be linked with the Recreatex core version.
Why this change?
To reduce the number of possibilities combining Recreatex core+ Recreatex API + Recreatex Web/mobile apps, to combinations with Recreatex core/API vs Recreatex Web/Mobile apps.
To simplify integration, development and testing.
To reduce errors in the field through the reduction of combinations to test.
What does it mean practically?
The Recreatex API will get a 6.0 version instead of a 4.0 version.
The Recreatex API will get a separate installer, instead of being bundled with the Recreatex Web installer.
Better backwards compatibility
If we perform a major or minor update to our WSDL, we change the version number in the WSDL namespace. This requires integrators to update/test their integration, even though their existing calls might still be backwards compatible. From 6.0 onwards, we removed the reference to the version number in the namespace, enabling better compatibility.
Example of namespace < 6.0 | |
Example of namespace >= 6.0 |
The current version of the API can still be discovered within the documentation tag of the IWebShop contract definition:
Sample:
<wsdl:portType msc:usingSession="false" name="IWebShop"> <wsdl:documentation> <summary> ReCreateX Web Shop Web Services (Contract version 4.0) </summary> </wsdl:documentation> |
The version number can be retrieved programmatically, calling GetCurrentWsdlVersion.
Standards compliance (W3C)
In order to be fully W3C compliant with our WSDL, we have to support all messages as wrapped messages
This ensures better transparency for integration and interoperability with an enterprise service bus (ESB)
Sample (before):
<wsdl:message name="ListCountriesRequest"> <wsdl:part name="Context" element="tns:Context"/> <wsdl:part name="ListCountriesSearchCriteria" element="tns:ListCountriesSearchCriteria"/> </wsdl:message> <wsdl:message name="ListCountriesResponse"> <wsdl:part name="Result" element="tns:Result"/> </wsdl:message> |
Sample (after):
<wsdl:message name="ListCountriesRequest"> <wsdl:part name="parameters" element="tns:ListCountriesRequest"/> </wsdl:message> <wsdl:message name="ListCountriesResponse"> <wsdl:part name="parameters" element="tns:ListCountriesResponse"/> </wsdl:message> |
API’s need to be verified for breaking changes
All references to the "xxxSpecified" properties need to be removed.
All string type references (actually Guids) for API objects need to be replaced by Guid references.
All Color values now actually use the System.Drawing.Color object (instead of a new Color object)
Automated API tests
We have introduced automated API testing in order to reduce the chance of error with method calls, parameter passing and underlying queries.
Flexible logging
We have introduced more flexible API logging, which can be configured at runtime to enable more or less logging as needed.
Following new functionality
Define where to output the logging to
database/table to log to ( Webshop manager database by default)
Switch from SQL to log4net logging
Enable/change logging for specific methods on the fly
Disable logging of large requests/responses and define boundary of large message
Define which type of requests are logged or not
SOAP/WCF requests
JSON requests
Images, docs need to be logged or not
API call changes
Method | Summary |
FindExpositions | Renamed property MaxVisitorsPerPeriodWeb to MaxVisitorsPerPeriod |
GetPointOfSales | New property added to PointOfSale (ExpositionCustomerMandatory) |
ListLockedBasketItems | New parameter added to ExpositionPeriodReservation (AutomaticArticleSales) |
FindSubscriptionArticles | New parameter added to SubscriptionArticle (AllowMultiplePurchasesSubscriptions) |
GetPointOfSales | New property added to PointOfSale (MustPrintCashReport) |
GetSalesHeaderReceiptPrintData | New property added to GetSalesHeaderReceiptCriteria (PrintAccessTickets ) |
GetCreditSalesByDivisionCard | New property added to SalesItem (PriceGroup) |
FindLessonGroupComments | Removed property MustMatchDate in LessonGroupCommentSearchCriteria Added property Includes in LessonGroupCommentSearchCriteria ( Includes (of type LessonGroupCommentIncludes), Current, Previous) |
License validation | The license will only be fetched once per day now instead of for every API call |
GetPersonLLVInfoByLessonGroup | Parameter changed from Guid to Guid? (LessonGroupId) |
LockBasketItems | New property added to CultureEventReservation (TraderId) |
FindCultureReservations | New property added to CultureReservation (CultureSeriesId) |
ListStudentFollowScores | Replaced fields Norm1 to Norm30 by list of NormScore objects in StudentFollowScore (NormScores) |
FindPersonContacts | Added search criteria and expanded the result obect Criteria:IncludeRelations Result object:Relations |
FindAccessZones | New property added to AccessZoneOccupancy (VisitorsCurrent) |
SaveCrmLog | Added new enum member "DirectDebit" to the enum "CRMLogType" |
FindExpositions | New property added to Exposition (AllowOverbooking) |
FindArticles | New property added to Article (UitpasEventId) |
FindActivities | New property added to Activity (UitpasEventId) |
StartNewShift | New property added to StartNewShiftResponse (SalesShiftId) |
CheckOutBasket | New properties added to ArticleSale (§UitpasPrice, UitpasNumber, UitpasPriceGroup) |
CheckOutBasket | New property added to ArticleSalesItem (UitpasPaymentError) |
CheckOutBasket | New property added to ArticleSalesItem (IsMembership) |
FindPerson | New properties added to ClubInfo (Info11, Info12, Info13, Info14, Info15) |
FindReasons | New include added to ReasonSearchCriteria (ReasonIncludes) |
FindReasons | New properties added to Reason (CancelCostSensitive , CancelCostAmount) |
FindReservations | New properties added to Reservation (Contact, SubsidyInfo) |
FindReservations | New properties added to ReservationIncludes (Contact, SubsidyInfo) |
UpdatePlaceReservation | New property added to PlaceReservation ( SubsidyInfoID) |
CreatePersonAndLinkCards | New property added to CreatePersonAndLinkCardsCriteria (ArticleId) |
FindSales | New properties added to FindSalesCriteria (OnlinePaymentOrderId, OrderNumber) |
FindETicket | New property added to ETicket (OnlinePaymentOrderId) |
FindArticles | New property added to Article (Vat) |
FindArticles | New property added to ArticleIncludes (Vat) |
FindInfoPlayLogs | New property added to InfoPlayLog (IsValidEntry) |
ListLessonGroups | New property added to LessonGroup (MaxAllowedStudents) |
API calls added
Method | Summary |
FindInfoPlayLogs | New service method for getting the subscription logs for info play. This is a lightweight version of the call FindSubscriptionLogs. |
GetCashReport | New method to receive the cash report of a shift |
FindPersonLlvTransferHistories | New method to receive the LLV transfer histories without the need to perform the FindPerson method |
FindPersonLlvCurrentLessonGroups | New method to receive the LLV lesson groups for a specific person without the need to perform the FindPerson method |
GetDirectDebitParameters GetCurrentDivision | New method |
GetHallAllocations | New function GetHallAllocations. (This bundles GetSeatAllocatoins and GetSiteAllocations.) |
ListStudentFollowScoresAll | New method to load both the current and previous scores for a lesson group and day |
FindContactRelations | New method to load all persons linked to a contact |
SearchUitpasTariff | New method to find the tariff for a combination of an UiTPAS-Number and an UiTPAS-EventID |
BuyUitpasEvent | New method to process the payment linked with an UiTPAS. Is implemented in the CheckOutBasket. |
FindSubsidyInfos | New method to search for subsidy infos |
FindAvailablePlacesForReservationActivities | New method added to load all available places for an reservation activity |