april 2022

release 2022.04

Een release voor de liefhebbers van de nitty-gritty details, zo kan de april release het beste worden omschreven. De release omvat een veelheid van kleine functionele verbeteringen en uitbreidingen. Voorbeelden daarvan zijn de mogelijkheid om nu ook kostencomponenten toe te voegen aan artikelregels (heel nuttig bij verwijderingsbijdragen), een nieuwe layout voor filtering op mobiele apparaten, de mogelijkheid om artikenmerken te verdelen over meerdere kolommen, de mogelijkheid om te werken met meerdere bestellijsten in het klantenportaal....

En meer van dat soort zaken. Kleine dingen waarvan u in de praktijk heel veel plezier zult hebben, want zoals men zegt: "the devil is in the details".

The possibility to define costs per OrderLine has been added. This information will be added to the basket by the CalculateOrder functionality that was added in an earlier release. Any costs will be displayed in the article itself in the basket and as a total in the calculation in the bottom of the basket.
The ArticlePropertiesList table will now always render 1 column on mobile devices.
The articlegroup footer description has been added to the LayoutSettings.
The display for round prices was inconsistent as a result of price rounding issues, this has been fixed.
A new article layout element has been added enabling the configuration of a properties table on an article detail page. The number of columns and the read direction can be configured for this new element.
The price logic has been improved by the introduction of a separate field for the amount with which the quantity of an article can be incremented. br />
Several small technical improvements have been made to the order UI and the CSV upload logic.
The article list filters stopped working dus to a bug. This has been fixed.
The default category layout contained some issues that have been fixed.
Added the user menu to the csv upload confirmation page, changed the way the user menu is loaded on the csvupload page to bring it in line with the other account pages.
The order unit column has been added to the favorites list and the order lists.
Fixed an issue that caused the "select all" to be unresponsive on a basket refresh (after changing the basket)
The empty basket message wasn't shown in all cases as a result of a bug.
Changed the static list slider breakpoints to be in line with Bootstrap breakpoints.
The breadcrumb path can now be displayed for non-classification pages like news, wiki and structure pages. This is an optional feature to maintain backwards compatibility.
Fixed an issue in the list scripting that caused issues when multiple lists on a single page where being used.
A new filtering layout specific for mobile devices has been added.
The redirect module in the shop didn't work due to a logic issue.
The news overview page, news detail page and news tiles have all been added to the new layout.
Fixed a bug that caused the news pages to ignore the default layout.
The standard account menu options have been implemented in the orderlist pages.
Added the option to open the order history details as a new page instead of a dropdown.
Added classes to the user menu list items for styling purposes.
Made some minor changes to the OrderList page for styling purposes.
Fixed an issue that caused the favorites page to display an error message.
The favorites list had some issues when using the new layout options. These have been fixed. An issue where the price couldn't be displayed in some cases has also been fixed.
Improved mechanism on which Exact Batch Interface respects minutely download rate limit
A failing order for passer by users lead to creation of multiple equivalent accounts in Exact. This behaviour is changed to just one account.
Fixed NullReferenceException that occurred when placing order for DefaultAccount
A performance improvement was introduced in the cleanup of old pricelist records
A bug has been fixed in the new sync
When checked, the "Delete not imported properties" checkbox at the article import now deletes the not imported properties. Due to a bug this was not the case.
Fixed unknown error that in some cases occurred during the validation phase of the import when importing customers in Vendisto.
Removed restriction on customer import that imported user cannot have a blocked state.
A memory leak in Vendisto has been plugged, resulting in better performance and a slightly better initial load time.

maart 2022

release 2022.03

Met de afronding van de implementatie van onze Layout Language bereiken we in de maart release een mooie mijlpaal. In deze taal beschrijven we de structuur van pagina's die u in de shop vindt. Denk aan een productpagina, of aan de winkelmand pagina.

Met ingang van de maart release zijn alle paginatypen nu ondergebracht in deze taal en daarmee flexibel inrichtbaar. Ergens een infoblokje nodig? Een lijstje met gerelateerde productgroepen? Bepaalde producteigenschappen ergens gebundeld laten zien? Met de nieuwe layout language is dit allemaal niet meer dan het aanpassen van een paginabeschrijving. Kortom, vrijwel ongelimiteerde mogelijkheden voor onze Enterprise klanten.

Op integratiegebied lag de focus deze keer op details, zoals het volledig gelijk trekken van onze shop calculaties met de BTW calculatie en wijze van afronden in Exact. Het gaat een beetje tegen onze architecturele principes in, maar soms ontkomen we niet aan het dupliceren van wat ERP-functionaliteit in het Shoxl platform. Op het gebied van BTW en afronden heeft elk ERP pakket zijn eigen aanpak, en die is vrijwel nooit duidelijk gedocumenteerd. Maar we lopen inmiddels, in goed overleg met Exact, weer helemaal gelijk.

The ArticleGroup detail page now can be configured with a flexible values overview displaying all the property values of all the articles in the ArticleGroup. The values will be displayed as a comma separated string in the table.

The number of columns in this overview can be configured. It is also possible to set how the columns will be rendered. You can choose between from left to right and column by column (default).

When the article selection wizard is being used the option exists to let the wizard result filter the values being displayed in this overview. Selecting a value in the wizard will result in property values no longer applicable disappearing from the list.

Implemented the option to show article properties in related articles tiles.
Implemented an "information" element for the group article pages
Implemented page anchors for the Article page and Article group page.
Properties set as ignorable will no longer be shown in the article properties.
The core shop now support layout settings for the category pages. This layout can be defined in the Raven database.
The basket layout can now be altered from the LayoutSettings.
The remaining order quantity in the basket preview contained an error resulting in the wrong amount.
The CSV order upload option has been made more user friendly. Some bugs have also been fixed.
After adding a selection from the favorites list to the basket the feedback defined in the WebshopSettings will be displayed. All selected items in the favorites list will be unselected after adding them to the basket.
The quantity input in the basket didn't function exactly like the quantity input on the article detail page, this has been fixed.
Added optional extra fields for personal details to the delivery address form.
Delivery country code has been added as optional parameter to the function Calculate order.
All of the checkout steps are now available in the new layout configurations.
Payment discount rules would remain in the basket after placing an order while rules like that should be removed at that point. This issue has been fixed.
The order(line) / basket(line) calculations have been rewritten so it can round on orderline level on both tax as ex tax level.
Payment discounts are now calculated correctly.

Created two settings for correct order(line) calculations:

Round the orderline instead of the whole order. The rounding precision has to be setup in the setting RoundingPrecision. If the RoundingPrecision is not setup, the setting will work but with it's default value five.

2) RoundingPrecision
A number between 0 and 5. This number will stand for the rounding accuracy on orderline records.
Works only if the setting ShouldRoundOrderLine is activated.

A third setting has been made so we will not get the payment provider price from Vendisto
3) UseWebserviceAsDataSourceForPaymentProviderPrice
Defines where the order price should come from for the payment provider. This setting only works when using the webservice mode 999
True = We will do a request to the webservice to retrieve the order price. This means, it can go to the ERP or Vendisto
False = We will get the order price from RavenDB
Fixed an issue preventing the StaticList to be rendered from a custom tag in the HTML.
Fixed a bug that prevented ordering articles from a list in some implementations.
- Menu classification drop down restyle - Removed double named classifications - Dropdown in menu is styled red with white text
Activation form will not be shown anymore if the post was a success
Password fields will not be shown anymore if you submitted the form correctly
The selection interface allows users to selects a subset of the Favourites List, and Add the selected items to the basket in one click. This selction interface can now be anabled and disabled.
Added the option to show a description on the backorder overview page below the title.
Added the option to show a description on the invoice page
Added a setting to show or hide the header user menu dropdown. When the dropdown is hidden, the user will be directed to the account overview page.
The top level of the order history screen can now also display help icons.
Fixed a bug that caused the favorites list to show an error when the list contained a product without a price.
Fixed an issue that caused the quantity selector in the favorites list to have a wrong initial quantity, which was sometimes lower than the minimum order quantity.
The CSV upload from the account page now uploads a selected CSV file immediately, the separate upload button has been removed.
Implemented the option to filter news on facet or a search string, or sort news by title (alphabetical) or publication date.
Implemented the news sort dropdown html and functionality
Added the newscategory filtering to newsoverview
Added search filter element to the news overview page
The HTML of the knowledge items overview has been extended to enable more styling possibilities.
The contact information as entered on the delivery alternative address in the shop is now translated to a contact in Exact Online and coupled to the delivery address of the order. Next to name also the email address and phone number are stored in to the Contact.
Added UnitField setting to Exact Batch Interface. This setting defines which field (Code or Description) of the Unit is to be exported in the Gross Prices and ERP Cache PriceList and CustomerPrices XML.
If this functionality is configured in the settings of the Exact Batch Interface, the article (item) images that are uploaded in Exact Online are now exported in a (set of) Asset_Image.zip file(s) next to the Article XML export.
These assets are automatically imported in Vendisto and made available as article images in the shop.
The "extra description" field of the item in Exact Online is now also exported to Vendisto and can be found in the Description field of the product variant. The export of the extra description only works if this is configured in the settings of the Exact Batch Interface.
Costlines with 0 shipping costs are no longer sent to Exact Online
Fixed error that occurred when creating account in Exact Online for a passerby user. If the Exact Batch Interface is configured to create accounts for passerby users, the interface will now create a new account per order.
Added ShippingCountry to CalculateOrder REST API
Added import settings ArticleGroupDefaultTitle and EnableArticleGroupSplitting to the article XML import.
The ArticleGroupDefaultTitle can be set to Undefined (this is the default value) or to ArticleNumber.
If set to ArticleNumber this setting specifies that for new articles the ArticleNumber will be used as the title of the ArticleGroup when creating an articlegroup for the article if no Title element is present on the ArticleGroup XML.

If EnableArticleGroupSplitting is set to to Y (default value N) the article import requires that all of the articlegroup's articles are present in the article group node in the XML import. Articles that are not present in the node will be split from the articlegroup after updating the article.

The default behaviour of this setting will in most cases be the expected behaviour. Leaving this setting tot N will enable the update of a single article with XML coming from the ERP without splitting the article from the articlegroup.
Implemented DeleteNotImportedProperties as extra setting for article import. The settings is used in both article XML import as well as article Excel import. An extra checkbox was added to the article import view in Vendisto. The checkbox "Delete not imported properties" is default not checked.

The default behaviour of the article import used to be to delete all not supplied properties from the database. From now on this is only done if the "Delete not imported properties" option is checked or if the ImportSetting "DeleteNotImportedProperties" is set to "Y" in the article XML import.

It now is also possible with the Article XML import to update an article property without having to give the article group name. The Article XML import behaved different than the Excel import.
The customer's incoterm that can be shown in the user portal contained a three character database limit. The field's limit is increased to 255 characters.
SAP will now return the CurrencyCode in an order. The shop has been changed so it will sent the currency code from the order instead of the setup currency in the shop. If the order does not have a currencyCode we will fallback on the currency which is setup in the shop
Articles that have a discontinued state in EZ-base are now set to LifetimeState Active instead of to Suspended when beïng imported into Shoxl.
Added Currency and Incoterm fields to customer Excel import. The fields only appear in Excel if the currency and incoterm licenses are configured for the Vendisto user.

februari 2022

release 2022.02

De kortste maand van het jaar, maar dat is op geen enkele wijze zichtbaar in het aantal nieuwe features in deze maandrelease. We tellen er meer dan 30, waarvan het merendeel in de shopping en portal modules.

In deze release is het check-out proces fors onder handen genomen. We zien hier nieuwe mogelijkheden als het in bulk muteren van de winkelmand en het toevoegen van additionele informatie op orderregelniveau; maar ook een verbeterde performance zodat winkelmandjes met enkele honderden orderregels probleemloos kunnen worden verwerkt.

Zoals vorige maand aangekondigd is verder druk gewerkt aan het afronden van ons werk aan het bestelportaal. Hier zien we nu een vast menu op alle pagina's in desktop view, en een dropdown op mobiele platforms. Daarnaast is het bijvoorbeeld mogelijk geworden om een selectie te maken uit de favorietenlijst en deze in één actie toe te voegen aan de winkelmand.

