Update 4.0.3

New: User's can now log back to their remembered account if logged out or logged in as someone else. A new menu item to do this has been created under Logout.

Update 4.0.2

Fix: Improvements made to Item.Attachments and permissions.

Update 4.0.1

New: You can now set the Website Temporarily Unavailable. To do this go to Configure URLs and set Website Temporarily Unavailable Page Name. Logged in administrator's will still be able to access as normal.

Fix: The website under construction page will only show when a user is not logged in and no path passed in the URL.

Fix: Missing static files such as images, scripts and videos will now return standard file not found response.

Update 3.19.23

Fix: The SendEmailForm function did not send the attachments to subsequent recipients, only the first.

Update 4.0.0

New: Each business object, with the exception of a few types (Binary Signature, Configuration Setting, Import Script and IP Range), inherit Item which has an application wide unique ID.

Update: Auction management has been removed.

Update: Removed property ImportScript.IsUserImport.

Update: Many previously deprecated functions have been removed.

Update: Some configuration settings such as DocTypeDeclaration and ViewPort have been defaulted to the new norms.

Update: Restructuring of the file system, in particular the user files, images, videos, audios, scripts, stylesheets, etc.

Update: Restructuring of the URL short cut paths to match file system changes. For example, /galleries/my-photos/ for the URL to the gallery page and /galleries/my-photos/images/happy-days.jpg for a URL to one of the images.

Update: When outputing an article to a static file, the system will create a folder and output to an index.html file. For example, /galleries/my-photos/index.html, /blog/my-first-blog/index.html or /contact-us/index.html for a page.

Update: Item attachments can now have a title and description and be positioned in the list. The attachments can be local to the item attached /galleries/my-photos/images/happy-days.jpg, shared /images/great-day.jpg or external https://www.anothersite.com/images/awesome-week.jpg.

Update: Custom Properties can now be added to any item without adding a column to the database table. However, if you need to filter or sort that property then it is recommended to add a column to the relevant table.

Fix: Custom properties will now initialise from table column if exists when changing the type.

Fix: Custom properties initialised from table columns will now set unique where applicable.

New: The URL property for a menu item now has selectable list of pages and files under the default file path.

New: Functions Pluralize and Singularize.

Fix: Error when loading collection item in definition inspector when collection name does not resolve to object name by removing trailing letter "s" (singular name).

Fix: GenerateFilterEditor was not loading a drop down for custom enumeration properties.

New: Application.GetFiles(FolderPath, IncludeSubfolders) will return a list of files in the specified folder relative to the application absolute path.

Fix: Application.GetFolders(FolderPath, IncludeSubfolders, IncludeThisFolder) now returns a list of folder paths relative to the application absolute path.

New: Property Application.IsLocalHost which indicates if the application is run on a local computer, hence by a developer.

New: Service.TypeOfUsers: this allows you to specify the type of person/people using the service. For example, Attendee(s), Traveller(s), Rider(s) or Hiker(s).

New: When booking times, the user is now asked to specify attendees before adding to cart and checking out.

New: You can now set up a service for group bookings such parties, camps, etc. When a booking is made the system does not ask for each of the attendee details and a single booking is created which indicates how many it has been reserved for. To acheive this set Service.MaximumUsersPerBooking to a number greater than 1. You can also specify Service.MinimumUsersPerBooking.

New: Service.AllowOrderBeforeBooking will be ignored for group bookings.

New: When saving session variables, the system will also add them as a cookie on the client side which will help if session times out.

New: Can now add properties to a business collection item which will store while session is active.

New: Available quantities on products are not adjusted until the order is actioned.

New: The availability of products and services is checked prior to making payment.

Fix: Before adding item to the cart it checks cart for already added items of the same and checks availability on the combined.

New: You can now set an order as recurring. Orders for subscription to groups will automatically be set as recurring. The administrator or trading entity can also cancel the recurrence before it is due to recur.

New: A user's payment details (i.e. credit card info) can now be stored with a payment gateway and selected for reuse without reentering that information again. For recurring orders or orders with multiple part payments, the system will make the payment automatically when due.

