Public Backlog

WebinOne announcements, releases, updates and achievements

v 5.6 Release date: 08 Oct, 2020

Full Release Notes

BACKLOG

Sitemap.xml Exclude Module List

Add multiselect dropdown field to the ’SEO’ page called “Exclude Module List”

Includes all system and custom module names to select.

Remove existing hardcoded exclusion of the ‘Page Folder’ module and preselect All following modules for this dropdown by default:

  • "ItemAuthor",
  • "BannerGroup",
  • "Banner",
  • "FAQGroup",
  • "FAQQuestion",
  • "GallerySlider",
  • "Slide",
  • "PageFolder"

Apply logic:

Do not include items of modules selected in the ’Exclude Module List’ to the sitemap.xml

Note:

The “Global ‘Show for Search Engines’” buttons will not modify those items selected in the exclusion list.

Source:

https://forum.treepl.co/t/sitemap-xml-not-adding-page-folders/1107

BACKLOG

Email Verification flow improvement

When Email Domain verification process fails - show ’Retry’ button when statuses set to failed http://prntscr.com/udjtv0.

Clicking on the button should retry the verification process on the Amazon side. States should be reset to pending.

BACKLOG

Add reply-to sender for workflows

Modify workflow emails by adding reply-to header and copy email of the CMR user that originally triggered this workflow.

BACKLOG

Secure/Unsecure form submission folder

1) Add new settings to the ‘Form’ -> ‘Settings’ page:

  • Secure Uploads (default: False)
  • Uploads Folder (default: /_form_submissions/)
    • Folder picker to select path to ftp folder (do not allow a paste of folder path manually)
    • Do not allow ftp root (/).

2) When form is submitted, store uploaded files (from custom fields and advanced CRM group fields) in the folder selected in the ’Uploads Folder’ setting.

Create folder if it does not exist when submitting the form.

When accessing any file - check if it's folder contains any folders set in any form’s secured folder setting:

  • requested file path contains (starts with) any form's ’Uploads Folder’ setting and the form has ’Secure Uploads’ set to “true”
  • if folder is secured - verify that current site visitor is a logged in admin user
  • if so - allow access to the file
  • otherwise - show 403 page

Source:

https://webinone.com/public-backlog-state/in-process/user-submitted-file-upload-to-specific-folder

BACKLOG

Update CRM Contact Group on ‘Update Account’ form

1) ‘Update Account’ system form improvement:

On submission of the ‘Update Account’ form - update CRM group fields that are already attached to the current contact CRM (either globally attached to contacts or custom attached to individual contact).

Form field names would be the same as they are on web forms (‘groupAlias_fieldAlias’ pattern)

2) ’Update Account’ Form in toolbox update:

In the component toolbox, under ‘Secure Zones’ > ‘Update Account Form’, in addition to the current fields, generate all advanced CRM group fields that are assigned to Contacts globally.

NOTE: All custom attached CRM groups can still be updated via the ‘Update Account’ form but all fields for that custom group should be manually added to the update account form's HTML code by the developer based on ’groupAlias_fieldAlias’ pattern for form fields names.

3) Provide ability to store files submitted via edit account form in certain folder

Add section to ’Settings’ -> ‘Misc’ -> “CRM settings”:

  • Uploads Folder (default: ‘/_customer_data/’)
    • Folder picker to select path to ftp folder (do not allow a paste of folder path manually)
    • Do not allow ftp root (/)
  • Secure Uploads (default ‘false’)

When user uploads file on edit account form submission:

  • add folder with member id (if not existed yet)
  • place uploaded file in that folder

If ’Secure Uploads’ == true then allow download files from ’/_customer_data/’ folder for the logged in admin user only.

BACKLOG

Advanced CRM groups on custom reports (+export)

1) Integrate 'Advanced CRM Groups' to the custom reports:

  • Add ability to choose fields from Advanced CRM Groups attached to selected primary CRM type (entity that is chosen in 'Type' in settings tab http://prntscr.com/ugy9qk). Selected fields will then be shown on the ‘Fields’ tab.
  • Provide ability to apply filter to any Advanced CRM Group's field that was shown on the ’Fields’ tab (regardless if it was chosen or not)
  • Show Advanced CRM Group fields selected in the ‘Fields’ tab on the Results table. Add those fields to the export file as well.

Design: https://projects.invisionapp.com/share/9QYC4SUDCJP#/screens/427731175

2) ‘Select all’ UI improvement for groups of fields