Op integratiegebied lag de focus opnieuw op Exact Online. De interface met dit pakket is al uitstekend op orde, maar nu nog verder uitgebreid met een aantal gevanceerde ainstellingen. Verder zijn ook de interfaces naar SAP en Exact Globe op enkele punten uitgebreid.

The basket can now display an item selection interface. This interface consists of checkboxes per item in the basket, a select all and a remove selection option.
The basket now has the option to display a sorting interface. This interface displays a dropdown with some default sorting option (date added, name, articlenumber), both ascending and descending.
The shop can now display text fields with specific articles. If the text field is active in the shop it will enable a shop user to provide specific extra information with an article. This extra information will be passed to the back-end in the OrderLine information.
The checkout process pages can now optionally omit the left column (containing the basket summary). In Shoxl shops it is not uncommon that orders contain 100+ order lines. In such cases this summary is not very handy.
Phone and email will now be posted as well do Delivery Match even when you are signed in. This was not the case in the past
Fixed an issue that caused certain javascript files to throw an error due to the order in which they were loaded.
Fixed a bug that occurred when the shopping basket with a large number of different articles (over one hundred) was retrieving prices from Vendisto.
The filter functionality can now show the active filter options above the article group overview in the form of small containers. The containers contain the selected option value and a button that can be used to unselect the filter option.
Added the option for shops to have a custom html block under the filters / left menu.
The Shoxl Layout Language defines the content of pages. On the basis of the Layout Document which is written in this layout language the page HTML is generated. It is now possible to also define the news overview and news detail pages in this document. Previously News Overview and News Detail Pages were based on fixed templates.
Added checkboxes to the favorite list to allow bulk actions such as adding to basket or removing. Previously only a single article or the full list could be added to the basket
The dropdown user menu in the header is now also configurable in the layout settings.
The order portal section of Shoxl shops now shows a menu in the left column. The contents of this menu can be selected out of the available options for the accounyt section, grouped, and customized. This is all handled by the Shoxl Layout Language.
Added a layout setting that controls if the left user menu should only be shown on the account overview page, or all account pages. Hiding this menu is useful for, for instance, order history pages that contains many colimns and need page full width.
The icon set used in the account portal has been updated.
The portal shows placeholder images for all products without images. These images are served and produced by an external service. Due to an insecure connection to this service, the images were not always returned by the service, causing a "missing image" message.
Fixed an issue that caused prices to keep loading in the favorite list on small screens
Added optimalization of certificate variables used during in deployment process. hopManager was modified so future shops will also adopt this change in their deployment configurations.
In order to improve speed and reduce the dependency from external providers, resources that are used by our shops (such as font awesome) are now moved to the Cloudflare CDN.
The Exact Portal Edition enables the user to classify articles in a a 1-level deep classification in Exact online using a defined Assortment in Exact. Each article's selected classification is exported to the Shoxl shop by the Exact Batch Interface.
Added GIROPAY, UBERWEISUNG, APPLEPAY and BANCONTACT to definition of OrderXML Batch export. Published as OrderXmlExport_V5.xsd
The customer import now validates the lengths of the customer address fields in order to avoid database errors. An example of a condition creating an error: Exact allows 20 characters for postal codes, thus supporting codes like '80023 Caivano', while the shop only allows 12 characters for this field.
Article Export without articles no longer generates an export file
Fixed serialization problem when importing XML export files from Exact Online, caused by the Exact export not adhering to the Exact XSD. Fixed a bug in the mechanism that ensures that the Exact Batch Interface interface respects the API request limits.
Due to a new generic implementation of customer price calculation, both a discount price and the first level of a quantity discount table were shown in the article table price column. This has been corrected.
The Incoterms or International Commercial Terms are a series of pre-defined commercial terms published by the International Chamber of Commerce (ICC) relating to international commercial law. They are widely used in international commercial transactions or procurementprocesses. If applicable, the Incoterm description is now shown in the Account section of the Portal.
The Shoxl Webservice now supports a hyrid connector configuration.

This enables for example the webservice to use the ERP Cache caching layer for Invoice and Order history as well as the Shoxl REST interface for realtime Product information.

The mechanism supports the Account, Order, Price, Product and Stock dataservices as well as the ErpCache, Shoxl, ShoxlRest, Stem and Veldmans connectors.
OrderSuccessful is now set to true for successful placed order when using SmartLynx connector in Shoxl Realtime interface.
Replaced SmartLynx DataRequest from GET tot POST method. This solved an error that occurred when deserializing the DataRequest response.
Orderlines can now contain additional information, added by the customer to specify elements such as color charts name for paints, or texts to be printed on clothes. For this purpose we have added a CustomOrderFields field on OrderLine to REST API definition of the PlaceOrder Webservice. This is documented in ShoxlRestApiSwagger_v4.json.
Static lists show the products that are added tot the list in the position the list is added in the Page Layout. The Vendisto interface to position these items has been improved.
The Static List functionality has been extended to support other item types. A static list can now contain: articles, article groups, categories or a combination of those three items. It can also contain one free HTML block. These items can be shown in a slider or in a container containing a fixed number of blocks.

At this moment static lists are supported on the following pages: HomePage, ArticlePage, ArticleGroupPage. In the near future this feature will be added to Category pages also.

januari 2022

release 2022.01

Januari 2022: een mooie maand voor het account portaal, dat eindelijk weer eens de aandacht kon krijgen die dit verdient. Een verbeterd menu met meer aandacht voor de mobiele versie, nieuwe componenten zoals een pagina voor upload van CSV bestanden, nieuwe features zoals het sorteren van de favorietenlijst op basis van toevoegdatum, een fors aantal kleine verbeteringen... Enfin, bekijkt u het zelf eens.

En "be warned": hier gaan we het niet bij laten, in februari gaan we onverstoord door met het uitbreiden van dit portaal totdat we echt niet meer zouden weten hoe we dit nog beter kunnen krijgen.

In de tussentijd zijn we ook druk bezig geweest met onze Portal Edition voor Exact Online, die we hebben voorzien van een geheel nieuw jasje. We zijn er trots op dus vinden het maar al te leuk als u het resultaat eens wilt bekijken. Maak een afspraak voor een online demo zodat we kunnen zien of ons enthousiasme terecht is. (Niet verder vertellen maar: we hebben de hele maand februari ook nog eens een mooie introductie-aanbieding.)

Een ander onderwerp dat ons in januari heeft beziggehouden is het check-out proces, waar we een fors aantal kleine verbeteringen hebben doorgevoerd. Het springt allemaal wellicht wat minder in het oog, maar de continue verbetering van ons e-commerce platform is een belangijke basis voor ons en uw succes.

The account portal offers customers direct access to their data in the ERP system, such as order status and invoices. It also helps them in the ordering process, e.g. by providing access to favorites lists and upload CSV-files to quickly fill the order basket.

The favorites list can now also be sorted by a dropdown selection. Furthermore the option to sort by date added has been added to the options.