New: Can now store credit card payment details with SecurePay.

New: Can now process direct debits with SecurePay.

New: A new property on gateway payment methods, Requires Reconciliation, indicates any payments made with this method will require reconciliation.

New: Can now cancel an order and if it has been actioned the products availability is rolled back, service bookings are cancelled and subscriptions for membership's expiry is rolled back.

Update 3.19.22

Fix: The generated email template now includes viewport and other necessary meta elements for formatting.

Update 3.19.21

New: Application.ResizeImage can now accept a resize method:

  • Contain: resizes to fit within both width and height. For example, 300x300 resized to 200x100 will result 100x100.
  • Emcompass: resizes to fit within either width or height. For example, 300x300 resized to 200x100 will result 200x200.
  • Cover: resizes to fit within either width or height but crops excess. For example, 300x300 resized to 200x100 will result 200x100 with height cropped top and bottom to center image.
  • Stretch: resizes to stretch to width and height. For example, 300x300 resized to 200x100 will result 200x100 stretched image.

New: When parsing Parameters in a URL where PageType=MethodView any missing parameters at the end will be defaulted to the method's parameter default value.

Update 3.19.20

New: In an email or email template, setting the Merge Object Type to "Application", in a HTML merge expression, will merge these expressions to the application once, rather than for each email's merge object (generally a recipient record). This will speed up the output of campaigns and lessen the load on the server processor.

Update 3.19.19

Fix: Group.SubscribeNewUser will now subscribe an existing user if no payment required.

Update 3.19.18

Fix: Error when an administrator completes an order.

Update 3.19.17

Fix: Digital items not automatically sending when order completing.

Fix: Form textarea elements were generated with a space when should be empty.

Update 3.19.16

Fix: Error in LoadHTMLContentInXMLDocument commented HTML included empty script or textarea elements.

Update 3.19.15

Fix: Unnecessary updates after inserting notes on a user were causing concurrency errors.

Fix: Once an order was processed the promotion was not being cleared and was being applied to the next order.

Update 3.19.14

Fix: Not redirecting to referrer URL after posting a form.

Update 3.19.13

Fix: Concurrency error when installing updates.

Update 3.19.12

New: ShowInTemplate can be set in custom ASPX page directives.

Update 3.19.11

New: Install Updates can now redirect to a URL before installing an update.

Update 3.19.10

Fix: When sending an email the list of email pages to select from is filtered to show published only.

Fix: Error when generating site map.

Fix: Article.Publish.On only set when a moderator is logged in.

Update 3.19.9

New: Modified Order.MakePayment so it will accept negative amounts for recording refunds.

Fix: The set up for new websites will set the Licensee's record creation date/time to the time of set up.

Update 3.19.8

New: The Default User Country can now be set via Configure Components. You should only set this if you are only targetting and delivering to users from that country. Leaving this blank will allow the system to auto-detect where the user is located. However, make sure you are either requesting the user's geolocation via the browser they are using or you have the IP Ranges list imported to the database to detect location based on IP address. Without either of these the system will detect the user's browser culture settings which is not always accurate as most browsers come installed with en-US by default and the user is not asked to confirm it.

New: Can now set how deep to allow search engines to index/follow article list (blog/shop/etc.) combinations of categories, tags, authors, etc. This can be set in Configure Components via property Article View Follow Depth.

New: The title and description of article list (blog/shop/etc.) groups, categories, tags, etc. are now included as meta tags when listing via the category, tag, etc.

New: Can now set how deep to allow search engines to index/follow directory list combinations of industries, regions, etc. This can be set in Configure Components via property Directory View Follow Depth.

New: The title and description of directory list groups, industries, regions, etc. are now included as meta tags when listing via the industry, region, etc.

Fix: ServiceBooking.SendConfirmationLetter and ServiceBooking.SendConfirmationLetter would allow execute but throw an error when the user's email status was not active.

Fix: ServiceTimes.SpecifyUsers would throw an error when there was no user (due to guest checkout) or the user's email status was not active.

Update 3.19.7

Fix: Scheduling and running from the correct email collection.

Fix: Default value for Order.PayByOtherMethod.ReceivedOn now includes time.