Add ability to select all fields via one checkbox in title section as shown in design: http://prntscr.com/ugyf7c

Provide such ability to all groups (system groups and Advanced CRM Groups)

3) Improve sorting on results tab

Provide ability to sort results by any field shown on the results tab (any contact, case,advanced CRM group field).

Check that sorting and pagination are performed via server side, not via UI capabilities


4) Fix report results headers

BACKLOG

CRM import/export + advanced CRM groups

1) Include Advanced CRM Groups into the Import/Export functionality

Export:

  • When Exporting any CRM entity (Contact, Form Submission, Order or Booking subscription) - collect all advanced CRM groups that are attached to the selected set of items (for example if you choose form for case export - grab only advanced CRM groups attached to items that were retrieved by the query) and extend Excel table by them
  • use groupAlias_fieldAlias format for column titles

Import:

  • provide the ability to import Form Submission and Booking subscription.
  • use groupAlias_fieldAlias format for column titles as markers for fields that need to be updated
  • when importing data:
    • if there will be no field with some fieldAlias in group with groupAlias - skip content of this column
    • if create or update operation is impossible for any entity (due to lack of required columns or empty/incorrect cell value) - skip processing this particular item and continue to the next item.

2) Implement "Get Import Template" button

  • Add "Get Import Template" button.
    When clicked show popup with advanced CRM groups represented as checkbox list.
  • Allow user to choose what groups should be included in the template besides native entity data.
  • Add this button to Contact, Form Submission and Booking subscription
  • use groupAlias_fieldAlias format for column titles

DESIGN:

https://invis.io/VMYECYV6ZGQ

BACKLOG

module_tag_list and module_category_list improvement

1) Improve performance of 'module_tag_list' and 'module_category_list' components

Use search by a separate table in order to retrieve data faster.

Add additional table that will hold the following data:

  • release date
  • expiry date
  • active (boolean - ‘true’ if ’enabled’ AND product inventory visible etc)
  • moduleId
  • itemId
  • tagname or categoryId

Update this table on:

  • module item add
  • module item edit
  • module item delete
  • reindex module
  • reindex site

Redo 'module_tag_list' and 'module_category_list' logic so it should search its data based on the table above instead of searching by regular site search.

Sorting and indexing should be performed via SQL instead of via the C#

BACKLOG

Export of orders

Add ability to call export for Orders

- Green for order data. Data goes on the 1st row.

- Red for order lines data. Product data goes starting on the 2nd row (1st row is empty for them) and goes down until all order lines will be output