The CSV basket upload functionality has been expanded with an overview that will be displayed after the upload and before the add to basket step. In this overview the uploaded article list can be edited (remove and change quantity). The overview also provides feedback about articles that can't be ordered (e.g. due to stock issues).
The shop now contains a default page that acts as a portal to the CSV basket upload. This page also provides a tutorial for the usage af the CSV basket upload functionality.
The Incoterms or International Commercial Terms are a series of pre-defined commercial terms published by the International Chamber of Commerce (ICC) relating to international commercial law. An optional Incoterm element was added to the Customer XML import. This information is shown to the user in the account section of the user portal.
Fixed the mapping for Open state of both order and orderlines. This state was shown in the shop as Unknown.
As part of this change the GetOrderHistory webservice was also extended with an OrderState field in order to be able to show order state in the overview.
A bug in the Orderstate mapping of the ERP Cache database caused the order history in some cases to fail. The problem was fixed.
Implemented bugfix for order import that was overwriting wrong orderlines when updating order.
The basket can now display an optional text above the basket contents. This text is only visible if provided in the resource overrides.
Article pages now have the delivery date already filled in if the user navigated there from a filter page that had the filters set to a specific delivery date
The payment costs calculation contained a bug that caused the calculation to return the wrong amount due to a tax check issue.
Payment methods can be linked to discounts; e.g., paying through iDEAL might lead to a 2% discount on an order total. The payment cost orderline however would only display costs abovve zero, so no discounts. This has been fixed.
A bug in the address logic in the order process prevented the state/region code to be updated in the checkout.
The combination of a customer invoice address in the (EU) country of the supplier (VAT required, and a delivery address in a non-EU country such as Switserland, would lead to VAT incorrectly being added to the amount charged via a Payment Service Provider.
Pickup point information was missing in the order message (sent to the ERP system and used for the order confirmation message), and also not shown in the shop back-office system Vendisto. This information has now been added.
When a user address does not include a (last)name, the orderservice will now use the (last)name of the main contact person of the customer organization.
In de settings of the Shoxl to Exact Online connector it is possible to define a Payment Condition to be added to the order which depends on the selected Payment Method in the shop. This mechanism was failing when being partially configured.
The improved behaviour is that in case of an unconfigured Payment Condition for the Payment Method, the order will simple contain no Payment Condition. In Exact the Payment Condition will default to the one that is specified for the Customer.
Fixed VatCode mapping for Exact online ErpCache Order history export
The export of pricelists without volume discounts is now implemented in the Exact Batch Interface.
An optional Currency element was added to the customer import XML format. This element can be used by the shop to predefine the users currency in the shop, for instance when changing currencies is not allowed.
The sort by "Position" in the article table did not function correctly and has been fixed.
Fixed a bug in the ordering process for shops that use the packages calculator.
Fixed NullReferenceException that occurred when STEM interface did not return price. Article without price is now removed from basket after restoring basket on login.
A bug in the logic prevented a setting from performing as expected.
When a user in the shop has an order budget, the App must show the remaining budget and show a warning when this budget is exceeded. This part is now available in the app.
Bugfix in OrderDataServfice of Rest connector. Fix for PlaceOrder function not beïng called.
It is now possible to send an alternative delivery address to SAP with a debtor order.
The languages of Vendisto will now cached for one hour by default.
The cache time can be changed by the following web.config settings:

This change will improve the global import performance by 40%
And this change will stop the DDOS attack to the SQL server instance.

december 2021

release 2021.12

In december hebben we een nieuw lid van de Shoxl familie mogen verwelkomen: Shoxl voor Exact Online Portal Edition. De Portal Edition breidt Exact Online uit met een bestelportaal. Klanten bestellen online en hebben inzage in hun orderhistorie. Een win-win situatie dus: een efficiënter en goedkoper verkoopproces, en een nog hogere klanttevredenheid dan u al wist te realiseren.

Wist u dat bezoekers die zoeken op een B2C website tot 5 keer meer omzet genereren dan de niet-zoekers? En dat de gemiddelde orderwaarde ook nog eens hoger ligt? In een B2B shop zal dit wat genuanceerder liggen, maar dat de kwaliteit van zoekfaciliteiten belangrijk is staat buiten kijf. Met de Elastic Search integratie is een meer visuele vorm van zoeken nu ook beschikbaar voor Shoxl shops. En dat is niet alles: er wordt ook nog eens gewerkt aan een "native" uitgebreide zoek, dus: stay tuned!

Op integratiegebied is de aandacht deze maand vooral uitgegaan naar een uitbreiding van de koppeling met Exact Online, in het kader van de lancering van Shoxl voor Exact Online Portal Edition.  Maar ook voor SAP, Anzio en Dynamics waren er diverse kleine verbeteringen.

Shoxl for Exact Online Portal Edition is our new entry-level edition for companies that want to extend their Exact Online installation with an Order Portal. The Order Portal enables customers to order online, facilitates quick and repeat ordering, and to view order status and order history. Portal accesss and product catalogue management is fully managed in Exact, without the need for for plug-ins and the likes. The Portal itself runs cloud-based in its own instance, so no local installation necessary.

The Portal Edition therefore is an out-of-the-box, easy to install and manage, powerful and affordable extension to Exact Online. More information on this Edition can be found here.


Shoxl now interfaces with ElasticSearch through Swiftype, a commercial onsite search engine built on top of the Elastic platform. Through this integration, searching a catalogue can now result in a dropdown showing both images and textual search results.

This allows for a more visual type of search (of course, depending on the availability of useful product images). The dropdown will be populated through auto-completion; so every character that is added will change the results set towards a set of of products that more accurately match the search expectations.

ElasticSearch is part of the Elastic Stack: a cloud-based search and analytics engine. ElasticSearch enables the creation of a leading search experience. The tool comes with robust analytics and tunable relevance controls. Users can influence search results by setting weights and boosts, and can promote or hide specific search results.


The Elastic/Swiftype integration is available through a monthly subscription, starting at USD 79 for an assortment of up to 5000 products. Currently the integration will only work on product sets without authorizations.

In parallel, we are extending our standard Shoxl product search with a dropdown that also autocompletes and contains images and texts. This native search extension is epexcted to be available early Q2/2022.

Our search will deliver the same search experience, but also take into account authorizations on products. The search results page will not be changed. We will still show filters that are generated from the search results; and return product groups and classification nodes instead of individual products. An important difference with the Elastic family will be that we will not (albeit initially) offer facilities to users to customize search results on the basis of an analysis of search behaviour.

The choice between Elastic and native search will first of all depend on the use of authorizations. If they are not in use, the main advantage of the ElasticSearch integration is the adaptability of Search results by the user. Using ElasticSearch comes at a cost however: these facilities do not come cheaply, especially with large assortments.

The display of youtube video assets has been improved by scaling the window used to display the video. Several small fixes to the styling en HTML have also been made.
User management now contains an option to enable/disable the downloads feature for specific users.
The order lists column in user management is now only visible of the module is active. Previously it would always be displayed, resulting in an empty column in the UI.
The Back Button will now always navigate to the Account page when using the barebone setting
Basket now gets rebuilt correctly when changing the currency
Fixed an issue that caused custom javascript to be ignored by Grunt.
Fixed an issue that caused the sort controls to stop responding after opening and closing an article detail popup.
A bug in the function that orders assets in some cases caused the asset sequence of article or articlegroup asssets to differ from the sequence defined in the import sheet.
Added the HideHeaderAndFooter functionality to the POST method of password reset. This one was forgotten
When using the bareBoneLoginPage. If we are signed in, we should not be able to access the PasswordReset page, Activate page and Register customer. In this case we will be redirected to the home page
Fixed an issue causing confusion when rendering images and downloading assets,
Bug fix: Calculate order works now without a webservice or if we use Vendisto as ERP
An asset of type file got the wrong filename when downloaded, this has been fixed.
As a result of a bug in the logic used to set the active page in the main menu the situation could occur that 2 pages where marked as active simultaneously. This occurred when one page started with the title of the other.
A bug in the code has been fixed that caused the budget functionality to not always work in specific cases.
Fixed error that occurred when displaying orderlines in the account portal. The issue affected only sales orders with an unfinished PriceAndTaxCalculation in SAP ByD.
Fixed missing translation of order state in order history overview returned by REST API.
The default Shoxl ERP connector now returns the order reference field for the order history overview.
The default import language of the Vendisto imports that are started by the automated import process are can now be configured in the deployment environment of Vendisto.
It is no longer necessary to define a double administration of delivery costs in both the shop configuration and in the Exact Online interface configuration. The shop now passes on the delivery cost related articlenumbers as specified in the shop settings.
Removed unnecessary dependency from Anzio.XmlImport. This improves the maintainability of the software and fixed a bug that was caused by a library upgrade in the Anzio XmlImport console application.
The STEM webservice connector is now implemented in a separate process while releasing the shop from the responsibility for the connector.

This architectural improvement enables the upgrade to the latest core version for shops that use the STEM connector.
Changes where made to the Shoxl Webservices architecture in order to incorporate the STEM connector in the framework.
Fixed bug that caused some suspended articlegroups to exist in RavenDB. This situation occurred when the webshop XML contained Articlegroups with only discontinued articles.
The Exact Online batch interface is now able to process shop orders that have a discount percentage specified on on the payment method. The discount is added to Exact as a discount on the entire order.

It now also is possible to configure separate Exact Online payment conditions for the different payment method defined in the shop configuration.
Hotfix for (newly introduced) bug caused by Shoxl WebService placing shipment cost orderlines in Vendisto with wrong orderline type.
Added request throttling on Exact Online REST Api calls. This mechanism ensures that the Shoxl Exact Batch Interface respects the minutely limit that Exact imposes on these calls.
In our continued effort to centralize all shop management, we have now moved the management of Vendisto User Rights to our central Setting management Tool. Vendisto User Rights govern the visibility and accessibility of Vendisto Sections (that is: Menu Items, Page Sections, Overview Grid Columns, Action Buttons) to Vendisto Users.

In a next step, the existing set of user rights will be extended, thus creating the possibvility to show users a version of Vendisto that is fully tailored to their needs.

november 2021

release 2021.11

In november is veel tijd besteed aan het verhogen van de kwaliteit en performance van de diverse componenten van het Shoxl e-commerce platform. Hierbij lag de focus op het kunnen afhandelen van orders met zeer veel orderregels, en het verbeteren van de prestaties wanneer zeer veel productdata (meer dan 100000 SKUs) moest worden getoond of geïmporteerd resp. geëxporteerd. Verder is de integratie met DeliveryMatch uitgebreid met de mogelijkheid om voor orderaflevering te kiezen uit beschikbare pick-up locaties.

Ook functioneel is er het één en ander te melden, waaronder een nieuwe integratie met PSP MultiSafePay, en in het Account Portal diverse nieuwe mogelijkheden zoals de optie om kolommen te verbergen.

Op integratiegebied is de aandacht deze maand vooral uitgegaan naar een uitbreiding van de koppeling met CS WholeSale, het ERP-pakket van Centric. Verder zijn diverse issues in de bestaande interfaces aangepakt.

En tenslotte: deze maand is veel aandacht besteed aan het verbeteren van het uitrolproces van nieuwe shops, dat inmiddels vrijwel geheel geautomatiseerd verloopt met onze tool ShopManager. Goed nieuws voor onze nieuwe klanten dus.

The integration with DeliveryMatch has been extended with the option to select a pick-up point. The available pickup points are presented in the third step of the check-out process, when a choice is made between Delivery and Pick-up. If multiple logistic carriers are used, all pick-up points that are part of their delivery network are shown.



The sale items list on the homepage can now optionally link to the ArticleGroup that contains the Article instead of to the Article itself.

MultiSafePay can now be selected as a payment provider for Shoxl.Shop.


(Image Copyright MultiSafepay) 


A new (optional) feature has been added that will show the visitor the remaining amount to be ordered to receive free shipping. This message will be displayed in the basket, the feedback after adding an article to the basket and in the basket summary.
Several performance fixes have been added to the article selection list component improving overall loading speed.
The sitemap will now be stored on disk to be able to serve the sitemap faster for search agents. if the sitemap does not exists, a new sitemap will be created. If it exists, we will check if it is older than one day. If so, we will recreate a new one, otherwise we will serve the one from disk.

A sitemap creation will only take 10 seconds (if not cached) with 100.000 items.

For a normal website, this will only take around 2 seconds (if not cached)

If cached, both requests will be served within a second

It is now possible to always show the shopping cart button and quantity selector on the article group overview page in tile view. Previously, these order buttons were only shown on-hover.


For our emailing module: OrderDate, PrefferedDeliveryDate and ExpectedDeliveryDate will now be formatted in normal human words like Tuesday 21 April 2021 9:45 instead of 2021-04-21T09:45:00
The option to display te name of an article in the article selection table has been added. This option is disabled by default.
The order overview list in the account menu had been made configurable. When configuring a shop the visibility and display order of the various columns can be set.
The order history failed for users without an account number, this has been fixed.
Fixed bug that caused empty order history list for realtime webservice connections using Shoxl REST API implementation.
An issue causing the register form not to be submitted has been fixed.
When price information for an ArticleGroup was missing the call that has to retrieve the prices for several ArticleGroups would fail. This would result in a failure for all ArticleGroups on a page. This has been changed so that all information that is available will be returned. ArticleGroups with missing information will be skipped.
As a result of a bug in the filtering logic there would be no filters available for certain search result. This issue has been fixed.
After filtering an article selection list the prices would no longer get loaded. This issue has been fixed.
Fixed bug that occurred for users with debtor number but without pricelist in the ERP cache.
Fixed an issue where when resizing an image the transparent background would be replaced by a black background in some cases.
The CS Wholesale connector of the Shoxl Realtime interface now returns the orderline prices after this was implemented by Centric in the CS Wholesale webservice.
Updated the CS Wholesale connector of the Shoxl realtime webservice so that orderlines with items on backorder are now shown with status ToDeliver.
The CS Wholesale ERP now supports the invoice history overview in the user portal. In the overview the invoices can be downloaded in PDF format.
The Shoxl REST API now also supports Bearer token authentication
The REST API connector that connects to ERP systems for customers that have implemented the Shoxl Realtime REST interface now returns PDF documents for the invoices that are shown in the user menu of the shop.
Created new database upgrade tool for the ErpCache database that is now configured to be run as part of the rollout process of the Shoxl Webservice. This webservice functions as an intermediate layer between the shop and the ERP Cache. The new tool centralizes responsibility for the database upgrade which was before shared by multiple processes. In rare cases this could cause issues.
Fixed OutOfMemoryException that occurred while importing pricelists in ERP Cache.
Fixed bug that caused an unknown error for customers that manage their prices in Vendisto. When importing new articles the price synchronization to the shop caused an error.
Fixed an issue in the exception logging mechanism that caused the webservice to fail returning the error to the shop in case of fatal errors. This was leading to slow behavior in the shop.
The Shoxl connector used a wrong parameter when requesting the order history of an account. This lead in some cases to an error.
A large image in the editor could be displayed at a size larger than the editor. This issue has been fixed.
The build process that builds our software was modernized so it now uses the latest version of the .NET build tools.
Shopmanager will now create ShopInstances documents for each chosen language, and a default LayoutSettings document when deploying a new shop.
A change was made to the mechanism that we internally use when connecting the Shoxl development environment to a specific shop instance. This change simplified the process and made it easier to adapt it to new shops.
Shopmanager will now automatically generate a default homepage for each selected language, and add these pages to both Vendisto and RavenDB.

oktober 2021

release 2021.10

In deze release is de Snel Bestellen functionaliteit van de shop uitgebreid met de "Order Grid": een overzichtelijke tabel op de artikelgroep pagina die alle varianten binnen een artikelgroep toont, inclusief hun onderscheidende kenmerken. Op dezelfde pagina is het mogelijk geworden om (in de taal die wordt gebruikt om pagina lay-outs te definiëren) groepjes van productkenmerken te plaatsen op verschillende posities. Dit verhoogt de flexibiliteit voor ontwerpers om tot een pagina te komen die optimaal communiceert.

Ook op integratiegebied is er goed nieuws te melden: er is een nieuwe directe integratie Met Exact Globe beschikbaar gekomen, en er is een koppeling ontwikkelt met de SmartLynx middleware laag op SAP Business One.

An OrderGrid option has been added for the ArticleGroup detail page. When this option is activated a selection UI by a definable property will be displayed (e.g. color). When one or more of the values in this UI is selected an OrderGrid result will be generated. This result consists of a grid containing all the articles available for the selected value. Multiple value selection lead to multiple OrderGrid results.

This functionality can be activated by defining the "OrderGrid" settings in the "ArticleGroup" of the WebshopSettings and placing the filter UI and result UI in the LayoutSettings.


When the OrderGrid is in use and only one filter option is available, this option will be automatically selected.
The possibility to display value icons in the overview tile of an ArticleGroup has been added. The tile can display icons linked to the property values of articles inside the ArticleGroup. There's no limit to the amount of properties that can be configured for this functionality.
When a user adds items to the basket, a setting now determines user feedback. Previously a feedback pop-up was presented. Now an alternative has been implemented, in which the basket preview automatically opens (and closes after a few seconds). This is the same preview as the one shown when hovering the basket.

By default, related articles are defined on article level. So, an specific product variant is related to a product variant in another group. An example would be: this drill bit is an accessory to this drilling machine. However, in some cases relationships are needed om the article group level. For instance, this t-shirt is a good fit with this trouser (insted of: this red t-shirt, size M, is a good fit with this trouser, grey, size 38). In order to easily define relationships between article groups A and B, the shop now automatically generates such a relationship when one single item in article group A has a relationship with one single item in group B.
The quick order import through CSV assumes that single units are ordered. However, some shops use different packaging units. It has now been made possible to use other packaging units in the Quick Ordering CSV, which the shop then translates to regular units or any unit the shop uses as its standard.
The shop offers the option to filter on possible delivery dates. By default, filters dispappear when you visit an article detail page (since you have found what you are looking for). However, the selected date is something you still neeed when ordering the article. Now, if you have selected a delivery date in the filter options, the shop will remember the date and preselect this delivery date when you visit an article detail page
The grid can now hide prices and the order UI when the prices are not being displayed as a result of the WebshopSettings.
A new layout element has been added to the layout language: PropertyCategoryTabs. This element describes the property groups that have to be displayed as tabs on the ArticleGroup page. The order in this list also dictates the order in which the tabs will be displayed on the ArticleGroup page.
In Shoxl shops, the layout of a page is set up using a layout language. One of the constructs in this language is the "PropertyCategory", which is used to categorize a set of product properties. This set can then be postioned as a whole on the page, and has its own class - which makes it essy to format the items through CSS. This offers great flexibility for page designs.

In this case, a problem has been solved in which a product property was classified in a sepecif properrty category, disappeared from the list of all product properties (which is as it should be), but did not appear in the propert category.
Due to a change in one of our WebServices editing the order lists had developed some issues. This has been fixed.
The display from the reset password page was broken because of a previous change.
A preventive measure was implemented to prevent a misconfiguration of Vendisto that lead to runtime errors.
A new and improved interface to Exact Globe is now available. This interface uses the Shoxl REST API. Benefits are an improved performance and even greater stability.
Smartlynx is a middleware layer from Anrova, which consist of a number of endpoints that connect SAP Business One to the outside world. Smartlynx is  general purpose layer, but also provides all data that is needed by a webshop - and is able to consume the messages that a webshop products, such as order messages.

To be able to connect to Smartlynx endpoints, an adapter has been developed that exposes the Shoxl REST interface to Smartlynx.
Various Optimizations in Article Import and Sync, in order to handle larger volumes of data.:

  • Prevented inmediate article synchronization when updating article authorization profiles in article import batch
  • Solved bug that caused synchronization error when importing new articles
  • Performance improvement when synchronizing assets at the start of the import. Assets are now synchronized in batches.
  • Replaced duplicate batch code by new generic BatchWhereIn queryextension function.
  • Solved bug that caused articles to by synchronized multiple times by passing on LanguageId to Articles synchronization in ArticleGroupSynchronizer
Fixed bug in the simplified article import that was caused by a trailing space in the article group title.
Fixed an issue that caused grid filters to break when navigating in Vendisto

september 2021

release 2021.09

In de september release lag de aandacht vooral op het account portal binnen de shop. Via dit portaal hebben debiteuren toegang tot hun informatie in het ERP-systeem. Dit account portaal is nu uitgebreid met een overzicht van lopende retouren cq retouraanvragen. Verder is nu instelbaar welke kolommen worden getoond in alle overzichten. Het eerste ERP-systeem waarvoor deze koppeling actief is is CS Wholesale van Centric.

The order overview list in the account menu had been made configurable. When configuring a shop the visibility and display order of the various columns can be set.

Order Overview List

The backorder overview list in the account menu had been made configurable. When configuring a shop the visibility and display order of the various columns can be set.
The shop now has the possibility to display a RMA overview. This overview can be found in the account menu of a authorized visitor.
The company name field is now hidden for non-business customers when supplying an alternative delivery address in the order process
Shoxl shops offer the option (if this setting has been enabled) to order articles directly from the article overview page. In some cases, the quick order button would be disbled until changing the amount to be ordered. This has been fixed: the button is now enabled by default.

In shoxl shops, products can be displayed in a pop-up (in order for prospects not to leave the products overview page). When ordering a product from this pop-up, and depending on settings, in some cases a message is shown asking the customer to choose between continuing shopping or go to the order basket. Pressing "continue shopping" closed the shopping cart dialog, but not the product display pop-up. This has now been improved. The customer now returns to the products overview page.

product display pop-up

The form validation in the order process failed when using the Google address autosuggest.
Fixed bug in the simplified article import that was caused by a trailing space in the article group title.
Fixed an issue that caused grid filters to break when navigating in Vendisto
Changed filter options for grids to fix a few bugs

augustus 2021

release 2021.08

In de augustus release zijn belangrijke nieuwe functies beschikbaar gekomen, zoals de mogelijkheid om (via de Google Places API) een check te doen op ingevoerde adressen. Daarnaast zijn de laatste kleine issues in de integratie met DeliveryMatch afgerond. DeliveryMatch handelt de integratie met de software van vervoerders af.

Aan de Vendisto kant heeft de focus gelegen op SettingsManager. Deze software maakt het centraal beheer van alle instellingen van alle opertionele shops mogelijk. Voorheen werd dit per shop geregeld, wat met het groeiende aantal shops echter niet meer doenbaar is. Het is de intentie om deze instellingsmogelijkheden op termijn ook toegankelijk te maken voor shopowners.

Het aantal cases op integratiegebied lijkt bescheiden, maar ook hier is een belangrijke stap gezet: onze software handelt nu ook complexere kortingsregels binnen SAP af.

It is now possible to automatically fill the address fields in the order process using an autosuggest search.

Autosuggest Search in Order Address field

The core shop can now display external plugins via a newly implemented token system used to retrieve the information.

integration of external plug in

The article image can now optionally be shown in the article selection table. The image will be displayed in a small format to make sure the table layout is kept intact.

The possibility has been added to shield the entire shop from unauthorized visitors. This means that only the login page and the password reset page(s) will be accessible to non-authorized users.

Authorization at shop level


User agent token is toegevoegd aan de Shoxl Core. Bij elk Mollie request zal deze als user agent mee worden gestuurd.

Changed the Russian and Spanish translations for 'excl. BTW' to be shorter.

Russian and Spanish translation

In the previous release a new option was implemented to display an article count in the ArticleGroup overview tiles. This has now been expanded with a settings to enable or disable this information in the tile.
The volume discount display has been made multi-currency enabling the display of the volume discount in the currency being used in the shop bij the user and not just in the default currency.
Added a label specific to the volume discount interface.
Some minor issues in the order logic have been fixed, mostly occurring when ordering using authentication profiles.
If one or more articles in a list didn't have a price the price filter for that overview would fail. This bug has been fixed.
The shop now support the Russian an Spanish languages.
An error occurred when loading an articlegroup overview with missing prices for articlegroups.
DeliveryMatch does not return the available delivery methods when an api-call is initially made. Repeated calls are succesfull however.
This behaviour was caused by a bug in the DM API, that occurred when the delivery address for which the available delivery methods were requested contained a space. This has been remediated.
1) For home delivery:
Delivery Method, delivery date and delivery time will now be display in the order summary step.