Fix: Order.Complete in some circumstances would not complete due to session timeout or reset.

Fix: TradingItem.GetDiscountPricesFormatted would only display prices applicable for selected user if one existed.

Update 3.19.6

Fix: Error when listing article comments.

Update 3.19.5

Fix: GenerateHTMLGroupsListForArticleView and GenerateHTMLGroupsListForDirectoryView would include all when parent supplied even though there was no subgroup.

Update 3.19.4

Fix: Forms generated from merge fields via Definition.GenerateHTMLForm had their lists reloaded.

Update 3.19.3

Fix: When outputing a page to a static file the script elements were not included.

Fix: Modified XHTML replace function to better handle empty textarea and script element.

Fix: Payment.ReceivedOn was not storing the time part.

Fix: RSS feed for the shop did not include shipping weight which is needed for import to Google Merchant Center.

Update 3.19.2

Fix: Enhance Workspace object to standalone from the BusinessApplication object.

Update 3.19.1

New: Billing and Delivery properties now available for export from orders.

Fix: Error when displaying delivery details in specific circumstances.

Fix: Directory titles were not displaying correctly when a parent directory specified.

Fix: Removed GUID output field from RSS feed as unnecessary and caused problems with import to Google Merchant Center.

Fix: Applied efficiencies to invoice and purchase order output.

Fix: Modified the discount pricing format to make it easier to customise.

Update 3.19.0

New: RSS Feed for products which can be imported to Google's Merchant Centre or Facebook's Marketing API.

New: Product.GoogleCategory can be set to the ID of one of Google's product categories. This value will be included in the product feed.

New: Toggler classes added to Message elements returned by the server. Add the base script to enable when clicked the message is closed.

Fix: When sending form details in an email to administrator using an invalid email address entered by the user.

Fix: When an error is returned from a submitted form (on the template), the controls returned empty.

Update 3.18.8

New: Use Order.HasBookings to determine if any of the items are for service bookings.

New: Style classes Past, Today and Future added to calendar view cells.

New: Can now set the default sort order for article and directory views via Configure Components.

New: Can now create a custom registration form and set the URL in Configure Components. For example, register.aspx.

Fix: Register.SubscribeToEmailMarketing and CartItems.RequestBillingDetails.SubscribeToEmailMarketing now default to No.

Fix: Changed wording relating to an order confirmation / invoice to use Application.InvoiceDisplayName.

Fix: Duplicate Template Scripts and Stylesheets are removed when web page generated.

Fix: If a table column is readonly (due to being computed), it is not added in the update or insert scripts.

Fix: ServiceTimes.SpecifyUsers business names were returning error stating they were required when not.

Fix: Recreate an index on tax rates making it unique.

Update 3.18.7

Fix: Price on order item storing incorrectly when trading item prices stored in database without tax.

Fix: Timeout for automated tasks increased.

Fix: By default file properties on an item (for example, photograph on user) will not be copied when url is relative.

Fix: Captcha verification code was not a required field on the client side which meant a form could be submitted and sent to the server but would fail validation.

Update 3.18.6

New: Can now set the default sort order for each of the article and directory views.

Update 3.18.5

New: Added function Application.ApplyPromotion which can be used on the cart before checking out.

Fix: Reworded "Already Registered" error message.

Update 3.18.4

Fix: Updated user import scripts to ignore records with and invalid email address.

Fix: Various problems with HTML editor code source view.

Update 3.18.3

Fix: When receiving an error sending an email campaign the following batches were not sent. System now schedules them.

Fix: Large images in the light box were exceeding screen width and height.

Update 3.18.2

Fix: When selectable values used with mulitple line text property/parameter.

Fix: Allow the trading entity to delete their own order if not payment made.

Fix: Supplies Ordered On is now not editable by default.

Update 3.18.1

Fix: In some circumstances when sending emails relative paths to images, etc. were not updated to the full path including website address and hence could not be shown.

Update 3.18.0

New: Application.Register now asks for the new user's Password, Confirm Password plus Remember Me.

Fix: Application.Log only logging when in debug mode.

Update 3.17.6