Column Headers:

  • Order ID
  • Order Name
  • Currency/Country
  • Status
  • Member Email
  • Invoice Number
  • Invoice Date
  • Weight Measurement
  • Dimension Measurement
  • Shipping Address
  • Total Cost
  • Amount Paid
  • Pending Collection
  • Shipping Cost
  • Discount
  • Gift Voucher
  • Created Date Time
  • Product
  • Attributes (use pattern: http://prntscr.com/uizc1s)
  • Weight
  • Width
  • Height
  • Depth
  • Units
  • Unit Price
  • Tax Rate
  • Total Price

BACKLOG

Exporting Subscribers from Events

Add export Event Subscribers functionality on 'Events' -> ‘Edit Event’ -> 'Subscriptions' tab (https://prnt.sc/sbawkq)

Resulting excel should have the same columns as the table has on that page.

BACKLOG

Rounding Formula for Taxation Engine

Implement rounding algorithm that will be based on:

1) Bankers Rounding: when rounding applied to a number that has 0.5 in the decimal component of the price (represented in cents)

2) Error Compensation Algorithm: for all other roundings (similar to the one that BC had: https://docs.worldsecuresystems.com/user-manual/e-Commerce/Taxes/working-with-the-improved-taxation-engine)

Represented algorithm should be applied to the following prices separately: (names are taken from this table https://docs.google.com/spreadsheets/d/1mUVUDVayY8lj2LhzrUQTIOQ_G660Vbcj5PyiOMG4wpg/edit?usp=sharing)

  • Product item in cart 'item.unitTotalPrice' and 'item.unitTaxPrice'
  • Product item in cart 'item.totalPriceExcludingTax' and 'item.totalPrice'

Following data should be calculated as SUM of already rounded 'item' data (so additional or separate rounding should not be performed)

  • subTotalPrice
  • grandTotalPrice
  • totalPrice
  • totalPriceExcludingTaxAndGiftVoucherAmount
  • totalPriceExcludingTax

Example of algorithm:

BACKLOG

"Tax Never Applies" option for price

Add checkbox to the price instances near tax dropdown, called: “Tax Never Applies: (default= false)

Logic:

When checked - tax should not be added to the order line that represents this product (or shipping option) when tax selected on the shopping cart.

Add this checkbox for:


Also add it to Products import/export data

BACKLOG

Shipping and tax improvements

Add new tab to the 'Ecommerce' -> 'Settings’, called “Tax and Shipping”

Add following settings (DESIGN https://invis.io/JGYORI2PC2A):

“Country/Currency select”
(Choosing value from this select to load settings specific for that particular country/currency pair)

  • Tax applies to (multiselect dropdown list)
    Determines if taxes should be applied to selected entities or not
    - shipping options (selected by default)
    - gift vouchers (selected by default)
  • Auto-select tax if only one option available (boolean - default value ’true’)
    Determines if the single tax in the tax dropdown be automatically selected when a user comes to the shopping cart and/or changing country.
  • Hide tax selector if only one option available (boolean - default value ’false’)
    Determines if the tax dropdown be hidden by JS if there is only one tax option available.
  • Enable tax dropdown (boolean - default value ’true’)
    Determines if {% component type: "tax_codes" %} component renders the tax dropdown or not.
    Also determines if server-side validation should require it or not.
  • Shipping Countries (multiselect dropdown list - default empty list)
    • -- list of all countries --
      Also provides the ability to select all options. So the user can easily select all and then deselect the few not needed.
    • Logic:
      determines what country list will be shown when rendering the component {% component type: "countries" %}
      - if value is empty - show all countries. Otherwise show only selected countries
      - if {% component type:"countries", allowedCountries:"US,AU" %} has ’allowedCountries’ param - use its list of countries instead of shop setting (component param overrides shop settings).
  • Choose Default Country (dropdown - default = null)
    • -- list of all countries selected in Shipping Countries dropdown --
    • Logic:
      Determines what country should be automatically selected when a user comes to the shopping cart.
  • Make shipping country required (boolean - default ’false’)
    Determines if country dropdown can be deselected or not

BACKLOG

Do not skip selected shipping options

When shopping cart updated after changing quantity - if shipping options that was selected previously are still available - leave it selected.

When any of the following processes occured:

  • add product to cart
  • change product quantity
  • remove product from cart
  • add/remove discount code
  • add/remove gift voucher

DO NOT reset selected shipping option if after shopping cart update that shipping option is still available.

BACKLOG

When Sorting items via ‘sortBy’/‘sortOrder’ - skip weighting

Improve sorting of module items functionality on {% component type: "module" %} and {% component type: "module_of_member" %} via a new parameter for the component:

  • ignoreWeighting: "true" (default value ‘false’)
    • if value true:
      skip sorting by weight before sorting by 'sortBy' (if 'sortBy' is empty then alphabetical sort should be applied - remove "sorting by weight first" logic also)
    • if false:
      apply current sorting algorithm (first by weight then by name ASC).

Add this new parameter to the toolbox for:

  • Custom modules
    • List of items
    • List of member's items
  • Gallery/Slider
  • FAQ`s
  • Banners
  • Authors
  • Events
  • eCommerce
    • Catalogs list
    • Products list

BACKLOG

‘CRMCustomGroup’ component type alias to ‘CRMContactCustomGroup’

Create an alias of 'CRMCustomGroup' that will trigger the same functionality that 'CRMContactCustomGroup' (including all component properties).

So {% component type: "CRMCustomGroup" %} will do the same as {% component type: "CRMContactCustomGroup" %}

BACKLOG

Group products JS and liquid logic

Product Grouping on Detail Layout improvements:

1) Add to all product detail layout custom forced wrapper (only if product has any grouped products):

<div class="cms-product-wrapper" data-cms_product_wrapper="{{{{this.Id}}}}" data-cms_layout_name="{model.Layout}"></div>

2) Add JS that will request, via AJAX, the selected sub-product or main product once the appropriate option has been selected in the dropdown rendered via the component.

Render layout based on the 'layoutName' and 'productID' sent in the request and with the following liquid variables:

  • this
  • si
  • siteinformation
  • request

3) Add ‘this.URL’ to the liquid context of each item in {% component type: "grouped_items" %}.

Add ‘this.URL’ to the <option> element as 'data-product_url' attribute.

4) Provide custom event ’onProductLayoutChanged’ that could be used by any site owner's JS once layout will be changed via AJAX.

Product Grouping on List Layout improvements:

1) Fix component type module so it returns only main Product (if it is part of the Grouped products list) and don't return Grouped sub-products.

Only MAIN product should be listed via {% component type=module %} (and type=module_of_member).
Sub-products should not impact the pagination and should not be listed except if those components have ‘isSearchResult: "true"’ or ’searchScope’ param in which case include subproducts in the search results.


2) Add custom wrapper to list layout if it contains any grouped products (if layout contains {% component type: "grouped_items" %}) and if the 'object' param is set to 'item' http://prntscr.com/tzf1n2 (wrap same as in detail layout above)

NOTE:

If you are using component type module with 'object: "collection"' then you should add wrapper from point 1 inside your for loop manually in order to allow product grouping logic to work.

3) Provide custom JS event 'onProductLayoutChanged' and JS for layout reload (similar as described for the detail layout above).

4) Fix group order

Order of items that are listed via component should be the same as sorted in the admin.

Example of BC product groups:

Catalog where all products stored:
https://zaycev.worldsecuresystems.com/books/fiction

Main product:
https://zaycev.worldsecuresystems.com/books/fiction/main-prod

Sub products:
https://zaycev.worldsecuresystems.com/books/fiction/sub-prod-1
https://zaycev.worldsecuresystems.com/books/fiction/sub-prod-2

jQuery example of event handler:

$('body').on('onProductLayoutChanged', function(){
<!-- some code -->
});

BACKLOG

Feature flags changes (v5.6)

Apply following changes to feature flags:

Remove flag from the system:

  • Advanced URL manager

Move to internal flags AND set enabled

  • New liquid engine & nICE 2.0
  • Advanced payment flow

BACKLOG

BONUS: Customer Submitted Content - Add workflow for when items are edited

Provide ability to setup workflows in ’Module’ -> ‘Settings’ -> ‘Site User Permission’ (http://prntscr.com/rl85f0) for the following actions:

  • Add item by site user:
    Current workflow list should be transformed into this setting. Move multi-select under ’Allow add new items’ option.
  • Edit item by site user:
    New multi-select of workflows.
  • Delete item by site user:
    New multi-select of workflows.

Provide ’customWorkflows’ field to be processed on module item create/update/delete site user forms.

Logic of this field should be exactly the same as for customising workflows for web forms - where by it overrides workflow/s selected in form settings

Source:

MISC

Admin Proof Read/Suggestions (Part 1)

Here is a Google Doc with all admin wording suggestions.

Minor text changes in most cases.

https://docs.google.com/document/d/1qg5mZaZl0h7AFb8YFyGsjKMAsEDysBjGTQzhxqyHSUY/edit?usp=sharing


1. [ ✔] When editing a Menu item, the ‘ID Name’ field should perhaps be just ‘ID’

2. [ ✔] In the Component toolbox, perhaps remove the words ‘Get’ from the beginning of the Item Form options

3. [ ✔] In the Component toolbox, when getting a search form, there is the FORM CODE and the COMPONENT CODE, but it’s not particularly clear these are two links, or the Form code link might be missed. Suggest separating these 2 links a bit more or perhaps even having 2 headings, eg

4. [ ✔] In the Component toolbox, perhaps use correct apostrophes in the FAQ section

5. [ ✔] In the Component toolbox, use lowercase ‘o’ in ‘of’ under the “Banners” and “Authors” sections for consistency with all other options

6. [ ✔] In the Component toolbox, under “Events”, use capital letter for ‘Event Groups’, ‘Event’ and ‘Form’.

Perhaps rename “List of event’s groups” to “List of Event Groups”

7. [✔ ] In the Component toolbox, under “eCommerce”, suggest using title-case throughout for consistency

8. [✔ ] In the Component toolbox, under “CRM”, suggest rewording options for consistency

9. [✔ ] In the File Manager, when clicking the “Add New” button, it could probably just say “Folder” and “File” instead of repeating “Add new folder/file”

10. [✔ ] In the File Manager, the upload file drop zone could be made a little clearer by adding “to upload” after “click here” link

11. [✔ ] In the File Manager, in the context menu of a folder/file, perhaps the “Secure Zone” option should just read “Secure”

13. [✔ ] In the Form “Settings”, perhaps add an ‘s’ to “Workflow” and “Secure Zone” labels (since multiple items can be selected).

And, below this, the term “Autoresponder” is probably more widely used instead of “Auto-response” (not a big deal though)

15. [✔ ] In Secure Zone “Members” tab, the “Emails” column header should probably just be “Email” (without the ‘s’)

16. [✔ ] As above, the same change for “CRM” > “Contacts” list

17. [✔ ] In “CRM” > “Contacts”, when adding a new contact, perhaps change “E-mail” field label to “Email” for consistency

18. [✔ ] In “Form Submissions”, perhaps change the column heading of “Date Submission” to “Submission Date” or “Date Submitted”

19. [ ✔] In “CRM” > “Orders”, when viewing the “Payments” tab, perhaps use a capital ‘C’ in “Amount Captured” column heading (for consistent title-case use)

20. [✔ ] In “Email Marketing” > “Email Campaigns” in the ‘Settings’ tab, for the “Schedule Delivery” option, perhaps change to just “Delivery”.

21. [✔ ] In “Email Marketing” > “Mailing Lists”, under ‘Subscribers’ tab, perhaps adjust “Emails” column heading to just “Email”

22. [ ✔] In “Email Marketing” > “API Provider”, adjust page heading to use a capital ‘P’ for “provider”

24. [✔] On the ‘Catalogs’ tab when editing a Product, perhaps add heading above the selection boxes to make it a little clearer what’s what

25. [ ✔] On the ‘Inventory’ tab when editing a Product, perhaps use title-case for the ‘Added to shopping cart’ label making it ‘Added to Shopping Cart’ (for consistency)

26. [ ✔] Similar to point 24) above, perhaps add headings to the selection boxes

27. [ ✔] Under ‘Grouped Items’ tab when editing a Product, perhaps use title-case for the “Main product” checkbox label (for consistency)

28. [ ✔] Under the ‘SEO’ tab for ALL module types, perhaps reword and title-case the “<head> section extra” label, possibly: “<head> Section Additions” or “Additional <head> Code”

29. [ ✔] In ALL module ‘Settings’ page, use title-case for the ‘Site User Permissions’ checkbox labels. And perhaps change “Auto-response” heading to the more widely used “Autoresponder”

32. [ ✔] For ALL module “Table” tab, consider using title-case for the ‘Add new column’ heading so it reads “Add New Column” (in the side panel when adding a column)

35. [✔ ] Under a Shipping Options “Settings” tab, consider adjusting the “Show Shipping option to” label to title-case so it reads: “Show Shipping Option to”

37. [ ✔] Under “eCommerce” > “Settings” → ‘Manage Status’ tab, consider adjusting for title-case

39. [ ✔] Under “Reports” > “Custom Reports”, when editing a Report, the help bubble for “Settings” and “Form Filter” need adjusting.

For “Settings”, it still refers to the previous naming of “Make Public” but should now be “Make Sharable”

41. [ ✔] Under “Settings” > “Domains” and ‘Site Domains’ tab, consider adjusting for title-case in the sidebar for editing ‘Currency and Format’ and ‘Country’

42. [ ✔] ...as above, also in the ‘Email Domains’ tab when adding a new domain, adjust for title-case

44. [ ✔] Under “Settings” > “Admin Users”, column header and edit field label say “E-mail” consider changing to “Email”.

Also note edit panel heading to title-case

45. [✔ ] Under “Settings” > “Admin Menu Configurator”, consider adjusting headings and buttons for title-case

46. [ ✔] Under “Settings” > “Setup Analytics”, consider correcting “Id” to “ID”

48. [ ✔] Under “SEO” rename the “Pages search engine settings:” label to be more clear (since this option enables/disables ALL module item content, not just Pages).

Something like “Global ‘Show for Search Engines’” with maybe even a paragraph under this heading, or a help bubble, describing what it does exactly,

BACKLOG

Fix truncate liquid string filter

Fix liquid ‘truncate’ filter so if second param is NULL (http://prntscr.com/ui7qip) then apply "..." string as suffix.

And if second param is an empty string "" (http://prntscr.com/ui7r3k) then apply an empty string "" as suffix.

Source:

https://forum.treepl.co/t/request-withdrawn-implement-truncate-words-liquid-string-filter/491

BACKLOG

Improve pay by cash and offline payment namings

1) Rename 'offline-credit-card-payment' system page (https://prnt.sc/spcfi5)

- Change name and URL to 'deferred-order-payment'.

2) Rename Offline Credit Card Payment system email (https://prnt.sc/spcg1w)

- Change name to 'Deferred Order Payment'.

- Change value of the 'this.offlinePaymentPageURL' according to the new URL of 'deferred-order-payment' system page.

- Change Subject to ’Pay Order #{{this.order.id}}’.

3) Change offline credit card payment namings (https://prnt.sc/spcer0)

- Change 'Offline Credit Card Payment' to 'Deferred Order Payment'.

- Change 'Send Offline Credit Card Payment' to 'Send Deferred Order Payment Email'.

- Change 'Pay By Credit Card' to 'Pay Order'.

BACKLOG

Add ability to track offline payment

1) Provide ability to track offline payment for the order

- Rename 'Paid By Cash' (http://prntscr.com/ui8sv8) to 'Add Offline Payment'.

- When clicking on it the sidebar panel appears http://prntscr.com/ui8u0m.

- Make 'Payment Type' a dropdown to be active and provide the following options (instead of 'Offline'):

  • Cash (default)
  • Cheque
  • EFT
  • Money Order
  • Other
  • Credit Card

Add additional fields to the payment form:

Once payment added - it's type should be shown in the table http://prntscr.com/ui8x7v

Rename all existing ’Offline Payment’ types to 'Cash'

BACKLOG

Add "ID" to customizable columns

Add ability to choose 'ID' property for the custom columns http://prntscr.com/tjg8az.

If selected - show item ID in the list view table according to the custom columns display rules.

BACKLOG

Override quantity field with Product Minimum Units

1) Add validation for shopping cart ’change quantity’ and product ’add to cart’ actions:

  • validate that total quantity after add or change action is between Minimum Units and Maximum Units http://prntscr.com/tjp1fc
  • if Minimum Units is empty - default value is 1
  • if Maximum Units is empty - default value is infinity

2) Show error messages once validation is not passed:

  • quantity > Maximum Units:
    ERROR: Quantity entered is too large, please enter a smaller quantity.
  • quantity < Minimum Units:
    ERROR: Quantity entered is too small, please enter a larger quantity.

3) Change default layout (/cms-assets/layouts/ecommerce_item_quantity/default.layout)

From:

<input type="number" data-ecommerce_product_quantity_field="{{this.id}}" value="1"/>

To:

<input type="number" data-ecommerce_product_quantity_field="{{this.id}}" {% if this.minimumUnits > 0 %}min="{{this.minimumUnits}}"{% endif %} {% if this.maximumUnits > 0 %}max="{{this.maximumUnits}}"{% endif %} value="{% if this.minimumUnits > 0 and this.params.quantity == null %}{{this.minimumUnits}}{% else %}{{this.params.quantity | default: 1}}{% endif %}"/>

4) Fix bug: ’this.params’ object is not filled by custom params.
As a result such record {% component itemId: "{{this.Id}}", type: "ecommerce_item_quantity", quantity:"10" %} isn't rendered with quantity = 10 when it should.

Source:

https://forum.treepl.co/t/over-ride-quantity-field-with-product-minimum-units/1104

BACKLOG

Add SKU code as default column for the product

Example: https://prnt.sc/slw24j

Update defaults only. If custom columns have been implemented do not update.

BACKLOG

‘Products’, ‘Shopping_Cart’, ‘Order’ object extending

Add following properties to the 'Product' (order line), 'Shopping_Cart' and 'Order' objects:

  • taxCode
  • taxCodeHtml
    • Product (order line)
    • Shopping_Cart
    • Order objects
  • unitRecommendedPrice
  • unitRecommendedPriceHtml
  • unitRecommendedTaxPrice
  • unitRecommendedTaxPriceHtml
  • unitRecommendedTotalPrice
  • unitRecommendedTotalPriceHtml
  • onSale
    • Product (order line) object

BACKLOG

Property (type media) - apply URL partial encode for liquid

Improve module item liquid object for ‘Media’ type properties in {% component type: "module" %} and {% component type: "module_of_member" %}:

If property type is 'Media' - launch the following algorithm to its value:

  • extract file name from file path (file name is between last "/" and "end of string" OR "?")
  • apply URL encode to the name
  • join path and name back together
  • place the value back to the property

The value of the 'Media' property still should be un-encoded on edit item form in the admin.

Also update "copy to clipboard" links so they return encoded filename https://prnt.sc/uu6ljx

Eg: So if an item would have a value like "/pdf/myPdf#2.pdf?downloadable=1" it will be encoded like "/pdf/myPdf%232.pdf?downloadable=1" and placing {{this.myPdf}} into the href attribute of the link will not break the file accessibility. For example: <a href="{{this.myPdf}}">Download PDF<a>

BACKLOG

Add module ID/alias to the item object (LIQUID)

Extend module item object by adding following properties

  • Module_ID
  • Module_Alias

BACKLOG

Add {{this[‘LastUpdatedDate’]}} to properties list (toolbox)

Add {{this[‘LastUpdatedDate’]}} to properties list in ’Module’ -> ‘Layout’ -> ’Properties’ toolbox.
It exists, just not listed.

https://prnt.sc/mm2pop

BACKLOG

Duplicate Workflows functionality

Provide ability to duplicate Workflows to copy workflow instance:

  • with the same list of ’Recipients’
  • linked to the same ’Workflow Email’

BACKLOG

Add browser Cache control headers

Add this header to all file requests (max age of 7 days):

“Cache-Control: private, max-age=604800”

BUG

date liquid filter fixes

Fix/implement following patterns for date filter (that is based on http://strftime.net/):

1) Implement %w pattern:

  • Weekday as a decimal number, where 0 is Sunday and 6 is Saturday.
    Example: {{ "now" | date: "%w" }}

2) Fix %v pattern for VMS date format: http://prntscr.com/ttaz4n

3) Implement %Z pattern:

  • should show name of the timezone set for the site (use same values as for liquid's {{request.timezone}} object)

4) Fix %z pattern:

  • shows +00:00 but should be -05:00 (if the site timezone is set to -5) (use same values as for liquid's {{request.timezone}} object)
Show more less
New Feature

BONUS: US-2 Data Center (Virginia)

New data center: US (Virginia)
  • Infrastructure
Improvement

BONUS: Customer Submitted Content - Add workflow for when items are edited

The ability to have notifications on both creating and editing items.

Would we be able to allow the programatic triggering of Workflows for Custom Module create/edit forms, like we have for general forms: https://docs.treepl.co/documentation_group/content-modules/forms#secTriggerWorkflows and this will allows us to configure Workflow/s for whatever condition we need.

  • Custom Modules
  • Workflow
Improvement

Feature Flags Changes (v5.6)

IMPORTANT!
Enable and hide following feature flags for
all (!) live sites:
- Advanced payment flow (Read article: MIGRATING TO ADVANCED PAYMENT FLOW)
- New liquid engine & nICE 2.0 (Read article: MIGRATING FROM LIQUID 1.0 TO 2.0)
  • Ecommerce
  • General
  • Liquid
  • On-Site Editor
Improvement

Misc Improvements (v5.6)

- Sitemap.xml Exclude Module List
- Update CRM Contact Group on edit account form
- Advanced CRM groups on custom reports (+export)
- CRM import/export + advanced CRM groups
- Group products JS and Liquid logic
- Rounding Formula for Taxation Engine
- Shipping and tax improvements
- module_tag_list and module_category_list improvement
- Export of orders
- Exporting Subscribers from...
  • CRM
  • Ecommerce
  • SEO
Improvement

User Submitted File Upload To Specific Folder (+ secure/unsecure submitted files)

The ability to assign a custom folder path for user-submitted media objects.
This should also apply in the admin - so when selecting a file the file manager opens to the defined folder.
The ability to setup custom folder path to be secured (only admin have access) or unsecured (anyone with the link have access).
  • Custom Modules