2) For pickup points:
The order summary will now display the pickup point in a correct way, without the 'unknown' delivery date. The houseNumber is added as well to the pickup address

3) Postmark emails have now access to the following fields:
"ShippingProviderInformation": {
"Carrier": "DPD",
"DeliveryDate": "woensdag 11 augustus 2021",
"DeliveryTimeFrom": "08:00",
"DeliveryTimeTo": "17:00"

In case of Pickup points only the carrier will be filled.

4) Postmark Paymentmethod has now a good translation:
"PaymentMethod": "Bij levering",

5) Postmark DeliveryMethod has now a good translation:
"DeliveryMethod": "Afhalen",

6) PostMark Shipment Costlines have now a good translation
"Type": "Verzendkosten",

7) Fixed a bug in the checkout. There was a possibility to skip the DeliveryMethod step. By bypassing that step you could order something without paying delivery costs

8) Fixed a bug in the checkout. If you press F5 in the checkout Delivery method step and proceed. The shop will crash.
The display logic for accumulative discounts was flawed, resulting in unwanted display of the accumulative discount information. This issue has been fixed.
Changed the way the app splash screen works to prevent stretching issues
The order button in a sale item thumbnail didn't display in some cases due to a bug in the model initialization. This bug has been fixed.
The minimal order quantity did not function as expected in some configurations. The issue would be that the minimal order quantity would be used a an order step size so that visitors could only order multiples of the minimum order quantity. So if the minimum order quantity was 6 then only quantities of 6, 12, 18, 24 etc. would be considered valid.

This logic has now been fixed. So for a minimum order quantity of 6 all quantities larger that 6 will be considered valid.
After selecting a Brand filter option all other filters would be disabled, this issue has been fixed.
The shop can show a “Pay now” button at the very last step of the order process (the “Thank you” page). In some cases however, the button was shown for payment methods for which direct payments are not available or relevant, like “Bank Transfer” if not handled by the PSP.

This logic has now been changed as follows. If a payment method is selected that is not processed by the selected PSP, or no payment option is offered: the Pay Now button will not be shown.

Non-PSP payment methods include:

  • Buy on Credit
  • Cash on Pickup
  • Cash on Delivery
  • Bank Transfer, if the setting AllowPspBankTransfer is set to False.
The AllowPspBankTransfer setting is setting in the RavenDB document that contains all PSP setting, which is separate from the generic settings file of the shop.
Added a state selector to the article groups and articles labels exports.
Added the possibility to show and hide the 'display order boost' column from the article groups grid.
Added rich text editor and image support to the long description fild of the setting data entity.
Added validation and error messages for the settings classification node selection in the setting create screen.
Fixed a bug where shops that had shop specific values were not able to be deleted.
Calculate order has been implemented in the checkout flow. We now can get Staffel discount from an ERP system in the checkout flow.
To be able to see the discount ánd the original price in the checkout flow we have to enable the setting ShowOriginalPriceAndDiscountPriceInCheckout
The active price period is now selected when retrieving action pricelist from Exact
Fixed bug that caused in some cases wrong price for articles with multiple volume discount lines in Exact online pricelist.
PriceList importer now removes pricelist records of not imported productnumbers in case of a full (not partial) ErpCache PriceList import.

juli 2021

release 2021.07

De juli release omvat een fors aantal wijzigingen en verbeteringen aan de shop. Een aansprekende verbetering is de mogelijkheid om de toegang tot specifieke content paginas te beperken tot ingelogde gebruikers. Maar ook de veelheid van kleinere wijzigingen leidt tot een duidelijke verbetering van de gebruikerservaring. Daarnaast blijven we hier heel enthousiast over de vele mogelijkheden die de integratie met Zapier biedt - nu weer op het gebied van preprocessing van de transactionele emails die de shop verstuurt.

Op integratiegebied is zeker vermeldenswaardig dat de shop nu ook beschikt over een REST interface, naast de reeds bestaande SOAP interface.

Delivery costs that are returned by DeliveryMatch should not include/present VAT when the shop is configured ex VAT (as determined by the setting ShowPriceWithTax). This has now been corrected.
The new way of sending the order confirmation mail via Vendisto lacked some information like tax data. All missing data has been added to the communicated model and is now available for use in the mail template.

VAT has been added to the order confirmation email.

The following columns are added / modified:

Example I
Prijs / unit (EUR) Aantal Prijs(EUR) BTW(EUR) Prijs met btw(EUR)
6,35 6 38,1 9% (3,43) 41,53

The price summary on the email has been changed as well. It contains now as well the VAT.

