2019/06 Release notes

24 June

Release: 2019.12

  • E-Commerce:
    • The new feature allows to set a limit on the number of items in the cart. This can be enabled in Commerce → Configure → Manage Configuration. This condition will be evaluated every time a product is added into the cart. It can also be checked on any instance of a product by calling isPurchasable() method.
    • It is now possible to calculate a surcharge on installment payment. Also, the new 'transactions' data object was added to cart preview and contains details of the payment, including any applicable surcharge.
    • It is now also possible to specify a default surcharge which will apply is no
    • New payment gateway integration option - ANZ eGate (Hosted Solution)
    • New integration with Signifyd.
    • Fixed an issue with uniqueness of order numbers generation.
    • The Order object now has some new methods:
      getShippingInfo() - returns an array with details of the selected shipping method, such as shipping company Id, rate Id, rate amount, etc.
      getParentOrder() - returns parent order object (for split order)
    • The cart now support tax break-down between products and shipping with two new methods:
      getItemsTax() - returns tax on items only
      getShippingTax() - returns tax on shipping only
      Also, the new 'taxTotal' data object was added to cart preview and contains break-down of tax between products and shipping.
    • Fixed an issue with shipping date returning 1970-01-01 in some cases instead of null. 
    • It is now possible to cancel orders with 'pending' and 'quote' statuses in the portal by user-owner, using the new cancel_order form
  • Hooks
    • The new Hook Event OrderExternalUpdate allows to integrate reverse hooks with third party systems. A reverse hook is an endpoint at Core dna which allows to receive notifications from external systems and trigger events in Core dna.
    • It is now possible to arrange the order of the hooks in the list 
    • Fixed an issue with pagination in the hooks list
    • Fixed an issue with hook status not being displayed correctly in the hook log
  •  Products
    • The Product class now supports the following new methods to improve access to product's variants:
      getVariants() - returns associative array of Variants of the product, indexed by variant code
      getVariantsArray() - returns indexed array of Variants of the product
      getVariantFromCode(string) and getVariantByCode(string) - returns Variant of the product with the specified Variant code
      getVariantFromId(int) and getVariantById(int) - returns Variant of the product with the specified Variant Id
      getVariantFromAttributes(array) - returns Variant of the product matching the specified array of Option List Id - OptionId pairs
      getVariantFromOptions(array) - returns Variant of the product matching the specified array of Option List Name - Option Name pairs
    • The Variant object is now JSON serializable.
    • It is now possible to retrieve product's screenshots by key word using the new getScreenshotsByKeyword() method.
    • Facets array in Faceted Search results now contains a 'slug' for product category
    • Fixed a bug with date picker for product's Availability Date
    • Fixed an issue with updating images in the DXP
  • Forms
    • Fixed a bug with custom export path not being saved in the FTP Form Export configuration
  • Users
    • The pubuser class now supports a new method getOrdersStats() which returns statistics on user's orders as a three-dimensional array.
      The first dimension is 'net' (after discounts and shipping) or 'gross' (before shipping and discounts).
      The second dimension is category of orders: 'successful', 'unsuccessful', 'cancelled', 'fulfilled' and 'total'.
      The third dimension is an associative array where the key is order Id and the value is order amount.
    • The pubuser class is now JSON serializable
  • Site Configuration
    • A new feature to export Urls for various modules (Pages, Blogs, Products, etc.)