New: Function Application.HasDeliverableCartItems.

Fix: Invoice no longer shows payment details when there are no payment methods.

Fix: When an administrator completed an order it would ask a 2nd time to complete.

Fix: Could not set default values for ServiceSchedule.Ocurrences.

Fix: When specifying attendee details via guest checkout the 1st attendee now defaults to "1st Attendee".

Update 3.17.5

Update: Updated the Users.xls script to add memberships to existing users that are not a member in any of the groups specified in the import.

Fix: Order.Complete is now visible to the trading entity if the order has been paid and is incomplete.

Update 3.17.4

New:Function Wrap(Start, Concatenator, Finish) has been made available for VBScript.

Fix: Error applying trading item discounts when orders were over the maximum quantity specified for that discount.

Fix: When deleting an order and items the related booking was not updated.

Update 3.17.3

New: Function ConvertDateToAge(Date, AsAt) is made available for VBScript.

Update: Google Tag Manager generated code updated.

Fix: HTML editor not styling correctly.

Update 3.17.2

Fix: Views using inheritance would get an error due to inherited tables not fully loaded.

Update 3.17.1

New: Properties UpdateReleasePhase and VersionReleasePhase on the Application. UpdateReleasePhase specifies the release phase allowed when installing updates. VersionReleasePhase is the release phase of the currently installed version. These properties replace IsBetaTestSite and IsBetaVersion. The release phases are:

  • Alpha
  • Beta
  • Stable

New: Property DebugMode on the Application. When true will output debug logs and reference the original (or non-minified) scripts and stylesheets.

Fix: Mispelt property name CustomDefinitionNamesStartWith.

Update 3.17.0

New: Properties Async and Defer on TemplateScript. When these properties are set to True an attribute of the same name is added to the script element when output to HTML.

New: Property Minify on TemplateScript and TemplateStylesheet. When this property is set to True the systems checks for a file with the same name including ".min" after the file name. If the minified file does not exist or is older than the original file, a new minified file will be created. The minified file will be reference in the output HTML.

New: Base and backend scripts and stylesheets have been bundled, minified and referenced offsite from a common code library.

New: css3-mediaqueries.js now only loads for IE9 and lower.

New: All scripts have been set to defer with the exception of css3-mediaqueries.js and html5shiv.js which only load on IE9 and lower.

New: JQuery core is now referenced from a CDN.

Update 3.16.10

New: A location (i.e. France) can receive deliveries from multiple pickup outlets. To do this, include the location in multiple delivery zones (i.e. Europe from United Kingdom or Europe from Hong Kong). When the user selects a freight rate, the pickup outlet is determined by the delivery zone of that freight rate.

Update 3.16.9

New: You can now see the order related to a service booking where applicable.

Update 3.16.8

Fix: Orders processed with a payment term that does not require payment immediately still asked for payment.

Update 3.16.7

New: Group.SelectSubscription and ServiceTimes.BookNow have 2 new hidden parameters ClearCartItems and ProceedToCheckout which both default to True, however can be modified via configuration settings.

New: BusinessCollectionItem.RawDataValue([Property]) get or sets the raw data in a table.

Fix: Purchase order delivery details now display pickup outlet address when not dropship.

Fix: When retrieving the pickup outlets for a delivery zone due to no state specified when region was.

Fix: Incorrect column name PaymentTerms.ActionOrderAfter changed to PaymentTerms.ActionOrderWhen.

Fix: Error when requesting a BusinessObject.PropertyValue for an Item's Item. For example, OrderItem.PropertyValue("TradingItem.Supplier").

Update 3.16.6

New: JavaScript togglerfunction attributes data-off-selector and data-on-selector now can accept this and parent values.

Fix: Error in Application.ProcessPayment.

Update 3.16.5

New: When specifying users for a booking it now defaults to 2nd Attendee, 3rd Attendee, etc. for the first and last names, while the business name is set to the business name of the user booking.

Fix: Order completion was not executing when paid in full.

Update 3.16.4

Fix: Error when returning from offsite payment method.

Update 3.16.3