Example II
Totaal (excl. BTW) EUR 117,10
Totaal BTW (9%) EUR 10,45
Totaal BTW (21%) EUR 0,21
Totaal EUR 127,76
An ArticleGroup tile will now show the article count, just like the table view already did.
Pages can now be hidden behind behind the login, so only authenticated users can view the page. The page will be visible in the navigations (if added), a click on the link will result in a redirect to the login screen. This option can be activated for any page by clicking the "Secure page" option in Vendisto.
Added datepicker to list / table view for the article group page, to enable the selection of a delivery date for an order line when using that view.
The Article Group Overview Page can be set to use Tile View or List View as its default. When Tile view is chosen as the default, a view change by the webshop visitor to List View resulted in the display of a wrongly formatted page. This has been corrected.
Classification levels can be used to filter product collections. The use case is to show alle products in say a "main" category, and then filter the results using the subcategories of that main category.

In some cases a bug caused this category filter to fail. This has been fixed.
Changed text field for invoice country into language dropdow in order to avoid problems when interfacing with ERP systems.
Because Shipping Costs are mapped to a regular article in Exact, they are also included when re-ordering an order. This should not be the case, they should be calculated again when the order is placed.
Fixed a bug caused by resizing images. This error caused webshops to not display images.
Delivery costs will now be visible / calculated even if someone enters 0 euro's in the settings.
The Postmark e-mail functionality in Vendisto now has the possibility to pre-process order data before sending it to Postmark. This endpoint is optional.

An example of such usage is preprocessing by Zapier to sent mails to different sales offices, depending on the delivery address of a customer.
Implemented retry mechanism for retrieval of token that is needed for communication with Exact online.
The Shoxl Webservice now supports a standard REST connection to the ERP system next to the existing SOAP interface.

https://shoxl.gitbook.io/erp-integration-guide/webservice for detailed information.
Fixed a bug where the earning KPI box would not show on the welcome page

juni 2021

release 2021.06

Vanaf de juni release is het mogelijk om externe templates in te zetten voor alle transactionele mail die de shop verzendt (wachtwoordwijzigingen, orderbevestigingen, etcetera). Verder is het eenvoudiger geworden om custom formulieren die worden gemaakt met externe editors in te zetten ter vervanging van de standaard formulieren van de shop.

Op het gebied van integratie met ERP systemen is weer veel aandacht uitgegaan naar integratie met de diverse Exact varianten. Zo is het mogelijk geworden om in Exact aan te geven wat de minimale bestelhoeveelheden zijn per product, en is een klein maar storend afrondingsverschil dat ontstond als gevolg van btw berekeningen verholpen.

Transactional emails that used to be formatted by the shop and then sent by Postmark, are now using Postmark templates.
The order information is sent through

This had the added advantage that user-specific design issues are now isolated in templates, and do not pollute the standard Shoxl Core Shop Solution.

The following functionality has been added to the email functionality:

1) Based on the language/region, dots / commas are displayed with the amounts
2) Amounts are now rounded to 2 decimal places. 1.567 is shown as 1.57
3) Prices are now always shown with two decimal places. 1.5 becomes 1.50
4) The templates are now multi language.
5) The hyperlinks are now environment independent. So staging now points to staging and production to production
6) The template now also contains the field currency
It has been made possible to configure a custom form for new customer registration.
This is done by creating this form by any means, for instance by using a package such as mailchimp. Next, the form is embedded on a Page in the shop.
The only question that remains is: how to link the "Register" button on the Login page to this Page. This is done by creating a link in the resources file on the specific button class.
Although some configuration is involved, this creates great flexibility for creating custom registration forms. A nice example can be found here: https://cobecopharma.com/nl/registratie
It is now possible to filter article on Delivery Date on the search pages / filter pages if delivery dates are imported per article.
DeliveryDates are not imported anymore in the ERP cache, but from now on by the Shoxl Pro Xml importer.
The Spanish and Russian languages are added tot the Shoxl shop.
Fixed a bug that made the images be displayed in the wrong size when using Cloudflare.
The shop allows for a minimum order quantity to be defined for an article. When this quantity is set, the customer cannot order less than the defined number of articles.
The minimum order quantity is provided by the ERP system through the PriceList and CustomerPrice exports. However, Exact does not have a standard field in which a minimum order quantity is defined.
The Exact (Online) integration now looks for the freefield MinimumOrderQuantity on an article (item). When present, the information is used to fill the minimum order quantity in the export files.
Fixed bug that prevented net prices to be exported to the ERP Cache for customers with over 60 pricelists.
Pricelist export now supports pricelists with multiple price periods and exports the pricelist of the active period.
Increased precision on price fields in PriceList and CustomerPrice tables in ERP Cache in order to fix rounding difference on shops.
Exchange rates to same currency are no longer exported to ERP Cache in order to solve problem with double export of prices.
Fixed a bug that enabled the user to change the quantity ordered of an article in the basket below the defined minimum quantity.
Customer import is now using case insensitive comparison when validating on double usernames.
The customer import requires user names to be unique. Because the validation is case sensitive, equal user names passed validation, causing the importer to crash. This has been fixed by making the validation case insensitive.

mei 2021

release 2021.05

De mei release biedt een aantal uitbreidingen op de shop. Een leuke nieuwe optie is de mogelijkheid om gewenste afleverdata direct in de winkelwagen aan te passen, zodat niet terug hoeft te worden gegaan naar de artikeldetailpagina. En met de toevoeging van de Spaanse en Russische taalvarianten kunnen deze markten direct worden bediend.

Op het gebied van integratie met ERP systemen is de shop (of in feite de ERP cache) uitgebreid met de optie om geen gebruik meer te maken van wisselkoersen, maar om prijzen in elke valuta apart op te geven.

Previously delivery dates could only be set on productpage, and were fixed in the basket. It has now become possible to change delivery dates without leaving the basket, so on the orderline.
A setting has been added to hide VAT in the shopping cart dropdown. In combination with other settings it is now possible to hide VAT completely, as some shop owners need.
The core shop now support progressive image loading in the overviews. This option can be enabled by setting the WebshopSetting "UseProgressiveLoading" in the Image settings to true.
Spanish and Russian are now available as default language in the core shop.
It has been made possible to display a logo on the article detail page in a non-ezbase shop. The logo can be added via the LayoutSettings.
It is now possible again to filter on the articlegroup page on Article Properties. It did not work because the Article properties were not indexed correctly.The following has been changed: A new version of the ArticleIndex has been created. A dynamic field named: 'propertyvalue_' has been added which will contain the Article properties
Fixed in bug in the quote mail communication: a pickup location never received an order copy.
The Veldmans Mobile App has been changed: The connection to Raven has been changed so it can do now more than 30 calls in one session
The ERP Cache already had support for multiple currencies by importing exchange rates for other currencies. It is now possible however to import CustomerPrices and PriceLists in multiple currencies in the ERP Cache without the use of exchange rates. In this case the calculation is no longer made in the ERP Cache but in the ERP itself.

april 2021

release 2021.04

In de Shoxl april release is binnen de shop de mogelijkheid beschikbaar gekomen om meerdere standaard orderlijsten te creëren, die vervolgens met één klik in de winkelwagen kunnen worden geplaatst. Deze lijsten kunnen zowel door de shop eigenaar als door de bezoeker worden aangemaakt. Ook is gewerkt aan diverse performance verbeteringen.

Op het gebied van integraties is gewerkt aan uitbreiding van de faciliteiten om Order Documenten op te slaan in de ERP Cache, de laag tussen het ERP systeem en de shop.

Voor Vendisto is deze maand weinig te melden. Er wordt volop gewerkt aan de Visual Editor (dynamische items). De verwachting is dat deze nieuwe bouwblokken in mei of uiterlijk juni algemeen beschikbaar zullen komen.

A much requested feature is now available: the option to create multiple lists of products that a customer can maintain him/herself and add to the shopping basked in one click.

The option is available for logged-in users. When it is enabled, the user gets the option to create, edit and delete lists. A list can contain an unlimited number of articles. These articles can be ordered from this list individually or grouped.

The shop owner has the possibility to add, edit and delete order lists from all customers from Vendisto. There's also a new import option enabling the shop owner to import new lists.
When items are on sale, the favourite list did nog show the special offer price (but the regular price instead). This issue has been resolved.
The UI for related articles would not be entirely hidden if no active articles where present in the related articles collection. This has been fixed.
Some structured product data markup needed by the Google (and other) crawlers has been changed. We now use https instead of http. Furthermore, itemprop=offers was missing and has been added.
It is now possible to view photo's that are attached to orders in the order history view of the account portal.
The article group overview page loaded each price individually, instead of doing a bulk request. This resulted in poor performance for large pages with many article groups. The implementation has now been changed: alle prices on article group overview pages are now requested in bulk, so only one call to the ERP system is needed.
A setting has been added to hide VAT in the shopping cart dropdown. In combination with other settings it is now possible to hide VAT completely, as some shop owners need.
The option to put a label on top of and image (e.g., 30% discount) has been improved.

Resized PNG images will now remain PNG images and will retain their transparency.

The option has been added to define a label for a specific article. The previous implementation only allowed labels on article groups (so on all articles within this article group).
A bug has been fixed in the favorites list that prevented the article prices from being loaded.

The timing for loading of the basket and usermenu in the header has been changed to gain a small improvement in load times.
The shop's webservice backend now supports an extra function to disclose order documents from the ERP if the connector supports this feature.
ERP Cache importer now supports ERPCache OrderDocument format.
Exact batchinterface is now able to export of photo's that are attached to orders in Exact in XML file that is structured according to the ErpCache OrderDocument format.
The move to Vendisto.net as the standard domain for staging environments has created some redirect issues. The web.config for the Vendisto website can now make a distinction between vendisto.net domains and other domains. This prevents redirect loops when using the vendisto.net domain.
The order line overview page within Vendisto did not show prices. This bug has been resolved.
An issue has been resolved that caused Orderlines in Vendisto to show the gross price and not the customer price

maart 2021

release 2021.03

Een belangrijke nieuwe functionaliteit in de maart release is de mogelijkheid om downloads op te voeren voor groepen van gebruikers of individuele gebruikers. Deze bestanden zijn vervolgens te vinden in het klantenportaal.

Op het gebied van ERP integratie is vooral gewerkt aan de Exact Online interface. In de nieuwste versie worden ook facturen (in pdf formaat) en beelden die zijn toegevoegd aan een verzending, opgehaald, waarna ze vindbaar zijn in het klantenportaal.

Binnen Vendisto is gewerkt aan opwindende nieuwe mogelijkheden waarmee dynamische content kan worden toegevoegd aan het content canvas. Dit maakt het mogelijk om op gebruiksvriendelijke wijze producten, nieuwsberichten en wiki-items te plaatsen op shoppagina's.

Products can be marked as quotation products, meaning that they cannot be bought directly but the customer has to contact the webshop for a price. For these products, an Ask Quotation button is shown on the article detail page. Prices can be hidden or the Manufacturer Suggested Retail Price can be shown.

For known debtors, these products can have a customer-specific price. However, since these products are marked as quotation products, logged-in users were not able to add them to the shopping basket.

This has now been changed. A webshop owner can choose whether quotation products can be ordered by known debtors, or not.
It is now possible to upload files in Vendisto, that can be made available to all users or to a set of specific users. These files are then available through the Customer Portal. This function can be used to, for example, provide users with user-specific downloadable pricelists.
The Exact batch interface supports export of invoices to the ERP cache.
The ERP Cache importer is extended with an extra format for the import of invoices.
The shop can be configured to display the Invoice PDF if the implemented ERP connection supports this functionality.
If AddressLine1 is empty, we will now fill it with available data.
Language code has been changed to 2-character ISO code.
Optional fields Telephone Number and Emailaddress are now sent too.
Increased ravendb:MaxNumberOfRequestsPerSession session limit in order to prevent issues with placement of big orders.
Exact batchinterface is now able to export of photo's that are attached to orders in Exact in XML file that is structured according to the ErpCache OrderDocument format.
The shop's webservice backend now supports an extra function to disclose order documents from the ERP if the connector supports this feature.
Exact BatchInterface now Export ErpCache_Stock XML format 1.2 which supports decimal stock values

ErpCache Stock Importer now accepts decimal stock values.

