New: Can now select the depth of menus Application.GenerateHTMLMenu
and Application.GenerateHTMLSelectMenu
return.
New: If allowed, a user can now select no Order.MakePayment.Method
to not make a payment at the time and send the invoice.
Fix: Simplified the subscription processing when an order is actioned.
Fix: Fat Zebra payment gateway requires a unique reference for each transaction.
Fix: ConvertToItem
when passed a negative integer (used for new item IDs) was returning nothing instead of the new item.
Fix: Error when passing a URL with parameters to MoveFile
, MoveImage
and MoveVideo
.
New: A brand can now be selected on a product, service or any other article. As it is for categories, brands can also be listed for article views and used to filter the view. A short cut path is also available. For example, https://www.mysite.com/shop/brand/nike/
.
Update: Manufacturers and product ranges have been removed.
Fix: Payment.ReceivedOn.MaximumValue
causing error when merging users on same day payment received.
Fix: OrderItem.CompletionURL
for service bookings and subscriptions were simplified to avoid redirect errors.
Fix: Using a referral URL not recording who the User.ReferralBy
was with a short cut paths such as those to blogs, galleries, products, etc.
Fix: Infrequent error when making payments.
Fix: Links on invoices / payment instructions sent in email.
Fix: When stored payment methods can be added.
Fix: When Order.SelectStoredPaymentMethod
is accessible for recurring orders.
Fix: Error generating article comments list.
Fix: When article comments can be viewed.
Fix: Load speed of cart items and orders.
Fix: Ability to filter and sort calendar, directory and article views via URL.
Fix: Ability to filter on an item Type
.
New: Can now filter and sort collection in script with either SQL or an Expression. For example: Application.GetCollection("OrderItems").FilterOnSQL("[Price] > 100").FilterOnExpression("Val(Price) < 1000").SortOnSQL("[Price] desc")
New: A user can comment on article comments.
New: Can now send an order based on the balance. For example, balance is greater than zero or balance equals zero.
Fix: Sending an order email campaign filtered on payment due resulted were incorrect.
New: A user can add stored payment methods and change a stored payment method on an order for recurring or upcoming payments.
Fix: Sending an order email campaign filtered on payment due resulted with zero emails sent.
Fix: Sending email campaign resulted with zero emails sent.
Fix: Now allows administrator to log in as another user when Website Temporarily Unavailable.
Fix: GetObjectByUniqueTextPropertyValue
was not searching objects by file name.
Fix: Random Concurrency Violation error.
New: Now supports MPGS payment gateway.
New: Now supports Fat Zebra payment gateway.
New: Now supports AfterPay payment gateway.
New: Email Marketing System now merges with Orders. This can be used for payment reminders, abandoned orders, etc.
New: Added Attachment.SetToProperty
to set the attachment to a property on the current object. For example, if you are looking at image attachments for a user then an image could be set to the Logo or Photograph properties.
Fix: Added parameter WebRequest.EnableCookies
which will enable cookies for a web request which will enable session values to be stored. This fixes a problem when a web request redirects to another URL but cannot view session values in the previous call.
Fix: After custom register (which called reset) was not logging in new user.
Fix: Removed storing session values as cookies.
Fix: URL parameter EndSessionOnComplete
will now store this as a session variable and end the session after redirects complete if applicable.
Fix: Listing orders slow loading and generally across the board.
New: Added class Empty
to calendar cells that have no times to display.
New: Function Application.GetUniversalTime(Time)
which will return the universal time. When displaying a time in the users timezone
New: You can now display the time in the users timezone. To do that you need to wrap your default display time in an element with an attribute data-universal-time
holding the universal time and data-options
which indicates how it is to be displayed. For more info on options go here.
<span data-universal-time="17 Mar 2019 7:45 PM" data-options="{"hour":"2-digit","minute":"2-digit"}">5:45 AM AEST</span>
Fix: List of available payment methods included those excluded with expression.
Fix: Error when inserting note when email sent.
Fix: Error when initially setting HTTPS Everywhere.
Update: Allow subscribing new user when email address exists on database only when no payment required.
Fix: Group.SubscribeNewUser
will only direct the user to login if email address is already on the database when payment is required.
Fix: Group.TakeSubscription
removed and directed to Group.SelectSubscription
.
Fix: Order.MakePayment
now will ask for payment details if the amount is zero due to a promotion, the order is recurring and the payment method selected has storage of payment details enabled. This will allow for example, first month subscription free and recurring orders automatically taking payment.
New: Order.SendPaymentErrorNotification
will send a payment error notification to the email address on the order when a page named order.paymenterrornotification
exists and an error is received trying to process a payment. This is especially useful for automated payments.
Fix: Order.RecurNextOn
was set incorrectly in some circumstances.
Fix: Order.Cancel
was available for the Trading Entity when actioned or completed.
Fix: Order.GenerateRecurringOrder
now takes payment immediately for new order if due.
Fix: ServiceTime.SpecifyUsers
will now get logged in user if there is no selected user.
Fix: Application.GetView
now loads inherited table relationship.
Fix: BusinessObject.GetPropertyValue
will now return the value from non-defined properties if allowed.
Fix: Changed how the title meta tag is displayed on article views for categories, tags, etc.
Fix: Error creating a new email campaign.
Fix: Default HTML Merge Expression attribute Merge Type
to dynamic when not specified.
Fix: Correction to page base paths for new upgrades.
New: Can now set the default dashboard URL under Configure Components.
Fix: Template.LastUpdatedOn
not updated when pregenerated content updated.
Fix: User.LastUpdatedOn
not updated when user logged in.
New: The system will automatically detect if content such as menu items, pages, templates, etc. have changed since pregenerate content was created and if so regenerate.
Fix: Custom collection filenames such as shop for products was not using configuration settings.
Fix: Error when accessing filters on Items collection.
New: The system will pregenerate content for templates replacing merge expressions marked as static. This will speed up page load for both web and email templates. Note: in the HTML editor, the merge expression attribute Merge Object Type
has been replaced with Merge Type
which can have the following values:
Fix: Group base paths and pages/blog posts/etc of groups.
Fix: Error after setting HTTPS Everywhere in Configure Website.
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.
Fix: Improvements made to Item.Attachments
and permissions.
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.
Fix: The SendEmailForm
function did not send the attachments to subsequent recipients, only the first.
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.
Fix: The generated email template now includes viewport and other necessary meta elements for formatting.
New: Application.ResizeImage
can now accept a resize method:
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.
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.
Fix: Group.SubscribeNewUser
will now subscribe an existing user if no payment required.
Fix: Error when an administrator completes an order.
Fix: Digital items not automatically sending when order completing.
Fix: Form textarea
elements were generated with a space when should be empty.
Fix: Error in LoadHTMLContentInXMLDocument
commented HTML included empty script or textarea elements.
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.
Fix: Not redirecting to referrer URL after posting a form.
Fix: Concurrency error when installing updates.
New: ShowInTemplate
can be set in custom ASPX page directives.
New: Install Updates
can now redirect to a URL before installing an update.
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.
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.
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.
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.
Fix: Error when listing article comments.
Fix: GenerateHTMLGroupsListForArticleView
and GenerateHTMLGroupsListForDirectoryView
would include all when parent supplied even though there was no subgroup.
Fix: Forms generated from merge fields via Definition.GenerateHTMLForm
had their lists reloaded.
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.
Fix: Enhance Workspace
object to standalone from the BusinessApplication
object.
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.
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.
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.
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.
New: Can now set the default sort order for each of the article and directory views.
New: Added function Application.ApplyPromotion
which can be used on the cart before checking out.
Fix: Reworded "Already Registered" error message.
Fix: Updated user import scripts to ignore records with and invalid email address.
Fix: Various problems with HTML editor code source view.
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.
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.
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.
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.