New: Toggler in base.js now toggles off and on classes for separate selectors with data-off-selector and data-on-selector attributes.

New: Function Common.DateAddWorkDays(StartDate As DateTime, Days As Integer).

Fix: Error when displaying order status message.

Update 3.16.2

New: Property PaymentTerm.ActionOrderWhen determines when the order can be actioned for fulfillment (i.e. product dispatched, service booked or group subscribed). It can be one of the following:

  • Confirmed
  • DepositReceived
  • BalanceReceived

New: Property Order.Status can be one of the following:

  • Confirmed
  • Actioned
  • Completed

New: Parameter Order.Complete.ActionThisOrder specifies if the fulfillment process starts or not. It's default value is determined by Order.PaymentTerms.ActionOrderWhen It is editable only by an administrator.

New: Can now set OtherPaymentMethod.Instructions to nothing. If this property is nothing then the payment method will not be displayed in the payment instructions section of the invoice or order status message.

Update 3.16.1

Fix: Updated configuration settings TradingItem.DefaultViewPropertyNames and TradingItems.DefaultListColumnNames.

Update 3.15.4

Fix: Removed Video to Flash conversion.

Fix: Updated setup.aspx with new default servers.

Update 3.16.0

New: Trading Item Discount Prices have replace Special Price, Bulk Price and Member Price 1 to Member Price 5. This now allows unlimited discount pricing on an item. For example, you may have a price for 10 items or more and another for 20 or more. You can also set a limit to the number of items at a particular discount. For example, gold class members may be allowed up to 2 for free.

New: Related Trading Items can be used to list all the related products, etc. when viewing a products details.

New: Adding auto-height to the class of a textarea will allow the height to auto-resize when data entered.

New: When setting a MultipleLineText property's EditorLines attribute to zero, the output html textarea will set auto-height to the class.

Fix: If a LinkingForeignCollection's LinkingProperty has a SelectableValuesExpression it is now executed and used when generating the control.

Update 3.15.3

Fix: Error when opening Configure Components.

Update 3.15.2

New: New configurations setting CalendarFirstDayOfFinancialYear.

New: Added TimePeriod.FinancialYear which is useful for financial reporting purposes.

New: When a pickup outlet is logged in, they can now dispatch orders.

New: ServiceTime.Reschedule to reschedule a time and send the rescheduled letter to users with reservations when applicable.

New: ServiceTime.Cancel now asks if the user would like to send the cancellation letters to users with reservations.

New: New base.js function to set default values from a drop-down to adjacent input controls. For example, a drop down may have default date ranges like This Month, Last Month, This Financial Year, etc. and when selected will populate the 2 date input controls next to it with the appropriate values.

Fix: The configuration setting [Collection].ItemTypeName was being ignored for custom collection definitions.

Fix: Could not insert a new row on a table with only an auto-generated ID column.

Update 3.15.1

New: Now allows bookings on non-published services.

Fix: Calendar allowed past service times to be booked.

Update 3.15.0

New: Payment options on a trading item and recurring payments have been replaced by payment terms on the order. This will allow the order to be paid over time. For example, in "12 monthly payment", "25% deposit with balance due 7 days prior to date required on" or "30 days".

New: The "Other Payment Method" (i.e. cash, cheque, direct deposit) is only selectable by the administrator. However, it will show up in the invoice footer with instructions on how to pay. Once a payment has been received via this method, the administrator can add the payment using this method for reconciliation purposes.

New: Layout changes to confirm order including payment terms.

New: Layout changes to invoice including payments paid/due and payment methods.

New: Layout changes to purchase order.

New: Layout changes to order complete message including payments paid/due and payment methods.

Fix: TotalPaymentReceived, TotalPaymentUnconfirmed, PaymentProcessingFee and PaymentProcessingFeeTaxIncluded are now displayed in the currency of the order, not the currency of payments.

Fix: Geolocation lookup adjusted to timeout after 3 seconds.

Fix: When a geolocation lookup fails when requesting UserCountry or GetSelectablePickupOutletsNearDeliveryLocation.

Fix: Method parameter values passed in a URL no longer conflicts with reserved names like PageType, Method, Collection, etc.