When configured to show numbers the available stock is now shown in the price unit of the article. Also a decimal stock quantity is now shown with decimals.
It can now be configured in the Exact batch interface if stock on Planning In is added and if stock on Planning Out is subtracted from the stock that is exported to the ERP Cache (and shown in the shop.).
Fixed security issue in invoice download.
The echoservice can now be used by our monitoring software to check if the Shoxl webservice is available.
The Visual Editor is being extended with multiple dynamic blocks. Using these blocks, items such as product items/lists, news items/lists and wiki items/lists can be placed on the canvas. Underneath the surface, this is then translated in a dynamic tag that is sent to the shop page. These tags can also be written by hand. Using these new function, dynamic pages can be build by non-technical users. The functions will become gradually available. The work is expected to be fully finished in release 2021.06.

In this release, the dynamic blocks for Product Items and Product Lists are available for selected users for beta testing.
The simplified article importer now prioritizes the active article groups when matching, and puts the article in active AG.

februari 2021

release 2021.02

In de februari release zijn enkele kleine functionele verbeteringen beschikbaar gekomen, zoals de mogelijkheid om te specificeren wat de positionering van landen moet zijn in de dropdown in de checkout flow. Ook enkele problemen die konden optreden bij internationaal gebruik van een shops zijn verholpen.

Aan de integratiekant is veel aandacht uitgegaan naar het verbeteren van de efficiency van data-uitwisseling. Zo is een formaat ontwikkeld om leverdata-schema's per product per klant te kunnen importeren, zodat klanten op hun eigen kalendertje kunnen zien wanneer bepaalde versproducten geleverd kunnen worden.

The country selection in the order process has been improved. It is now possible to move a selection of countries to the top of the list in the dropdown. The rest of the countries will be displayed below these preferred countries and will be displayed below a separator. Furthermore, the possibility to display country names in the language used in the shop has been added. Previously this was limited to one language, English.
Countries shown in a drop down in the order process will now by default be shown in alphabetical order by display name.
The steps displayed in the top of the screen during the order process have been made more flexible. This has been done to enable more layout options and cleaner HTML.
Fixed bug in filtering that in some cases was leading to empty result lists
Fixed a bug that caused a visitor from a timezone different from the server timezone to select a preferred delivery date.
Fixed bug that occurred on pages with downloads section
Due to a logic bug the label that can be put on top of product images, for example to show that an item is a Sale Item, was not always available. This has been fixed.
A new webshop settings has been created. This settings contains a list of units. When the unit of a Packaging property is present in this list the packaging calculation will not be performed and the normal ordering logic will be used.
The ErpCache Product Delivery Scheme interface was changed so that it is now required to add a DeliverySchemeCode to the DeliveryScheme of a product. Also the ErpCache Customer import was changed in order to add a corresponding DeliverySchemeCode to the Customer.
This solution makes it possible to define different delivery dates for different customers for the same productnumber.
AutomaticShopImporter now stores failed import files in a separate folder. This speeds up the process analysing the failed imports.
Implemented ErpCache Cleanup importer.
See specification on https://shoxl.gitbook.io/erp-integration-guide
It is now possible to add an article number for delivery costs. This (external) article number can be used for the ERP system to connect the costline to a product.

The following setting has been introduced:
1) Price.ExternalArticleNumber (This number will be used if you are not using price regions for your shipments)
2) Price.RegionalDeliveryCosts[x].ExternalArticleNumber (If you are using price regions. You can setup a separate external article number per region. So the costline can be connected to different products in the ERP)
Article and article group imports now detach properties, VAT rates, assets, and authorization profiles when the respective column in the import was left empty.

januari 2021

release 2021.01

Mooie nieuwe shopfuncties deze maand! Er is onder meer een koppeling gerealiseerd met DeliveryMatch, een krachtige oplossing voor koppeling aan de logistieke systemen van vervoerders. Verder is aandacht besteed aan BTW afhandeling bij wereldwijde verzending.

In Vendisto is het nu mogelijk om aan te geven welke producten onderdeel moeten zijn van een productfeed, bijvoorbeeld voor koppeling met Channable.

Qua integraties is in januari vooral aandacht besteed aan kleine issues die konden optreden in de koppeling naar Exact, en in zeldzame gevallen als het opvoeren van orders met honderden orderregels.

The webshop can now connect to Delivery Match.
To activate an external Delivery service we have to set the following setting to '1'
DeliverySettings\DeliveryCostsMode = 1

When connecting to an external delivery service, the webshop gives the following functionality to change the webshop behavior:
DeliverySettings options:
1) DeliverySettings\FinalizeShipment = true / false (Default = false)
When set to true the webshop will finalize the shipment instead of the ERP software. Normally the ERP will complete the shipment

3) DeliverySettings\CheckConsistencyShipmentBeforeCreatingOrder = true / false (Default = true)
Checks if the basket contains the same items as has been entered in the shipment. So we check if somebody alters the basket after the shipment has been made. If the basket has been changed. The shop will redirect you to the choice shipment step

4) DeliverySettings\TaxIsIncluded = true / false (Default = false)
If set to false, the shop still needs to add tax to the returned price from the delivery service.

OrderUnitsSettings options:
To be able to work with an external delivery provider. We need to at least the following settings, those settings will be used to match product properties like weight, length, etc.:
1) OrderUnitsSettings\CommercialUnit\WeightHeaderId
2) OrderUnitsSettings\CommercialUnit\HeightHeaderId
3) OrderUnitsSettings\CommercialUnit\WidthHeaderId
4) OrderUnitsSettings\CommercialUnit\LengthHeaderId
5) Article\WeightPropertyId*

* Please note that WeightPropertyId should be the same ID as WeightHeaderId

Article properties:
Every article must have a weight, height, width and length connected to the above settings to be able to create a delivery. Without a delivery, an order cannot be created.

Shoxl webservice
At the moment it is only possible to connect to Delivery Match. In later stages it is possible to add other delivery service providers

To activate Delivery Match you have to set the following AppSettings in the web.config:
DeliveryService: value=DeliveryMatch
DeliveryApi:secret value=[API secret]
DeliveryApi:password value=[password]
DeliveryApi:userName value=[username]
DeliveryApi:baseUrl value=[URL to delivery match API]
DeliveryApi:ClientId value=[ClientId]
DeliveryApi:ClientChannel value=Shoxl webshop
The shop can now handle the following rules:
1) If (B2C or B2B) sale to outside Europe, shop will use 0% vat.
2) If B2B sale to another EU country*
the shop wil use Reverse Charge (0% vat)

*The EU countries can be modified by adding or deleting country codes. This can be done in the web.config of the Shoxl.Shop core

Edit the following setting: shoxlpro:ViesCountries
Add countries comma separated:
By Default the shop will use the following values:

Work still needs to be done:
At the moment the shop support multi price regions. But there is no way to import multiple price regions.
(Case 72225)
It has been made possible to display specific styling when an article has a discount price.
A quickview has been created, in which a product variant is shown in an overlay so a customer can see details and order without leaving the overview page.
The payment methods: Bancontact & Apple Pay are now available in the webshop. They can be activated in the section: 'Payment/PaymentMethods'
To activate Bancontact add the number: 2097152
To activate Apple Pay add the number: 1048576
The packages calculator module has been changed so that it can now handle non-integer numbers.
An option to select a specific pickup location for an order has been introduced
A bug in the Mailchimp subscription functionality has been fixed. The handing of additional (custom) fields contained an error.
Changed interpretation of NettoPricePerItem field in PriceList and CustomerPrice XML of Exact BatchInterface. The NettoPricePerItemExclVat is the price including discounts.
Fixed bug that in some cases caused webservice to return wrong (0) 'from' price for price discounts
Exact BatchInterface now only exports accounts that have the accountStatus Customer
Order XML is now exported again in insbou order format
Fixed bug that in some cases caused a partial export of a pricelist
Orderline quantity that was exported in order XML is no longer converted to integer when importing order in Exact by the Exact Batch Interface
The ERP Cache now supports the import of decimal values for orderline quantity. The Exact Batch interface now supports the export of decimal values for orderline quantity.
Increased RavenDB session limit in order to resolve problem that occurred for a large order
Fixed error that occurred when importing classification nodes in empty classification.
Implemented fix for Value cannot be null error that sometimes occurred when paging data in Exact Batch Interface.
Fixed Unkown error in article import that was caused by duplicate assetIds ArgumentException when importing assets.
Resolvedn bug that in some cases caused an Exception when importing price documents in Raven database
Vendisto is now capable of defining a subset of articles to a specific feed. There is a new section Feeds in Vendisto/Settings, where all available feeds are show. There you can enable/disable a feed and copy the feed url,
Furthermore, it is possible already on article level to select a feed, in which the article will be included.
There is also import/export functionality with which you can specify the article subsets and to which feed/s they will belong.

december 2020

release 2021.07

Een korte maand, met alle feestdagen - maar toch is ons productontwikkelteam er weer in geslaagd om goede voortgang te boeken, vooral op het gebied van kwaliteitsverbetering. U merkt er wellicht niet zoveel van, maar dat is juist de bedoeling. Geen wijzigingen op Vendisto echter, deze maand.

Bug solved in RavenDB 5. Ordering on Integers is not supported so we will transform the value(position) to a long
If an article doesn't have the Commercial Unit property the default order interface will be used. in the old situation this would result in an exception.
The eletter subscription option now supports additional field (defined in Mailchimp).
If the debtor number is available in the quotation e-mail data it will be added as a visible element in the e-mail.
If the delivery address external ID is available in the quotation e-mail data it will be added as a visible element in the e-mail.
A bug in the display of company specific fields has been made. The company specific field would not show in some cases.
The number of fields that can be made mandatory in the registration form has been expanded.
Fixed the HTML for the tag in the order-confirmation mail. So it is used correctly and the details, billing adress and delivery address are alligned correctly.
When the publication state of an article changes it will no longer be displayed on the favorites list.
Sale item thumbnails can now optionally display an order button.
The restricted order list will also display the article number from now on.
An error in the filtering query resulted in invalid results in some cases.
Implemented generic solution for the mapping of shipping methods and salesperson for orders in Exact Batch Interface
A bug was solved that prevented stock to be shown for an article in a (rare) case where the article was was not included in a pricelist while using the ERP cache as stock provider.
Fixed bug that caused the mapping tool to sometimes stop processing a file in cases where the tool too early tried to process the file.
Added extra check on empty rows in Excel import. Rows that occur after an empty block of 100 rows will no longer be parsed by the importers.
This approach prevents the import from consuming all server resources in the rare case that Excel sheets with over one million empty rows are uploaded.

november 2020

release 2020.11

In de november release is het onder andere mogelijk geworden om per orderregel een gewenste leverdatum in te voeren. Deze kan worden weergegeven in de order bevestigingsmail. Het is ook mogelijk geworden om geselecteerde producteigenaschappen mee te sturen op orderregelniveau.

Aan integratiezijde is vooral aandacht besteed aan de issues die soms optraden bij het verwerken van zeer grote datasets.

In Vendisto heeft de aandacht gelegen op het losmaken van enkele klant-specifieke elementen uit de standaard oplossing. Het effect is dat CSS en vertalingen nu kunnen worden beheerd via Vendisto.

Upgraded Shoxl performance database to RavenDB 5.
The delivery date for an orderline wasn't displayed in the order conformation mail due to a bug in the mail generation code.
A new setting had been created that can be used to define the way the properties in the tabs on the article detail page will be ordered.
An optional required validation on the gender field in the customer request form has been added. This option can be disabled or enabled in the FormSettings.
If OrderUnits are being used they will be added to the order XML generated by the shop.
A bug in the generated basket HTML has been fixed.
An article image can now optionally be displayed in the improved order confirmation mail.
The possibilities to style the home category overview have been expanded.
The initial address selection and the address selection when navigating back in the order process contained some bugs that have been fixed.
Fixed a bug that prevented customer data in Vendisto from being saved.
Fixed a bug in the ArticleGroup Overview where the overview would remain empty if no prices are present.
In some cases generation of a barcode image would result in an corrupt image. This corrupt image would result in an unfound image in the shop. This would remain visible until the article would be changed and the caching on the barcode image would be triggered to build a new image, This issue has been improved upon so that a corrupt image will nog stay in the caching.
The properties tab button would be displayed even if no properties were available, this has been fixed.
The synchronisation of data from Vendisto to Shoxl now uses the ArticleHeader sequence as defined in the Vendisto to position the articles in the shop.
Not all available payment options where correctly implemented in de Vendisto Webservices. This resulted in certain payment options not being available to the visitor after selecting them. This has been fixed in this hotfix.
Implemented fix for Application Scope Violation exception that occurred when requesting users from Exact.
A bug in the importer that caused it to crash when importing a large collection of data has been fixed. The importer has also gained some speed as a result of the changes made to fix this issue.
Introduction of CustomerData XML format 2.2
- The PriceGroup element was removed from the XML definition
- A new PriceList element was added to the definition
Updated message bus handling in order to solve issues when synchronizing data from Vendisto to RavenDB at import time.
Solved exception that occurred due to large number of article groups when invoking Shoxl synchronization for IBH Export.
Prices in ERP cache are now rounded to two decimals instead of truncated when the import supplies prices with more then two decimals.
Added the funcion to dinamically change the styling of the shop, using the raven settings.
Added the ability to manage custom labels in Raven
The new custom error messaging is used across the Vendisto API. In the UI each error will be displayed in differently coloured touster depending on the HTTP response code.

oktober 2020

release 2020.10

Enkele highlights van deze release: aan de shop-zijde omvat de oktober release onder andere de mogelijkheid om artikel eigenschappen te classificeren en groepsgewijs te tonen. Op het gebied van integraties is de aandacht vooral gericht geweest op uitbreiding van de Exact interface. En binnen Vendisto vindt u nu onder meer nieuwe mogelijkheden om klanten aan kortingsgroepen te koppelen.

For a wholesale company selling tiles, a function has been created that allows a customer to calculate the number of boxes (containing tiles) that are needed to cover a specific number of square meters.
An option has been added enabling the shop to enrich an order XML file with additional article information in each orderline. This information is read from the properties of the article in the orderline.
The custom order confirmation mail has been extended with the optional display of the customer account number.
The option has been added to display article properties in the tiles used in the articlegroup en saleitem overviews. In the WebshopSettings it is possible to determine what properties will be displayed and in what order they will be displayed. There's also an option available to display brand, articlenumber, GTIN and manufacturer GTIN.
Product properties can now be classified, in order to be used/shown in separate sections. This could for instance be used to divide properties between tabs.
A new field has been added to the configurable contact form: "gender". This field currently supports 2 possible values: male and female.
An option has been added that displays the brand of an article on the article detail page.
A new setting has been introduced for hiding the tax numbers in the checkout
An improvement for the Order Unit module:
The shop can now convert the delivered volume to a given unit, this is for display only in the checkout flow.
This are the available options:
* Disabled = 0 (default), the volume will not be converted. It will be shown as it will be delivered to the webshop
* Millimeters = 1, the volume will be shown in mm³
* Centimeters = 2, the volume will be converted to cm³
* Decimeters = 3, the volume will be converted to dm³
* Meters = 4
The volume will be converted to m³
Please note that the shop only can convert in the following order: mm3--> cm3 --> dm3 --> m3 and not the way around."
A bug that caused an error message to be wrongfully displayed when ordering a sale item has been fixed.
Articles that make user of order units can now also be ordered from a tile in an overview.
The logic that determines if a user is allowed to order an article (when using authorization) was flawed and has been improved.
The barcode displayed on the article detail page would result in a server error when attempting to render the barcode for an article without a GTIN value.
A bug in the display settings for the customer type options in the customer registration form has been set. It was no longer possible to display a business type only form.
Added the configuration of a PriceUnitType to the Exact Batch Interface.
PriceUnitType BaseUnit takes the active itemprice with the highest unitfactor and recalculates the price to a price per base unit. The minimumorderquantitity is then set to the unitfactor of the itemprice. This will enable the shop to show the price per individual item. The customer can only buy items in amounts that are based on the number of items contained in the package.
PriceUnitType PackageUnit takes the active itemprice with the highest unitfactor and keeps the unit of this itemprice with a minumumorderquantity of 1. This will enable the shop to show the price of the package and te customer to select the number of packages we wants to order.
PriceLists, CustomerPrices and DiscountPrices are also recalculated based on PriceUnitType.
Fixed an issue that prevented multiple exact authenticator applications to simultaneously operate on the same server. Updated format of Customer batch export to XML version 2.1.
Article price list discounts are now determined on the basis of the debtor number, rather than the username.
Removed repositioning of articlegroups in classificationnode after declassification of articlegroup in article import in order to fix performance problem
Solved performance issue that occurred when importing articlegroups with ArticleGroup importer.
Fixed bug that occurred in articlegroup import when VatRate columns where missingFixed bug that occurred in articlegroup import when VatRate columns where missing.
Fixed bug that caused DisplayOrderBoostString to be overwritten by articlegroup position
Fixed unknow error in customer Excel import that occurred when importing customer without userrights column
Fixed bug that prevented mapping of EUOTHER and NONEU delivery costs to corrensponding articles for Huvema Order when placing order in Exact
Fixed bug that caused Exact batch interface to export customer addresses with legacy element names for addreslines.
The price importer contained 2 bugs. The first bug was an exception occurring when an article couldn't be found in the target database, causing the import to fail. The second bug was the fact that the article asset synchronization was being triggered by the price import while this is not needed in this case. Both issues have been fixed.
An option has been added that enables the classification of properties into several categories (1 per property). To make this possible a new module has been added that enables the management of the categories. A category can be created, edited and removed. It's also possible to change the position of the categorie in the list in Vendisto. This position is reflected in ShoxlPro by the order in which the lists of properties are displayed. A category can be connected to a property by selecting it in a dropdown in the property detail page in the properties module.
New-Product webhook added! This hook is triggered on simplified article import for each new product.
Vendisto now has a new pricing system enabling simpler price management. New in this implementation is the option to add customers to a price group that enables a default discount percentage for all the articles available to the customer.
Case 69020: added possibility to authenticate also with x-api-key header
Data pool fields are no longer editable in the user interface
The data pool fields can be added to an export sheet only if the shop is externally populated and the used has selected the "Include datapool labels" option when exporting
Added a new section in Vendisto, where publicly servable files can be uploaded and managed.
Adding overlapping items has been limited to one of a type. This means that Image Blocks can still have an overlapping Text item or an overlapping Button item, or both. However, trying to add a second Text or Button, respectively, will not produce any changes. The action of adding overlapping items is still in the Image Block settings
In order not to confuse users about how much columns are there in a Row, Rows will no longer change their width when the "Full-width" option changes value. To see how the page will look like on the webshop, click on the "Preview" option at the top-menu of the Editor
Rows that are hidden or not accessible for the selected authorization profile will be grayed-out.
The process of hiding rows remains the same. The process of adding/removing authorization profiles also remains the same.
To see how the page will look in the webshop, select the "Preview" option from the Editor top-menu. Grayed-out Rows will become invisible.
Users can now use the Image Block settings to add images in addition to double-clicking the Block itself.
The "Add Image" button can be accessed by selecting an Image Block and clicking on "Component Settings" in the side menu
Users can now use URLs instead of searching for the Video ID when trying to add videos. Supported providers are YouTube and Vimeo.
The URLs should be valid and lead and lead to an existing video. Otherwise, the player will display a warning message accordingly.
The video will assume its provider automatically and update its settings appropriately.
When editing a feed mapping line, the feed name disappeared. This has been fixed.
Instead of needing to double-click a Text Block in order to edit it, it will now require only a single-click. This was perceived as more intuitive and user-friendly
Users can now directly start typing once they add a Text Block. The added Block will be highlighted and the Rich Text Toolbar will appear.
The process of adding Text Blocks has not been changed.
Data pool fields can now be populated only by an external import
When importing article groups for non externally populated shops, the normal title will be used to match the importing records with those already in Vendisto
Fixud a bug where datapool fields were geting exported, rather than the regular fields the translations import/export

september 2020

release 2020.09

De september release omvat voor Vendisto een interface met Channable, en diverse faciliteiten voor een flexibele definitie daarvan. Verder is veel aandacht besteed aan het opschonen van prijsmanagement en BTW tarieven. Highlights op integratie vlak zijn een verbeterde integratie met Exact Online en AGP. Aan shop-zijde zijn vooral diverse problemen in het bestelproces verholpen, die zich konden voordoen in specifieke uitzonderingssituaties.

A new header menu has been implemented. The new menu will be displayed in the website header and will display all the root categories in a bar with a fold-out menu while hovering over these items. This fold-out menu contains the child items and their children in a list type display.
A bug has been fixed which prevented correct functioning of the Account Activation page.
A bug which prevented alternative deliver adresses to be shown, has been solved
A bug has been fixed that caused an error page when searching while logged in as a user with UserRestrictedArticleLists attached.
Fixed in bug in the logic determining what restricted order lists a user is connected to.
The mobile shop has been updated to the latest ShoxlPro core version. Some improvements have been made in the communication of messages to the app user.
A bug has been fixed in the order process that in some cases prevented a logged in user to place an order when using UserRestrictedOrderLists.
A user that has no UserRestictedArticleList(s) attached to his/her account will not automatically have access to all UserRestrictedArticleLists that are available to the customer the user belongs to.
An order for a passerby customers is now fully mapped to a new created customer account in Exact.
The interface to Exact Online now uses the Shoxl API key instead of a customer key. Furthermore, several changes have been made to the Exact batch interface parts: Delivery Costs are now optional, classification of the Delivery Account can now be specified, and Outlet/Sale price functions are now set per Shoxl shop user.
A bug has been resolved which prevented the import of ProfileRestrictedProduct files. These files describe for each authorization profile which products should be shown in the default product list that a customer with such a profile sees in the customer portal, after logging in.
Shortcomings of the feed response fixed. Image link is still under discussion.
The new UI for the product feed settings is more intuitive. It has two columns to choose product feed setting value. One is called Setting value where you specify the value of the setting with plain text. The other is called Product property where you can select to map a already existing product property value to the product feed setting value
Column is renamed to Product Property for better understanding.
The feed can be requested via two separate requests depending on the desired feed format response. There is one for XML and one for JSON. The request structure can be found in the Swagger APi Documentation.
Fixed a bug where an error message would appear when an article is selected for an orderline
Fixed a bug where when the user right section is not enabled for a Vendisto customer, users could not be saved.
Fixed a bug where the VAT rate for an article will not be updated in the performance database.
Article importers speed optimization by changing the queries
The orderline price per unit gets automatically populated when an article is selected
Creating VAT rate for a country with no rates will automatically make it default and assign it to all article groups.
Changed article price information labels
Changed the information text on the order line pricing information section
The price list price for an article now uses the debtor number for customer identification, rather than the username of its users.
The XML that is sent on the Order Confirmation Event was not formatted properly in the message body. This has been corrected.
Users will not be able to have more than 12 Cells in a Row. A placeholder will not be shown when hovering over such Rows.
Users can safely add videos, being sure they will be displayed accordingly in their webshop
Users can now safely use the "Delete" keyboard button to delete Blocks from the Editor

augustu 2020

release 2020.12

Highlights van de augustus release zijn de uitgebreidere ondersteuning voor het bestellen in diverse verpakkingseenheden, en in Vendisto de nieuwe facilteiten voor het beheer van BTW tarieven en de uitbreidingen van de Vendisto API met diverse REST hooks. Ook is op de achtergrond veel werk verricht aan updates aan de Shoxl infrastructuur. Niet direct heel interessant vanuit functioneel oogpunt, maar zeker wel vanuit de verhoogde betrouwbaarheid en de snelheidswinst die hiermee is geboekt.

ShoxlPro can now work with several packaging units. This means that the shop can be enabled to allow ordering by several units. For example: an article can be ordered bij "Commercial Unit (a box of articles), a pallet layer (several "Commercial Units") or a pallet (several pallet layers).

When ordering one of these packaging units into the basket the number of ordered articles will be shown because all price information works on a per article basis.

The packaging units in use and their values for a specific article can be defined in de article properties. What property is used for what packaging unit is defined in the webshop settings.

It is not mandatory to use all 3 packaging units, it is possible to use just 1 or 2.

An additional option to this is the display of weight and volume per article in the basket and for the basket as a whole. The properties needed to calculate this can be stored in the article properties and the webshop settings again define what property to use for weight and volume. This information will be displayed in the basket, the order process and in the order confirmation mail.
Added the data-attribute 'data-stockmessage-targetid' to each order view, so that each order view displays a message when the user tries to order an amount higher than the current available stock. Also moved the order feedback components to a separate div.
A new option has been added enabling the removal of duplicate items in the main menu. These duplicate items are caused by classification nodes containing only 1 child automatically redirecting to this child. This option is by default disabled.
The order confirmation mail generated with the new layout now has the possibility to display an image for articles on each order line.
Fixed bug in import of ErpCache Orderhistory that caused the Vatcode to be imported with a wrong value
A new way to determine what the homepage for a webshop is has been implemented. This enables the possibility to set a page using the new "PageEditor" template as the homepage.
A new module has been added that allow users to specify VAT rates per region. These rates are now set in the section Settings / VAT rates.

VAT rates for a region will be automatically applied to all existing and new articles that do not yet have a VAT rate for that region. These products will then get the default rate for the region. If applicable another VAT rate may be chosen at the product level.

It is assumed that all variants of a product (articles of an article group) have the same VAT rate. It is therefore defined at the product (article group) level, not at the variant/article level.
A module has become available for the creation and management of tokens that are used by external applications when authenticating to the Vendisto API.
New REST hooks give you the ability to subscribe and unsubscribe to certain event types - new order, new customer and new news item. When you subscribe you make a POST request to the Vendisto API and provide the hook url (to which we will send the data when the event occurs) and the event type (New_Order, New_Customer, New_NewsItem).

For authentication purposes a token can be generated on the Application Management page in the Settings of Vendisto. Each request to the API must consist of Authorization header with value - Bearer + space + token.
Vendisto is now capable of sending a JSON-formatted message to an endpoint, as specified in the Document Settings section, on Confirmation of an Order.
A setting has been introduced that defines whether product data originates from an external source. When this is the case, a button will be shown on the Product screen , section Description, that triggers the visibility of the fields that show the imported data. These fields are called "Original Title" and "Original Description Header/Footer".

The shop will use the Title, Description Header and Description Footer fields. Initially, these fields will be set to the imported data, so equal the Original field values. They may be changed by the user however.
The article group import/export has been extended with VAT rates for each country. So the number of columns is the same as the number of countries. These columns are not required. Each cell contains the applicable VAT rate for that article in the country specified in the head.
The buttons Ask a Question and User Manual on the Vendisto homepage now link to the Contact Page and the User Manual on the Shoxl site, respectively.
A bug has been repaired that prevented the "Back" button in the Vendisto customers section from working correctly.

Release 2020.07 (juli 2020)

In de Juli release is veel aandacht besteed aan het doorvoeren van verbeteringen in de Shoxl Scan App - de App waarmee u snel winkelmandjes samenstelt door barcodes te scannen. Verder zijn diverse uitbreidingen in de Drag & Drop page editor beschikbaar gekomen.

A scan of a barcode could results in more thanone find, because the search function also looked for the scanned GTIN in other fields such as the description field. For this reason the search and barcode scan functionality has been changed. The general search in the top of the app still works as before. The quick order in the basket and by extension the search function underlying the barcode scan has been changed. It will first attempt to find an article based on article number or GTIN, if this is unsuccessfully it will revert to the basic search functionality as described above.
The default configuration of the scan app has been changed to make sure that only secure call (HTTPS) are being made.
When switching users the values that had been entered in the field "Project number" and "Remarks" in the order process would be carried over to the new user. This is not a desired feature and has been changed by emptying the field when switching users.
Error messages originating from the search, quick order and scan functionality would get "stuck", meaning they where never hidden after display. This has been fixed. We have also implemented a new more user friendly way of displaying error messages.
We fixed a bug where a user after logging in from an article detail page would be confronted with a totally grey content pane in the scan app.
Introduced new setting "DisplayCustomerSelectedArticleProperties" (boolean). If set to true, all properties that are specified in CustomerSelectedArticleProperties will be displayed in a separate group/block. The properties specified in CustomerSelectedArticleProperties have higher precedence than normal properties of an article. So properties specified in CustomerSelectedArticleProperties will not be displayed in the normal property list of an article. The CustomerSelectedArticleProperties contains a list of header id's. Optional, a css class name for this property can be specified. If no css class name for a property is specified, then an index will be used as css class name.
"The article property table can now be ordered in the order specified in Vendisto Properties. The order as specified in the article import will then be ignored. The setting can be activated by adding a setting UseHeaderCollectionOrderingForTheArticlePropertiesTable with value = true."
The text displayed in de CSV quick order userinterface is now presented in the HTML format, enabling more elaborate layout options. The text is set in the resources table.
The article name in the favorites list can now optionally be wrapped in an anchor element.
A new setting has been added that will disable all order options in the favorites list when set to true.
"When trying to change slides on a carousel in the shop, an error was thrown. This was caused by the carousel arrows having an invalid "href" attribute. The href was changed to point to the carousel ID, as in Bootstrap 3's documentation"
A bug has been fixed that caused the shop to return a server error (500) instead of a 404 error when handling an url leading to a category, articlegroup or article with a suspended lifetimestate.
Fixed a bug that caused the article price information not to be retrieved correctly.
The articles in the CategorySlider where being displayed in an incorrect order, this has been fixed.
Disabled automatic formatting of XML files that are converted to Zip format in order to solve a problem that was caused by the formatting.
Orders from new customers can now result in the automatic creation of a new debtor in Exact, instead of being attached to a general collective debtor number for small customers.
An additional web hook event has been introduced. This is the New_Product hook event which sends the new articles from simplified article import.
66390 Page Editor: components now take full width of container (no padding)

Padding on some components was causing confusion about the component positioning. The paddings are now consistent and should be a closer match to end-user expectations

66305 Page Editor: All slides should have the size of the biggest image

Carousel was constantly switching height because placeholders had a fixed height independent of the images placed in the carousel. The behaviour was updated, so that placeholders have the same height as the highest image in the carousel. This should be more consistent with user expectations, especially if users fill the carousel with images having the same height

66304 Page Editor: Add hyperlink, alt for images/slides

The carousel component was capable of adding/removing images only. Images in the carousel can now point to a particular hyperlink (added from the side menu) or have an alt text (added from the image browser dialog)

66312 Page Editor: 12 col container that does not stretch the full-width

Previously, users had the option to place rows that span to the full width of a page only. Now they can make use of the container and container-fluid Bootstrap classes. By setting an option in the Row side menu, the selected Row will either occupy a fixed width (changing per device) or span the full width of the screen

66310 Page Editor: Change list element template and settings

List and item blocks now render a placeholder when dropped on the canvas. Furthermore it is now possible to specify the type of item that is to be rendered (product, news, wiki).

66591 Page Editor: Placeholders in shop for missing images

Image components without an image were displaying a placeholder in the editor, but as a missing image in the shop. Placeholders are now made available in the shop as well

65344 Page Editor: Hiding/showing content depending on device size

Bootstrap provides utility classes which enable users to hide HTML elements for different device sizes. Users can hide Rows by clicking on the crossed eye icon in the Row toolbar. Hidden rows can then be viewed by clicking on the same icon in the editor top bar

66998 Page Editor: Changing an image does not update site

Changing images (or other properties) should update site

66996 Page Editor: Label PageEditor positioned on top of image upload dialog

The upload dialog covers everything on the page

66315 Page Editor: Responsive height is lost on duplicate/move

Carousel slides and images should resize to keep the aspect ratio of the selected image. The behaviour was breaking when moving or duplicating components. Both now preserve their height even when moved or duplicated.

Release 2020.06 (juni 2020)

In juni is de eerste versie van onze volledig vernieuwde PageEditor beschikbaar gekomen. Met deze editor kunnen volledig responsive pagina's worden samengesteld via "drag-and-drop" van blokken. In komende releases zal de editor nog verder worden uitgebreid met nieuwe contenttypes.

A new "PageEditor template has been created in Vendisto and is now available for use in ShoxlPro. This editor gives total page layout freedom.

A totally revamped editor allows our users to build content in a more visual way, by dragging/dropping components. The resulting page is fully responsive (uses the Bootstrap framework).

The first version of the editor supports a limited number of building blocks. This set will be extended in the near future.

The editor can be activated by selecting the template "PageEditor" at creation time of a page.
All images in the ShoxlPro shops can now be served via Cloudflare CDN. This means a decrease in page load times and better security when it comes to attacks. This feature is optional. It requires the shop to be configured to use the caching layer. The feature requires a subscription.
The shop now shows both original and discounted gross prices, based on gross pricelists that are maintained in the ERP system.

The capability to shows customer-specific price lists (discounts) is also still available. It is thus possible to show, for a specific article, the original price, the discounted price, a customer-specific price, and if applicable also pricing discount based on volume.

Technical background: Implemented outlet and action pricelists to be exported as discount prices in brutopricelist, ERP Cache pricelist and ERP Cache customer prices for Exact batch interface.
"The new "PageEditor" template content will always be shown at full page-width (100%). This allows users to create banners/wows that span a whole page. Content that needs left/right whitespace must now be placed in a container.

Please note that this also requires a change of the CSS used for the shop; otherwise, standard bootstrap behaviour will result in a small amount of whitespace to the left and right of the row content."
The PageEditor template offers the option to specify which users can view the row content. This works on the row level, e.g.: the user will either see all content in all cells (columns) in a row, or the user will not see the row at all. Both rows and users are added to one or more authorization groups. The user sees all rows that are visible for the authorization profiles the user has been added to.
The order confirmation mail can now show product images. The images will be shown in the order confirmation mail by default en can optionally be disabled by the mail styling.
An articlegroup search result sometimes displayed the article image instead of the articlegroup image. This has been fixed. The articlegroup search result will now always display the image belonging to the articlegroup. If the articlegroup doesn't contain any images an article image will be used.
Vendisto instances that get data from an external datapool (such as EZ-Base, IceCAT or 2BA) show for relevant fields both datapool product data and the product data that has been modified by the user.

The button that shows/hides the product datapool data for a specific user is now only visible for Vendisto instances that are actually connected to a datapool.
For a better "what-you-see-is-what-you-get" experience Vendisto content editors now use the same styling as applied in the shop itself. The CSS to be used can be specified in Vendisto (Settings/Vendisto/Page editor external styling).

Images that are uploaded in the Vendisto editor now get the "img-responsive" class. Previously this class was only applied at page rendering by the shop. By adding the class to images in the editor we ensure that they are equal to the cell width here too.
Optimized import of WebShop XML files. The import now compares articles with the previous import and skips them if they are unchanged.
It is now possible to sum product stock in multiple warehouses, in order to show total stock.

Technical background: Shoxl Webservice using ErpCache Connector now retrieves new Stock table data in GetProductInformations function. Old location of stock data is used for legacy installations. ERP Cache Stock import now supports stock per WarehouseId. Stock is imported in new table named Stock. For legacy purposes the old stock field is preserved.
A cashback overview has been created which is accessible from the user portal and via the user menu. The cashback overview will show the cashback, the cumulative sales volume and the date until which it is calculated.

The Cashback overview can be enabled via the website settings
It is now possible in the order confirmation email to override the Articlenumber from a orderline by an Article property

Technical explanation:
To be able to override the article number by an other article property you should setup two properties:
1) OverrideArticleNumberWithCustomerArticleNumber: true
2) CustomerArticleNumberArticlePropertyName: "[PropertName]"

The second property will be used to match with the Article Property list node. So if [ProperryName] is called 'CustomerArticleNumber'
The linked articles should have property field named: CustomerArticleNumber
And the value of this property field will be used to be overriden in the order confirmation email.
Connected Shoxl webservice to renewed VelService that was developed by MSG
A bug that prevented product data import because it caused a high load on the caching layer (RavenDB) has been removed.

Technical info: Fixed NullReferenceException in CategoryAssetsChangeListener. Optimized memory usage of importer."