Full Release Notes
v5.9.5
BACKLOG |
Default list layout for favorites list |
Added default list layout for favorites (list of all items added to favorites).
Default layout will render: Name, description and URL to item.
New layout file created `list.layout` at `/cms-assets/layouts/favorites/` (https://prnt.sc/10v7n7j)
Admin Component Manager:
|
BACKLOG |
Shopping cart Javascript events and triggers |
Added the ability to customise the ecommerce javascript functionality.
These events have now been documented here: https://docs.treepl.co/ecommerce/shopping-cart-javascript#secShopEvents
------------------------------------------------
Added ability to rewrite ecommerce alert messages. This has now been documented here: https://docs.treepl.co/ecommerce/shopping-cart-javascript#secOverrideAlerts |
BACKLOG |
Improve Stripe payment error messages and payment form `onsubmit` |
Submit flow for payment forms and/or recaptcha v3 forms has been reworked.
Backend:
Value will be either:
NOTE: `FormRedirectLink` will be set even if there are errors in the `ErrorMessages` property. If you go to the link without checking for errors – they will be set to `formSubmissionData` Liquid object on that page as well, but only for the first page load. Frontend:
Improve reCaptcha v3 and payment JS. Added new custom event that will be triggered after all reCaptcha v3 validations (instead of the regular `submit` event)
These events allows you to:
See documentation for these events and example here: |
BACKLOG |
Add Release date to Add/edit item forms |
Add `prop_ReleaseDate` to the add and edit module item HTML forms, retrieved via the Component Manager/Toolbox.
Add ability to use `prop_Enable` to add/edit module item controllers. |
BACKLOG |
Liquid improvement: Ability to use variables in {% for %} tag |
Ability to use `limit` and `offset` param value via variables (not just via pure numbers).
Example:
{% assign array = "1,2,3,4,5,6,7,8,9" | split: "," %} {% assign lim = 3 %} {% assign off = 3 %}
{% for item in array limit: lim offset: off reversed %} {{item}}<br> {% endfor %}
Example:
{% assign from = 1 %} {% assign to = 5 %}
{% for item in (from..to) %} {{item}}<br> {% endfor %} |
BUG |
Fix secure zone assignment via forms with Payment Method == Cash |
Now, secure zone should be assigned once payment is added to the order and its status changed to paid. |
BUG |
Volume Discount applying fix |
Now, volume discount applies based on SUM of quantities of all product variations instead of applying per variation only. |
Shopping cart JS events and triggers
-
"Before" Callbacks
"Before" callbacks could be used for additional custom js logic and could interrupt event process.
Process could be interupted via event.preventDefault(); function.Syntax
document.addEventListener("CMS_BeforeExample", function(event) { var data = event.data; //custom code here });
List of callbacks (see release notes)
"After" Callbacks
"After" callbacks could be used in order to retrieve data that...
- Ecommerce
Template MAX
- One big universal template with all the features and functionalities that Treepl offers: TEMPLATE MAX
- Templates
Ability to use variables in for tag
-
Ability to use limit and offset param value via variables.
Not only via pure numbers.
Example:
{% assign array = "1,2,3,4,5,6,7,8,9" | split: "," %} {% assign lim = 3 %} {% assign offset = 3 %} {% for item in array limit:lim offset: offset reversed %} //{{item}}
Ability to use from and...
{% endfor %}
- Liquid
Add ReleaseDate and Enabled properties to add/edit module item form for logged in users
-
Add prop_ReleaseDate to add and edit module item HTML forms, retrieved via toolbox.
Add ability to use prop_Enable in add and edit module item HTML forms.
- On ADD form - if prop_Enable specified in form submission - apply it's value only if there is no admin verification required for the module
- Custom Modules
Default list layout for favorites list
-
Add default list layout for favorites (list of all items added to favorites) and insert in to blank.
Use output of Name, description and url only
Rename CRM > Favorites to CRM > Add to Favorites Button
- Add itemId param. Add item search to the field if source selected.
-- preset by {{this.id}} (similar to how it works on...
- General
Improve Stripe payment error messages and payment form onsubmit
-
Add CMS_CustomSubmit event that will be triggered for all payment forms including forms with reCaptcha v3
Add CMS_triggerHandlePayment trigger that will allow to finalize payment process if form will be sent via ajax inside CMS_CustomSubmit event handler.
Add CMS_AfterFormPaymentHandled event that will be triggered once all payment processes are made.
See release notes for more details.
- Ecommerce
Full Release Notes
v5.9.1
BACKLOG |
Favorites |
1) Add/remove from favorites actions Add two GET URLS (public api), one for “add” and one for “remove”, for logged in users with `itemId` as parameter (id of module item that should be added to favorites) 2) Add component type:"favorites": {% component type:"favorites", source:"[[moduleIdentifier]]", itemId:"[[itemId]]", includeItemData:"[[includeItemData]]", limit:"[[limit]]", collectionVariable:"", layout:"" %}
Default sorting by `CreatedDateTime` DESC. Single item context is:
(If `includeItemData` == true, the modules typical data will be included along with the above “Favorites” data. 3) Add component to toolbox, under: “CRM” > “Favorites” 4) Add default JS and styles for favorites: Once added to favorites - change favorite icon appearance and switch URL from ’add to favorites’ to ’remove from favorites’. Once removed from favorites - change favorite icon appearance and switch URL from ’remove from favorites’ to ’add to favorites’. If user is not logged in and clicks Add or Remove from favorites - redirect them to system error page with the following data:
Apply ability to request add and remove from favorites API urls with GET param `jsonResponse=true`. If `true` - return JSON response with error details (status code 401). Otherwise - redirect to error page with the above described type and message. DESIGN: https://invis.io/VEZ0HS6A8YF |
BACKLOG |
eWAY and Stripe improvements |
1) Add to data passed to eWay:
2) Change ”Invoice Description” to <form name> 3) Add data passed to Stripe (only for one-time payment):
4) Change ”Description” to <form name> |
BACKLOG |
Show Product URL based on current catalog |
On product detail show URL based on catalog that it’s contained in. Modify component type module logic: If filtered by `parentId` add `this.url` value based on the parent determined by `parentId`, eg:
|
v5.9.2
BACKLOG |
Customize Analytics |
1) Analytics Customization
2) Single Chart customization
3) Add Chart to analytics
4) Restrictions Feature available on PRO Plan and higher. |
BACKLOG |
Copy File URL to clipboard |
Add ability to get file’s URL in file manager and file manager toolbox.
DESIGN: https://invis.io/VTYEHO7Z6NJ |
BACKLOG |
Wording change on event bookings |
Rename following wording in the CMS:
|
BACKLOG |
Drop shipping feature improvement |
Feedback description: When a visitor makes an order for several different items on one and the same order the system will create one purchase-order for each item even if they all are supplied by one and the same supplier. This obviously causes a lot of extra work for the suppliers. BC consolidated several items to one and the same purchase-order and only split the order if there were multiple suppliers to supply the items on the order. Solution: Consolidate several items to one supplier email for the same order instead of sending supplier email for each product. |
Bonus: Add Ability To Get File’s URL In File Manager
-
Problem:
It’s hard for users to get file URLs from the file manager.
Proposed solution:
Add a new menu item, “Copy URL”, under file actions dropdown that allows a user to copy the file’s url.
Here:
It would also be nice if the file name was linked to the file location in list (non-tree)...
- File Manager
Customize Analytics
-
Ability to edit admin's "Analytics" page:.
- Rename page and blocks
- Rearrange and resize blocks
- Change or hide data inside blocks
- Set data range
- Add extra analytics
Available starting "Pro" plan.
- Analytics
Full Release Notes
Bambora Payment Gateway |
Bambora Improvements (patch v5.8.1) |
Design: http://prntscr.com/vljvo7 1) Implement Payment window modes (payment gateway settings page):
Bambora Documentation: https://developer.bambora.com/europe/... 2) Implement "immediateredirecttoaccept" setting: When the payment has gone through you end up on a "success" page on the bambora site and you can then click to go back to the Treepl site with the receipt.
https://developer.bambora.com/europe/... 3) Language control settings Provide possibility to select the language for the payment window. Bambora Documentation: https://developer.bambora.com/europe/... 4) Add transaction ID to the list view of the order (and allow search). |
Misc |
Admin UI: Orders pagination (patch v5.8.1) |
Improve Pagination speed (CRM -> Orders) |
Direct Billing |
Invoices for portal payments (patch v5.8.2) |
For direct billing with commissions:
|
Feedback Task |
Set 404, 403 and 401 status codes when showing appropriate system pages |
Implement server responses for 404, 403 and 401 statuses to set appropriate status codes and at the same time still display appropriate System Pages content. |
Feedback Task |
Admin Proof Read/Suggestions (Part 2) |
Original Source: https://docs.google.com/document/... 12. [ ✔] In the “Form Builder” options, perhaps adjust the form ‘Type’ display names an provide a short explainer, eg |
Public Request |
Custom Client Notes For Custom Fields |
Source: Description: New 'Notes' field against any custom field created in the admin. It would display next to the field when clients are creating Custom Module items and could provide additional info to help them when entering content. For example: with an image field, the note might read "This image is displayed as the thumbnail on your Team Members page and ideally should be portrait orientation and at least 500px wide". The note could perhaps be hidden under a help/info icon to keep the layout clean.
Allow add notes (https://projects.invisionapp.com/...) On module item add/edit form: Display notes when hover tooltip icons (https://projects.invisionapp.com/...) Note: Add notes to `module` export/import flow. |
Public Request |
Set Custom Icons For Nested Module Items In Tree View |
Source: Source Description: Provide ability to change icon of the item in tree view (http://prntscr.com/vu9h50)
|
Feedback Task |
Improve GDPR control, Contacts and advanced CRM groups |
1) Add new Group to `Settings` -> `Misc`
2) Logic If ”Allow listing crm contacts data” == true - discard "Allow listing my contact data in the CMS" checkbox behavior and always allow use all contact data:
3) Components logic extending Add includeSecureZonesInfo: "true" param to {% component type: "CRMContacts" %} If not set - default value is false Also add it to the toolbox.
securezones": [ { "id": 1, "name": "Member Only Area", "landingpageid": null, "createddatetime": "2020-10-20T14:59:54.347", "updateddatetime": "2020-11-12T16:07:27.113", "expirydatetime": "9999-12-31T06:00:00", "ExpiryOption": null, "ExpiryAfter": null, "AccessType": 0, "Plans": null, "CountPaidSubscribers": 0 }, |
Feedback Task |
Admin UI changes |
Task list:
|
Public Request |
"Already Taken" URL Validation |
Source: Description: Validation warning for general URL conflicts before saving item. ie: for Pages and other items not influenced by the Advanced URL Manager. 1) Update `Settings` -> `Misc` in group “Admin Panel Settings” with new setting “Disable autocomplete for already taken URL slugs” (default is ‘false’) 2) Logic If `true` - do not add `-1` to the slug on save. Throw validation error message "Warning: Duplicate URL" If false - logic should be as it was earlier. |
Public Request |
Add Default Styling For Pagination |
Source: Description: Currently pagination outputs raw unordered list. Apply some default formatting to remove the bullets from the list and make it horizontal. Also by default it would be nice to truncate the pagination with “…” and show the last page if there are over 5 pages. If we really want to get fancy we could make the default styling along these lines. 1) Component param Add param to component type `module` and `module_of_member`
2) Toolbox
Applies to the following modules:
|
Public Request |
Small UI tweak: Add Icons To Items Under "Content" Section |
Source: Description: Implement the icons in “Content” section that are already under the components insertion list. All other icons on the 2nd level should remain the same. Apply it to all default menus. Leave custom menus as is. Design: |
Public Request |
Pages/Template/General Editing Window |
Source: Description: Make the editing area fill the vertical space in the browser window. |
Public Request |
Recent Item Section |
Source: Description: A ‘Recent Items’ section to quickly go back into last page/module you were in, without having to navigate back to that page. Functionality
DESIGN |
Feedback Task |
Grouping product in toolbox improvement |
Show `this.id` as first option of ”Filter Value” field for following components in toolbox (show it before datasource loading process occurs) Ecommerce:
IF it's selected or NO item selected - show "{{this.id}}" as value |
Feedback Task |
Forms email aggregator |
Add new setting to `Form` -> `Settings`:
Add new setting to `Form` -> `Settings`
Add liquid variables of ”Confirm Email Notification” to the scope of the following system emails:
|
Feedback Task |
CRM -> Bookings: Export to Excel to be filtered by form name? |
Source Improve Bookings export (https://prnt.sc/vv97ic)
Update exporting logic so it will retrieve bookings based on selected forms and events |
BUG |
Infinity redirect on login to Portal |
Fix infinity redirect on SSO login to Portal |
BUG |
Toolbox bug in event group Component |
Custom Client Notes For Custom Fields
-
New 'Notes' field against any custom field created in the admin. It would display next to the field when clients are creating Custom Module items and could provide additional info to help them when entering content.
For example: with a image field, the note might read "This image is displayed as the thumbnail on your Team Members page and idealy...
- Custom Modules
Add Default Styling For Pagination
-
Currently pagination outputs raw unordered list.
Apply some default formatting to remove the bullets from the list and make it horizontal. Also by default it would be nice to truncate the pagination with “…” and show the last page if there are over 5 pages.
If we really want to get fancy we could make the default styling...
- Blogs
- Custom Modules
Admin UI changes (v5.9)
-
- Admin Proof Read/Suggestions: Admin Proof Read.docx
- Add info with site name and username to the header: See design
- Fix search in the data source. Currently, the search is working just from the start of the line.
- Alphabetic sorting of data sources.
- Alphabetic sorting of tags + button to sort from A to Z.
...
- Admin Panel
- UI/UX
"Already Taken" URL Validation
- Validation warning for general URL conflicts before saving item. ie: for Pages and other items not influenced by the Advanced URL Manager.
- General
Misc Improvements (v5.9)
-
- Set 404, 403 and 401 status codes when showing appropriate system pages
- Improve GDPR control, Contacts and advanced CRM groups
- Ability to "Favorite" a module item
- CRM -> Bookings: Export to Excel to be filtered by form name?
- Admin Panel
- General
- UI/UX
Pages/Template/General Editing Window
-
Make the editing area fill the vertical space in the browser window.
- Admin Panel
- Pages and Templates
Recent Item Section
-
A ‘Recent Items’ section to quickly go back into last page/module you were in, without having to navigate back to that page.
- UI/UX
Small UI tweak: Add Icons To Items Under "Content" Section
-
Implement the icons in “Content” section that are already under the components insertion list.
- Admin Panel
Full Release Notes
BACKLOG |
PORTAL: Portal restructure |
1) Rename Menu items Change following:
Split Menu in two parts. Set to bottom menu following items:
Change Icons for
2) Restrictions Restrict commissions for Agency role only Show prices that include commissions on the Treepl CMS sites in direct billing page DO NOT include commissions if clicking pay from the portal. 3) FTP credentials tab Create FTP under trialsite.co subdomain Show host and username under ’FTP credentials’ tab |
BACKLOG |
PORTAL: Direct Billing (commissions) |
1) Add “Commissions” tab to ’My Settings’ Design: https://invis.io/SDZC33JMHBA Settings:
Once form is saved - send ’paypal email verification’ email with the confirm button. Once confirm button is clicked - mark paypal email as verified.
DO NOT SEND commissions to paypal emails until they are verified (trigger Payment error) 2) Add commission tab to site edit page Add tab that will allow to setup commission for the site for monthly and annually subscriptions. Settings:
Calculated summary should follow logic as described in this spreadsheet (for display purposes use 4.4% fee per transaction since it is the biggest one that may be charged): Algorithm
Design: |
BACKLOG |
PORTAL: Branded subdomains |
1) ‘My Settings’ -> ‘Domains’ tab Add Domains tab to My Settings page Design: http://prntscr.com/vlj9g3 Provide ability to:
2) ’My Settings’ -> ‘Domains’ tab -> ‘domain details’ page Show 3 tabs:
Restrict access to ’Partners’ and ’Agencies’ only. Allow ’Partners’ and ’Agencies’ to have:
Disallow ’My Settings’ -> ‘Domains’ tab for portal users
Provide role indication icon and tooltip near user email. Design: http://prntscr.com/vlj6j8 |
BACKLOG |
Bambora Improvements |
1) Implement Payment window modes Design: http://prntscr.com/vljvo7 Implement Payment window as:
Bambora Documentation: 2) Implement "immediateredirecttoaccept" setting When the payment has gone through you end up on a "success" page on the bambora site and you can then click to go back to the Treepl site with the receipt. Provide ability to choose this flow in bambora payment gateway settings and implement the appropriate logic.
3) Language control settings Provide possibility to select the language for the payment window. Bambora Documentation: 4) Add transaction ID to the list view of the order. Provide ability to search by it http://prntscr.com/vikmzm |
BACKLOG |
Admin UI: CRM -> Orders pagination improvement |
Admin UI speed improvement on CRM -> Orders page. Improve pagination in order to return order list faster. |
BUG |
{% component type: "shopping_cart" %} |
If you add `collectionVariable` param to the component the layout doesn’t render in the following cases:
NOTE: You may have such kind of components in you code ({% component type:"shopping_cart", collectionVariable:"shoppingCartData" %}) that by mistake may miss the layout:"" param that stops component from rendering the default layout but still show no default layout (because of the current bug) . |
Customizable Commissions
-
[Agency feature]
Ability to add commission on top of the CMS plan for sites customer chose to pay directly.
Instant distributed payments (PayPal).
- Admin Panel
Branded Subdomain
-
Ability to create trial sites Partner's or Agency's primary domain.
Domain management section available from the Treepl Portal.
- BC Equivalent
- Treepl Portal
Full Release Notes
BACKLOG |
Agency Plan: |
1) Portal settings - ability to allow direct billing and site activation In Treepl Portal on ‘Edit Site’ page add new setting: “Allow Activation on the site” 2) Billing from the admin Add Billing button to the "gear" menu Show it only if ”Allow Activation on the site” is TRUE and the site is not paid yet
Link to terms and conditions: https://treepl.co/terms-of-service Allow user to pay for the site activation (validate the terms and conditions checkbox is checked). Once paid - set return URL to lead to the ’Settings’ -> ‘Domains’ (1st step of the activation). 3) Domain Activation Steps Add domain activation steps to the ’Settings’ -> ‘Domains’ page Design: Add ability to:
|
BACKLOG |
Agency Plan: |
1) Add Custom branding menu Add menu item to the "Gear" menu (if current admin has role lower then agency - display menu item as disabled) Design: 2) Add Custom Branding Page
Design: 3) Custom Branding functionality Change branding assets displaying logic (on login, reset password screens etc) as follows:
|
BACKLOG |
Agency Plan: |
1) Add ability to invite staff to Agency user portal (portal users) DESIGN Invited user should be able to perform any action that the agency user can except for:
Invite process should be similar to admin users invite in the CMS (create user if not exist or just invite already existed)
Text for ? icon near INVITE NEW USER button: “Portal users would have same privileges that your account has except of ability to delete sites and invite new Portal users” 2) Add lazy create process on CMS sites When Portal user passes login/verification process (via SSO) to the site that belongs to the Agency of the Portal user - add this Portal user to the DB if it's not exited there yet. 3) Portal user influence to admin users UI and restrictions Portal user should:
|
BACKLOG |
Agency Plan: |
1) Implement new share module functionality DESIGN: Show ‘Export’ button on edit module -> Settings page (see design). Show ‘Import’ button on create new module page (in the same place as ‘Export’ button on design). When clicking ’Export’:
When clicking ’Import’:
2) Implement Import/Export logic Export:
Import: If file could not be parsed show error: “File is not valid for import process”. Else:
|
BACKLOG |
Default setting for availability for search engines |
1) Add default configuration setting Add setting to ’Module’ -> ‘Properties’ -> ‘Default Properties’ -> “Show new items for search engines”:
Location: 2) Setup default state of the new setting for system properties Preselect ”Show new items for search engines checkbox” for the following system modules:
3) Add two buttons that ‘enable’ and ’disable’ all existing module items of the particular module for search engines DESIGN: |
BACKLOG |
Custom Reports needing export of Secure Zone members |
1) Add new type of custom report called “Contacts and Secure Zones” SETTINGS: - hide Form Filter when this type is selected FIELDS: - Contact Fields (Same as for all other report types) - Secure Zone Membership Fields:
- Advanced CRM groups (same as on ‘Contacts only’ report type) FILTERS: - Add Secure Zone Membership Fields to the filters:
Display these labels instead of ENUM values on reports list layout http://prntscr.com/uz6w0f
References: Fields (BC example): https://prnt.sc/ulsji4 Results (BC example): https://prnt.sc/ulsj1l |
BACKLOG |
Shipping option price limitation config |
Add to ’eCommerce’ -> ‘Settings’ -> ‘tax and shipping’ new setting called “Shipping option order price limitations applied to” Options (dropdown):
Logic: Based on the selected value - apply ”Shipping option order price limitations” accordingly:
|
BACKLOG |
Setup primary domain to be first in SEO canonical link helper |
Improve canonical link helper: Domain selector should show Primary domain by default (first option in dropdown) Primary domain can be setup on domain setting page: http://prntscr.com/v9z2zx |
BUG |
Secure/Non Secure form submission folder form setting |
Fixed ability to download secured file only in you are logged in to the admin dashboard |
Bill Clients Directly
- The ability to bill clients directly. Enabled via Treepl Portal, paid via site admin.
- Admin Panel
Default setting for availability for search engines
-
View design
Properties -> Default Properties:
Add ability to enable item for search engines once created.
Preselect it for following system modules
- Blog Post
- Page
- Page Folder
- Blog
- Event Groups
- Events
When new module created - preselect that setting by default
- SEO
New account level: AGENCY
- All new features and capabilities are listed on our updated Reseller Program page.
- Treepl Portal
Custom Reports needing export of Secure Zone members
- Ability to export Secure Zone members from CRM.
- Secure Zones
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:
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:
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:
Source: https://treepl.co/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”:
When user uploads file on edit account form submission:
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:
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
|
BACKLOG |
CRM import/export + advanced CRM groups |
1) Include Advanced CRM Groups into the Import/Export functionality Export:
Import:
2) Implement "Get Import Template" button
DESIGN: |
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:
Update this table on:
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:
|
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)
Following data should be calculated as SUM of already rounded 'item' data (so additional or separate rounding should not be performed)
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:
|
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”
|
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:
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:
Add this new parameter to the toolbox for:
|
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:
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).
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: Main product: Sub products: jQuery example of event handler: $('body').on('onProductLayoutChanged', function(){ |
BACKLOG |
Feature flags changes (v5.6) |
Apply following changes to feature flags: Remove flag from the system:
Move to internal flags AND set enabled
|
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:
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
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'):
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:
2) Show error messages once validation is not passed:
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. 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:
|
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:
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
|
BACKLOG |
Add {{this[‘LastUpdatedDate’]}} to properties list (toolbox) |
Add {{this[‘LastUpdatedDate’]}} to properties list in ’Module’ -> ‘Layout’ -> ’Properties’ toolbox. |
BACKLOG |
Duplicate Workflows functionality |
Provide ability to duplicate Workflows to copy workflow instance:
|
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:
2) Fix %v pattern for VMS date format: http://prntscr.com/ttaz4n
3) Implement %Z pattern:
4) Fix %z pattern:
|
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
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
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
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
Full Release Notes
BACKLOG |
File Manager: |
Improve file manager to use lazy loading functionality (to show only those elements that are visible on screen) in order to prevent long loading of the files and folders when there are a lot of files and/or sub-folders. Once user scrolls the active area, show following elements and hide previous so browser would not be overloaded. |
BACKLOG |
Custom Shipping Layouts Bug |
eCommerce JS should not overwrite the <options> layout entirely. If no data attribute would be found - js will use default option name layout. Default layout should be improved by adding ’data-cms_cart_shipping_option_name_layout="{itemName} ({itemPrice})"’ to the select tag http://prntscr.com/tcue19 |
BACKLOG |
3rd Party Shipping Integration: |
1) Add two system fields to the ’Order’ item in the admin (after Invoice Date http://prntscr.com/tb49jp):
Also added to the ‘Order’ liquid object. 2) Provide ability to edit some Order details: http://prntscr.com/tb48qa
3) Add new admin panel page: ‘Ecommerce’ > ‘Settings’: Move here Shopping cart life time setting from Misc settings (https://prnt.sc/sw1toc) 4) Order Statuses should be reworked: DESIGN http://prntscr.com/u6s8kg. Add ’Manage Statuses’ Tab to ’eCommerce’ -> ‘Shop Settings’ page
Provide following delete logic:
Pre-create following statuses (set all to: Workflow=Not Set, Notify Customer=False)
Remap all orders with current enum statuses as follows:
5) Add new system email (‘Email Notifications’ > ‘System Emails’):
Liquid scope for "this":
eg: 6) Add functionality to the order status change event: When changed (manually or via backend flow logic) - get new status settings and
|
BACKLOG |
3rd Party Shipping Integration: |
1) Shop Measurements Setup Add the following settings to the ’eCommerce’ -> Settings’. Determines the unit of measure to be applied to the Shipping options and Products Width, Height, Depth and Weight for the calculation of shipping price. Preset kg and cm for all sites in Database by default. Options:
2) Shipping Option Integration Setup Modify the shipping option Details form according to the following fields order:
Once any type with Shipping Integration selected- hide ’Price’ fields and show additional fields specific to the selected shipping provider:
unique fields for the particular shipping provider including api access params.
3) Shipping option integration on front-end UI Design: http://prntscr.com/u6s6cf
4) Shipping option display based on order rules Shipping options that have shipping provider integration should follow the same rules as currently works for ’User Defined’ shipping options (Shipping Option -> Settings tab). This includes:
5) Shipping Price Calculation Rules Once shipping provider returns the options and their prices - extract ’shippingTaxRate’, ‘shippingPrice’ based on the response data (if no tax set in the CMS the tax info will be taken from the shipping integrator if provided). Then recalculate base shipping price by adding any ’Handling Charge’ and ’Additional Per item Handling Charge’. And then recalculate ’shippingTaxPrice’, ‘shippingTotal’ and all other related prices like it works for ’user defined’ shipping options. Set resulting values to the liquid object of the shopping cart. Return to UI prices that already includes ’Handling Charge’, ’Additional Per item Handling Charge’ and ’taxPrice’. Basically the ’shippingTotal’ (https://prnt.sc/talnkb) 6) Checkout form improvement based on the shipping providers integration Set zip code field to disabled (it is not allowed to be changed) and pre-filled by the value chosen on the shopping cart step (similar to how country is pre-selected based on the country selected on the shopping cart and not allowed to be changed). |
BACKLOG |
3rd Party Shipping Integration: |
Add new component tag for "shippingProvidesFields": {% component type:"shippingProvidesFields", collectionVariable:"", layout:"" %}
Item context: empty Default virtual layout: |
BACKLOG |
3rd Party Shipping Integration: |
Implement Shipping provider API according to BASE LOGIC API: https://www.fedex.com/en-us/developer.html |
BACKLOG |
3rd Party Shipping Integration: |
Implement Shipping provider API according to BASE LOGIC API: https://www.ups.com/upsdeveloperkit?loc=en_US |
BACKLOG |
3rd Party Shipping Integration: |
Implement Shipping provider API according to BASE LOGIC API: https://www.usps.com/business/web-tools-apis/documentation-updates.htm |
BACKLOG |
3rd Party Shipping Integration: |
Implement Shipping provider API according to BASE LOGIC API: https://www.canadapost.ca/cpo/mc/business/productsservices/developers/services/rating/getrates/default.jsf |
BACKLOG |
3rd Party Shipping Integration: |
Implement Shipping provider API according to BASE LOGIC API: https://developers.auspost.com.au/ |
BACKLOG |
3rd Party Shipping Integration: |
Implement Shipping provider API according to BASE LOGIC API: |
BACKLOG |
2 Factor Auth for admin portal |
1) Implement 2FA for the Treepl SSO service (Use google authenticator) 2) enable 2FA on edit account (partner portal): http://prntscr.com/u6s3zj 3) each time on login to portal or any site
4) add ability to enable 2FA for the site on site details and show indicator on sites list
5) for site admin users (if 2FA for the site is enabled) each time on login:
|
BACKLOG |
Replace old order.totalHtmlPrice and remove property |
Replace all occurrences of ’totalHtmlPrice’ to ’totalPriceHtml’ within order or shopping cart objects in following places:
ATTENTION: Custom includes, layouts or snippets where totalHtmlPrice has been used as part of any custom logic will not be replaced. It needs to be replaced to totalPriceHtml by the partner manually. |
BACKLOG |
Payment gateways: |
1) Create support for Paypal Payment gateway. 2) Gateway logic should support following flows of capturing price:
Forum Backlog: https://treepl.co/public-backlog-state/coming-next/paypal-payment-gateway |
BACKLOG |
Payment gateways: |
1) Create support for Authorize.net Payment gateway. 2) Gateway logic should support following flows of capturing price:
Places for logic to be implemented in:
|
BACKLOG |
{% break %} and {% continue %} not working in liquid 2.0 |
Example: {% for item in (1..10) %} {% if item == 6 %} THIS SHOULD BREAK HERE! <br>{% break %} {% endif %} {% endfor %} <br> <hr> <br> {% for item in (1..10) %} {% if item >= 6 %} THIS SHOULD CONTINUE HERE! <br>{% continue %} {% endif %} {{item}}<br> {% endfor %} Expected: https://prnt.sc/s7gxh0 Actual: https://prnt.sc/s7gyj1 Source: https://forum.treepl.co/t/bug-break-not-working-within-if-statement-in-forloop/963 |
BACKLOG |
Add module ID/alias to the Liquid item object |
Extend module item object by adding following properties:
|
BACKLOG |
Increase File Manager Upload limit |
Set the maximum length of content in a request to be 300MB in the File Manager. Update the validation message when trying to upload more than 300MB. |
BACKLOG |
Banner system module release and expiry date |
Upgrade module settings for ’Banner’ system module so it will have ’release’ and ’expiry’ date enabled by default. |
BACKLOG |
Show 404 Page when file is not found |
Modify CMS error handler so if URL that leads to a file (.pdf, .doc, etc.) is not found - display 404 System Page. |
BACKLOG |
Add invoice number column to CRM -> Order list |
Add new column on the CRM > Orders page: “Invoice number” Example: https://prnt.sc/s7h68k |
BACKLOG |
Download from media type |
Add Download button alongside media type fields and in the File Manager: https://drive.google.com/file/d/1GFcEG2gjC5tNrcM8F_YX3N8EbebbSQXS/view?usp=sharing |
BACKLOG |
Data Source for system modules extending |
Allow to select module for Data Source property from the FULL list of modules (system and custom modules) |
Bug |
Module archive fix |
Fixed ‘module_archive’ component for items that belong to the current month (previously they were skipped). |
Bug |
Bug from forum - not correct code for Event Group |
https://forum.treepl.co/t/possible-bug-in-event-group-component/1205 Toolbox generates incorrect code for event groups. Should be like this: {% component source: "Event group", layout: "Detail", type: "module" %} |
Authorize.net Payment Gateway
-
Auhtorize.net payment gateway for ecommerce and payable forms / events / subscriptions.
- BC Equivalent
- Ecommerce
BONUS: 2FA (two-factor authentication)
- The ability to enable 2FA (two-factor authentication) for site admin acccess and Treepl Portal access.
- Admin Panel
- General
Ecommerce: 3rd Party Shipping Integration
-
Add 3rd party shipping APIs to eCommerce.
Integrations that partners have "voted" for:
· FedEx
· UPS
· USPS
· Canada Post
· Australia Post
· New Zealand Post
- Ecommerce
PayPal Payment Gateway
- Paypal Standard (non seamless) and PayPal PayFlow (seamless) for ecommerce and payable forms / events / subscriptions.
- BC Equivalent
- Ecommerce
Full Release Notes
BACKLOG |
Payment Flow For Europe: |
1) Add new setting to the form settings (show only if at least one of the selected payment gateways support Two-step card payments)
2) Payment gateways with Two-step card payments support:
3) Current payment flow logic is Instant payment.
4) Add Amount captured column on the Order -> Payments table http://prntscr.com/tfci79 |
BACKLOG |
Payment Flow For Europe: Stripe for EU (SCA via 3D Secure) |
1) Implement Strong Customer Authentication (SCA): (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments.
2) Add setting to stripe Payment Gateway (Enable 3D Secure) Enabling this setting will force payment form to trigger Payment Intents flow with support of 3D Secure rather then Charges
3) Create new system page: Checkout payment (/checkout-payment)
4) Payment Intents flow will not ask you for card details on the form but once the form is sent - it should redirect you to Checkout payment system page. In case you are paying for Event, secure zone subscription or general payment:
5) If shopping cart total price was changed after user comes to Checkout payment system page - show validation error on submit: “Price of the shopping cart was changed. |
BACKLOG |
Payment gateways: Bambora Payment gateway |
1) Create support for Bambora Payment gateway. Use Norway and Switzerland logic version: https://developer.bambora.com/europe/checkout/getting-started/create-payment
2) Gateway logic should support following flows of capturing price that should be configured via gateway settings (similar as for stripe):
3) Show error message if domain is not verified (endpoint is not valid error from bambora) on charging: “The payment can't be processed. This domain is not verified by Bambora. Please contact their support in order to get the domain verified.” |
BACKLOG |
Custom Reports: Builder |
DESIGN http://prntscr.com/thh497
1) Add page and menu item: ‘Reports’ > ‘Custom Reports’ Provide ability to:
3) Reports Builder: SETTINGS Save the report by name and set as public option that allows you to share the report with other admin users. If Make public set to false - you are the only one who will see this report.
TYPE The type determines what fields should be collected for Fields and Filters steps and what entities should be collected for the final report. - Contacts (default) - Contacts and Cases - Contacts and Orders - Contacts and Event Bookings
FORM FILTER Select a form (from all available web forms) to filter only those cases,orders or event bookings that belong to this form. Show section only if type is one of: - Contacts and Cases - Contacts and Orders - Contacts and Event Bookings
---------
FIELDS Select Fields to be seen on report as column headers
---------
FILTERS
Ability to add additional filtering rules
---------
RESULTS Generate sortable and paginated results table. Ability to export to Excel file. |
BACKLOG |
Custom Reports: Export |
Provide ability to export Custom report to Excel file. Columns should be the same as the report. |
BACKLOG |
Import/Export of prices, attributes and inventory |
Export format:
Add all system properties of the product after default properties and before custom properties
Product area should be defined as (http://prntscr.com/rhxeho):
Add following fields for specific-serialized relations:
|
BACKLOG |
Liquid security issue on form submission |
Add algorithm that will protect user-submitted content of liquid and JS injection in all form submissions and when user adds or edits a module item, for all text fields.
IMPORTANT: Validate text value length AFTER the wrapping if it has occurred. So if original value fits the single line text field but once wrapped it doesn't - the validation error should be shown.
Example: <div> <h1>Some title</h1> {{this}} <script>location.href = "https://some-fishing.site"</script> <style>body{display: none !important;}</style> </div>
Replace with:
<h1>Some title</h1> {{this}} <script-is-not-allowed>location.href = "https://some-fishing.site";</script-is-not-allowed> <style-is-not-allowed>body{display: none !important;}</style-is-not-allowed> </div> |
BACKLOG |
Datasource Field: When focus a field - get first 50 datasource items |
Improve Datasource Form control:
|
BACKLOG |
Recaptcha v3 validation JS fix |
Fix for general form Fix for payment form CMS generated javascript changes to avoid conflicts with payment JS. No Partner/front-end changes required. |
BACKLOG |
Advanced CRM: Custom Fields Groups CRUD Page |
Add page for Custom CRM groups list (http://prntscr.com/thh86e). Provide ability to add, edit, delete the Custom CRM group. Provide ability to use pagination for Custom CRM groups. Add/Edit form should contain following fields:
Design: http://prntscr.com/thh7y7 |
BACKLOG |
Advanced CRM: Custom CRM Field Groups attaching rules and linkage |
There should be 2 types of custom crm groups linkage Global setting:
Individual Contact record Attachment:
Saved custom crm group values for the contact should be saved as group-field-contact-value records. group-field-contact-value records should not be deleted on unassigning Global setting or Certain Contact record Attachment from the crm contact. Description
Linkage entities (each should have EDIT entity button and "Add Custom Fields" button https://prnt.sc/orpcbb):
Group Displaying Rules:
|
BACKLOG |
Advanced CRM: Attach Custom field groups to web forms |
Provide ability to choose Custom CRM Groups and attach them to the form.
Default layout builder should build all fields of each group similar to the form's custom fields.
Name should be: [[GroupAlias]]_[[FieldAlias]]
Example: |
BACKLOG |
Advanced CRM: Add custom CRM field groups to CRM record |
CRM contact detail page should contain new button: “Add Custom Fields”
Clicking on that button should show panel that allows to select existing custom CRM forms.
|
BACKLOG |
Advanced CRM: Liquid component tag for custom CRM fields |
Add new component tag component type:"CRMContactCustomGroup":
Pattern: {% component type:"CRMContactCustomGroup", groupAlias:"[[groupAlias]]", fieldAlias:"[[fieldAlias]]", entityType:"[[entityType]]", entityId:"[[contactId]]", collectionVariable:"", layout:"" %}
Item context: {
Default virtual layout: {{this.fields[0].value}} |
BACKLOG |
Advanced CRM: Toolbox - Liquid component tag for custom CRM fields |
Add new item to toolbox:
|
BACKLOG |
Advanced CRM: Plan restrictions |
All functionality with advanced CRM custom groups should be available starting from Pro plan.
Add to menu:
|
BACKLOG |
CRM Records as Datasource: System property for allowing using crm contact records |
Add new system property to CRM Contact record: isDataUsingAllowed (bool)
CRM records that has this checkbox ticked ON will be allowed to:
|
BACKLOG |
CRM Records as Datasource: Module item custom property - CRMRecord |
Add new Module item property type: CRM record
|
BACKLOG |
CRM Records as Datasource: Liquid output of CRM records |
Add new component tag component type:"CRMContacts":
Pattern: {% component type:"CRMContacts", filterBy:"", filterValue:"", limit:"", offset:"", sortBy:"", sortOrder:"", collectionVariable:"", layout:"" %} Component should filter, sort and return list of CRM contacts that has isDataUsingAllowed equal to true ONLY
Default virtual layout: <ul> {% for contact in this.items %} <li>{{contact.FirstName}} {{contact.LastName}} - {{contact.Email}}</li> {% endfor %} </ul>
Item context: { "items" : [ { "id": 0, "email": "", "firstname": "", "lastname": "", "address": "", "city": "", "state": "", "zipcode": "", "country": "", "site": "", "phone": "", "status": "", "notes": "", "createddatetime": "", "updateddatetime": "", }, ... ] } |
BACKLOG |
CRM Records as Datasource: Toolbox - Liquid output of crm records |
Add new item to toolbox
|
BACKLOG |
Ability To Parse JSON With Liquid |
1) Add new component tag: component type:"json": Pattern: {% component type: "json", source_type:"[[source_type]]", source:"[[source]]", layout:"[[layout]]", collectionVariable:"[[collectionVariable]]" %}
Default virtual layout: {{this}}
{{this}} variable contains the parsed json object. If parse error occurred {{this}} will be NULL
2) Component added to Toolbox (https://prnt.sc/s2pmv2):
================= Public Backlog item: |
BACKLOG |
Extend URL slug max length |
Allow slug max length to be 254 symbols instead of current 200 |
BACKLOG |
Add shipping address to order (system fields) |
1) Add shipping address as system fields to the order in the admin Extend order model by adding shipping address as system fields http://prntscr.com/tet3te
Separate address to the following fields and allow editing via order edit operation:
2) Extend Order liquid object Extend Order liquid object by adding following fields:
So they could be listed like
|
BACKLOG |
Last sorting state saving for the module list view |
Remember the latest sorting field and sorting direction for each module on list view http://prntscr.com/t97vsn Once admin user comes back to the module items list view in the admin - the sorting should be the exact same as it was saved earlier. |
BACKLOG |
Re-send Invoice |
1) Provide ability to re-send invoice email from the admin dashboard (on edit order page) to: - Custom email (‘Send Test Email’ button): once clicked - shows text field to enter email address (pre-filled by current admin email)
|
BETA |
Feature flags updates for v5.4 |
For Trial Sites: Flags moved to internal section AND set to enabled:
For Live sites: Flags move to internal section AND set to enabled:
|
BETA |
Make reCaptcha to be required for users not logged in |
1) Feature flag: Anti-spam protection Enables logic restriction that doesn't allow to submit any web form for not logged in users if the form doesn't include reCAPTCHA (v2 or v3)
Apply restriction as part of validation if
2) WARNING: The flag will be force enabled in 5.5 release (but it still could be temporarily disabled for certain sites on demand). So change your forms accordingly for 5.5 release. And in 5.6 this logic will be applied permanently. |
Bug |
Url (and all other system properties) names should be restricted for custom properties of the module |
When creating custom properties, for any module, using a name of any system property the property should not be created since such alias in use. System should say “Property with specified name already exists” THIS FLOW SHOULD WORK FOR ALL SYSTEM PROPERTIES |
Bug |
Verified domains to be case insensitive |
Validate email domains using case insensitive comparison: |
Bug |
{{this}} in Snippet is incorrect |
Snippet should contain the same object within this variable that is accessible outside snippet. 1. Create snippet and write {{this}} http://prntscr.com/sos6mn 2. Create a Page and output that snippet http://prntscr.com/sos7qe 3. Create another page and write {{this}}
Expected: The only difference between those 2 pages should be only in additional “params” property available in snippet this output http://prntscr.com/sos9nf
Actual: Properties of this object shown incorrectly http://prntscr.com/thgqkk
|
Bug |
Treepl main CSS link position |
Fixed to be prepended to the head section instead of append. https://forum.treepl.co/t/treepl-ecommerce-css-link/1063
|
Advanced CRM
- Customization of forms, form submissions and contacts by a set of predefined groups of fields.
- BC Equivalent
- CRM
Assign CRM Records To Module Items As Datasource
-
1) "isDataUsingAllowed" - system property type checkbox added to CRM record
(only crm records that has this checkbox ticked on will be allowed to be assigned to module items (should help with the GDPR since this checkbox allows user to disallow using his record just by uncheckin the checkbox on the profile page).
2) CRM record - type property...
- CRM
- Custom Modules
Custom Reports
- Ability to create custom records based form submissions, booking records, contacts etc.
- CRM
Full Release Notes
BACKLOG |
Module Duplication |
Function restriction upgrade: Allow copying module starting from Pro plan |
BACKLOG |
`ProductDataJsonHTML` to product detail layout |
Exclusively for Product Module: Automatically add {{this.ProductDataJsonHTML}} to the product detail if there is no manual output inside the layout |
BACKLOG |
Parent Child module links in module settings |
Add ability to switch between parent and child module via links. Useful if you want to go to Blog post settings from blog settings. Design - https://prnt.sc/skhen8 |
BACKLOG |
Search keywords field |
Added search keywords field to import/export |
BACKLOG |
Downloadable products: System Properties |
Add following fields to the system properties for Products module:
Design https://prnt.sc/skhijv |
BACKLOG |
Downloadable products: Processing Logic |
1) Add api to retrieve downloadable file
2) If product has been deleted - delete file as well. On delete - show popup: “You have downloadable file attached to the item and it will be deleted with the item. Are you sure you want to delete this item?” |
BACKLOG |
Downloadable products: Shipping Options logic upgrade |
HIDE shipping options only if ALL products in shopping cart has:
Return an undefined `Enable Shipping` value as `true` if:
OR
Otherwise it's `false` |
BACKLOG |
Downloadable products: Downloadable link for the order line liquid scope |
Add property `downloadableFileURL` to `order` line liquid object.
Modify thank you page and invoice email (default layouts) to show download link if order line is downloadable product Design https://prnt.sc/skhlt9 |
BACKLOG |
Downloadable products: Count downloads logic |
Add `Max Downloads Allowed` system field to product module:
If value is > 0
Else (value is 0 or empty)
|
BACKLOG |
Downloadable products: Downloadable link in admin |
Wrap the product name in `order -> products` tab with a link to downloadable file if it is a downloadable product. |
BACKLOG |
Stripe customers in advanced payment logic |
Modify payment via stripe logic.
As a result if same customer submits several payments - it will always be as one single record in vendor's stripe account. And they will have attached list of non-repeated credit cards that is based on tokens provided while payment. |
BACKLOG |
Attribute and attribute options ordering |
Provide ability to change order of the attributes and options for products via drag-and-drop functionality, which applies the ordering to:
|
BACKLOG |
Show number of products in all shopping carts |
Ecommerce -> Product -> inventory: Show number of items added to all shopping cart sessions under the label of: `Added to shopping cart` Add to general product and product with variations screens: |
BACKLOG |
Link to order on gift voucher |
Ecommerce -> Gift voucher edit page:
|
BACKLOG |
Add link to order from Case, booking |
Add link to order from:
|
BACKLOG |
Daily recurring subscriptions |
Add daily recurring subscriptions option to the secure zone.
|
BACKLOG |
Order Management Upgrade |
Split form submissions and booking subscriptions in orders detail page |
BACKLOG |
Grouped products form improvement |
Remove description field from the grouped product object. Leave display name only |
BACKLOG |
Add tax in product order line + extended tags |
Details here: Equivalents:
1) Add following properties to the order line liquid object:
Example of missing properties and its values: https://prnt.sc/rwvj2f
2) Add following properties to order (see above Example Spreadsheet for calculation definition)
|
BACKLOG |
Out of stock - hide product |
If product in inventory tab has Out of stock property value equals to `hide product` (https://prnt.sc/rseiyi) |
BACKLOG |
Instock logic review |
Change the logic to NOT storing reserved for shopping cart items in In Stock property:
|
BACKLOG |
Orders submission flow rework |
Save form submission data to stripe metadata when performing a payment. Once stripe sends success callback - create form submission record based on data in metadata field |
BACKLOG |
Add Shop settings page and Format settings update |
1) Create groups on the `Settings -> Misc` page Admin Panel Settings
Recaptcha settings
Shop settings
2) Extend `Currency and Format` settings panel (Settings > Domains > Currency and Formatting) Add `Use Custom Number/Currency Format` checkbox (https://prnt.sc/rrnzsp)
Params to be listed in user friendly way:
|
BACKLOG |
Country list management for shopping cart |
1) Add ability to choose what countries to show on the shopping cart. Add `allowedCountries` option to the {% component type:"countries" %} Value:
Example: {% component type:"countries", collectionVariable:"", allowedCountries:"US,AU" %} 2) Add ability to select countries via multiselect dropdown in the component toolbox |
BACKLOG |
nICE color picker z index issue |
Would it be possible for the algorithm to have a minimum z index of at least 100. It seems like it's calculating it at 5 on any complex website, there are going to be items that are over that z-index. |
BACKLOG |
Offline Credit Card Payment System page |
NOTE: To be renamed “Deferred Order Payment” Create new system page
Liquid scope of the page should include the `order` object (same as is accessible on checkout thank you page) Page should contain a new system form with:
Add to component toolbox ability to retrieve offline payment HTML form code
|
BACKLOG |
Offline Credit Card Payment Email |
NOTE: To be renamed “Deferred Order Payment” Add new System email
Liquid scope
|
BACKLOG |
Offline Payments flow |
NOTE: To be renamed “Deferred Order Payment” Provide ability to send Offline Credit Card Payment Email from the `Order -> Payments` tab (https://prnt.sc/rvjj8g)
Alternatively, provide ability to go directly to `Offline Credit Card Payment` system page URL (front-end) from this tab
When submitting a form from the Offline Credit Card Payment system page
Provide ability to set `redirectURL` param. Same as for general forms (form input field) Provide ability to use `jsonResponse=1` param. Same as for general forms |
BACKLOG |
Password change in CRM |
1) Add ability to change password for the CRM contact record. When admin changing password - send `Password Changed` system email 2) Add new system email `Password Changed`
|
BACKLOG |
Bulk delete booking subscriptions |
On `Event -> subscription` tab (https://prnt.sc/rq7cff) provide ability to
|
BACKLOG |
"Today" Button For Release/Expiry Date Functionality |
Add a "Today" button on Release/Expiry Date fields for making inputting date easier, as in BC. |
BACKLOG |
Payment Fields Appearance Management |
1) Add ability to manage layout that is generated by payment systems (https://prnt.sc/rsfhq7): Added two tabs:
Create list of fields based on the documentation below: 2) Apply chosen appearance settings to the payment fields within all payment forms' layouts Modify {% component type:"payment_form_fields", formAlias:"{{this.alias}}" %} layout or payment script JS GET params for this task. |
BACKLOG |
Case Insensitive URL redirect param |
1) Add additional checkbox field to specify if url redirect is case sensitive or not.
logic:
2) Add column to list layout for Is Case Insensitive property
|
BACKLOG |
Control default styles and scripts |
Provide ability to disable auto-added default CMS assets to the head section of pages. Under `Settings -> Misc => CMS Assets Management` 1) Global Settings Fields (and show which resources not to add to the head):
2) For the Content Template Provide same list of fields on the `Content Template` add/edit layout to override global defaults (ie: use global setting by default) 3) Implement logic to check CMS Assets Management settings in the Content Template (or in the Global Settings if Use global setting option is selected for the template). |
BACKLOG |
Re-apply folder detail instead of page detail layout for folders |
Check if there are Page Folder items that have applied detail layout with ID 1525 (Page Detail) If found - attach to them Folder Detail layout (ID 1519 ) and save item. |
BACKLOG |
| set_money_format And | set_number_format upgrade |
Modify liquid filters
Parse argument the following way
|
BACKLOG |
Add URL to order line |
Add URL to order line liquid object. Redo `shopping cart` system page and `invoice` layouts to wrap product name with the link to the product. |
BACKLOG |
Add .dwg format to the staticContent section |
Add “.dwg” extension to the list of allowed to be accessed via URL (Static content list) |
Misc |
Order migration (old data to new) |
Migrate order that was created not by Advanced Payment Flow to the latest version of the orders logic. Apply main order param for the orders that was created for recurring payments (secure zone subscriptions) according to the latest version of the orders logic . |
BACKLOG |
this.order in workflow emails scope |
Add this.order object (same as added in invoice email) to the workflow email liquid context if form has "Accept Payment" option enabled. If no order was created during form submission - set this.order to null |
BACKLOG |
Add to cart - param for button text |
Add buttonName param to: {% component type: "ecommerce_add_to_cart" %} {% component type: "ecommerce_buy_now" %} Example: {% component type: "ecommerce_add_to_cart", buttonName: "Add Me!!!" %} Default value is empty Replace in default layout: `Add to cart` text to `{{this.buttonName | default:"Add to cart"}}` Replace in default layout: `Buy now` text to `{{this.buttonName | default:"Buy now "}}` |
BACKLOG |
Type Media module item property UX upgrade |
Change the algorithm of opening file manager when clicking icon for Type Media module item property https://prnt.sc/sjsoxe:
|
BACKLOG |
Modify shopping cart object |
1) Add `eCommerceItemId` to the shopping_cart order-line object 2) Add attribute images to the order `options` object SOURCE: Use-case for having access to this data: Not directly having the product ID meant I had to look up the product via SKUCode instead which isn't as stable. |
BACKLOG |
Remove Product from cart data attribute selector instead of <tr> (ecommerce.js) |
Modify the functionality, when removing product from cart, so it will try to find parent HTML element by data attribute `data-cms_cart_order_line_holder`. Add autoFix of the shopping cart layout on our template and sites created based on ecommerce template (for the backward compatibility.) |
BACKLOG |
Rebuild module after import module items |
Set to queue entire module rebuild when import module items process is finished |
BACKLOG |
Priced ...HTML properties decimals after dot fix |
PriceHTML and other ...HTML properties render to 4 decimals. Should render such number of decimals as configured in Format Settings attached to the current domain |
BACKLOG |
Add Paginate items parameter for component type module, module_of_member |
Add new parameter to the {% component type:"module" %} and {% component type:"module_of_member" %}
|
BACKLOG |
Order -> Payment tab UX improvement |
View Total cost and pending cost on the page. When click pay by cash - automatically preset amount equal to pending cost Design: https://prnt.sc/skioca |
BACKLOG |
12-24 hrs format switcher for admin datepickers |
Add switcher between 12 and 24 hrs formats on datepickers on `Settings -> Misc` page. Datepickers hrs time format (select) (options): - 12 - 24 Applied to datepickers throughout admin. |
Bug |
Duplicating Event |
When duplicating an event item Expected: Actual: Duplicated item has same subscribers counter as original item has https://prnt.sc/rv91k4. |
Bug |
Parent Child module links in module settings - disappear icon "Folder" |
Go to Settings Blog and select Items List View http://prntscr.com/sbq62x After saving Folders icons are disappear as well as path to Blog Post settings http://prntscr.com/sbq6ms When showing settings tab CMS should return system modules parent-child linkage in order to not override it when saving other settings of the blog http://prntscr.com/sbqbz1 |
Bug |
Bug from forum - not correct import URLs |
https://forum.treepl.co/t/url-slug-changes-not-updated-on-item-import-bug/1002 |
Bug |
Tax deleting error |
When deleting a tax sometimes we get Internal error: |
Bug |
Inventory - When Out of Stock hide button |
|
Bug |
Bugs from forum - Secure Zone Question |
|
Bug |
Bugs from slack - disappear product on Thank you page |
Products on the Thank you page are disappeared http://prntscr.com/r7ukr9 |
Bug |
Bugs from slack - error when related item disable |
|
Bug |
Bugs from slack - import/export |
A product export file re-imported presents ‘Internal Error’. |
Bug |
Bugs from slack - error when apply discount with currency DKK |
|
Bug |
Choose different shipping info |
|
Bug |
Bug from forum - Liquid code to list files from a particular directory |
https://forum.treepl.co/t/liquid-code-to-list-files-from-a-particular-directory/928/2 |
Bug |
Products - add check on Minimum Units and Maximum |
Add validation of these fields: Minimum Units and Maximum Units https://prnt.sc/riulyw when adding products to cart |
Bug |
Bug from client - import/export CRM |
Add ability to edit Type SOURCE: I am seeing an "Excel row number: 2. Detail: Invalid member type." on all 20 lines I try to import to the CRM, but there is no "type" in the file? The only row that works is the first and they all look similar? The first line is exported from the CRM to have something to work from. |
Bug |
[UI] Unruly link manager in WYSIWYG editor |
https://forum.treepl.co/t/unruly-link-manager-in-wysiwyg-editor/1003 |
Bug |
Bugs from slack - payment unsuccessful |
Fix the workflow sending when eWAY payment is unsuccessful http://prntscr.com/rre3lp |
Bug |
Bug from client - change logic Exclude from Catalogs |
|
Bug |
Bug from forum - Mandatory Custom Module Fields Reflect in User form |
https://forum.treepl.co/t/mandatory-custom-module-fields-reflect-in-user-form/1054 |
Bug |
Bug from client - not correct time in invoice |
|
Bug |
Portal Bug from slack - doesn't duplicate Feature flag |
|
Bug |
Popup with shopping cart - doesn't display total price |
|
Bug |
Workflow - doesn't changes name of workflow |
|
Bug |
Search forms - doesn't display SKU Code, Seo title and Meta description |
|
Bug |
Bug from Adam - not correct show price when set up 2 prices |
|
Bug |
URL output {{request.request_url.href}} is fixed (was broken and accessible via incorrect alias: {{request.request_url.ref}}) |
“href” param is broken and outputs via “ref” instead. |
Bug |
Bug from Peter - edit name Catalogs |
Change catalog name and click save Go to the list of the catalogs Catalog name is not changed http://prntscr.com/sh8xf5 |
Misc Improvements (5.3)
-
This list of improvements is gathered from Treepl users' feedback from forum and support:
- Ability to copy existing custom module "Pro" plan
- Parent child module links in module settings
- search keywords field to import/export
- nICE color picker z index issue
- Case Insensitive URL redirect param
- Add option to disable default styles and scripts in Misc settings
- Re-apply folder detail...
- Ecommerce
Ecommerce Improvements (5.3)
-
This list of improvements is gathered from Treepl users' feedback:
- Auto add this.ProductDataJsonHTML to product detail layout
- Stripe customers in advanced payment logic
- Attribute and attribute options ordering
- Show number of products in shopping cart in the product
- Link to order on gift voucher
- Add link to order from Case, booking
- Daily recurring subscriptions
- Order Management Upgrade - final...
- Ecommerce
Deferred Order Payment
-
Ability to manually pay for order through a dedicated system page (link is available through admin).
- Ecommerce
Downloadable Products
-
Ability to create downloadable products (files).
It will operate similar way it did in BC.
- Ecommerce
"Today" Button For Release/Expiry Date Functionality
-
Add a "Today" button on Release/Expiry Date fields for making inputting date easier, as in BC.
- Custom Modules
- UI/UX
Full Release Notes
Version 5.2 is being deployed to trial sites in a period between April 20 and 24.Live sites will get this update starting April 27th.
Follow our System Status page for announcements.
Performance Update and General Overhaul
-
Liquid 2.0 + nICE 2.0 polishing and finalization
Overall system performance upgrade (up to 80% on pages with multitude of module items and components)
- General
Treepl Portal: Upgrade Website
- Ability to upgrade a paid website, with difference in cost applied billed through PayPal or Stripe
- Treepl Portal
Full Release Notes
Beta |
Email Domain Verification |
Email Domain Verification released from beta flag into production |
Backlog |
eWay Payment Gateway: |
1) Add ability to select eWAY as a payment gateway in Settings > Payment > Gateway tab. If eWAY selected - show fields that are required for eWAY. If stripe selected - show stripe fields. http://prntscr.com/r5p0os 2) REMOVE IMAGE FIELD FROM THE STRIPE FIELDS eWay API key reference: http://prntscr.com/rcm99b |
Backlog |
eWay Payment Gateway: |
Add eWAY payment API library to the system. Implement following payment flows: - single item payment (for "Advanced Payment" flag on and off) For secure zone recurring subscriptions and eWAY payment gateway enabled for the country/currency: - Show validation message and stop processing form submit immediately: |
Backlog |
eWay Payment Gateway: |
Apply eWAY apis to provide credit card fields via JS for payable forms in order to tokenize the card and pass token to the backend for charging process. Apply backend auto-add js file script tag to the page similar to the stripe js (provide all required payment settings via get params to eway.js file) |
Backlog |
eWay Payment Gateway: |
Add new component tag of type "payment_form_fields": - formAlias (required) - alias of the form Single tag item context is described below: { Default virtual layout: <div id="paymentFields_{{this.formAlias}}"></div> Add this component to the default form layout that system generates for forms with payments instead of static html. |
Backlog |
Ecommerce Improvements: |
1) Tax price on product detail (+ in product attributes) Add additional properties to products object - taxRate Upgrade ’item_attributes’ liquid component with ‘includeTax’ parameter: - includeTax (not required). By default use false. 2) Ability to see stock quantity for product variations + disabling variation Add this.productDataJSON property. Value is an object. Example: { Add this.productDataJsonHTML property. ATTENTION: this property required to be rendered on Detail or list layout, because treepl cms ecommerce js works based on it’s data. Value is: Modify JS to: - calculate inStockHtml value based on selected attribute options and this.productDataJsonHTML Data (inventoryVariations) - disable attribute options according to disabled variations in inventory and this.productDataJsonHTML Data (inventoryVariations) - calculate priceHTML and priceWithTaxHtml based on this.productDataJsonHTML Data (quantityThreshold) |
Backlog |
Ecommerce Improvements: |
Unite custom menu API and default menu API in to the one API request Add properties to each menu item object: - id of the item - default view (for module) Remove UI bug when items list requested several times in a row if fast clicking between different module list pages Desired result is speed improvement in the admin when: - module item list/tree view load |
Backlog |
Ecommerce Improvements: |
Add volume discount collection to this object of a module item that "is product" ONLY (module setting EnablePricing == true).
- volumeDiscount Collection structure: [ |
Backlog |
Ecommerce Improvements: |
1) If site plan is lower than ecommerce hide following items:
|
Backlog |
Ecommerce Improvements: |
Add ”Restore to default” buttons to: - system emails |
Backlog |
Ecommerce Improvements: |
Move Currency and Format tab from Settings->Payment to Settings->Domains |
Backlog |
Ecommerce Improvements: |
Disable Secure form submission folder feature. |
Backlog |
Ecommerce Improvements: |
Add new component tag of type:"cases": {% component type:"cases", viewType:"[[viewType]]", object:"[[object]]", currentMemberOnly: [[currentMemberOnly]], filterBy:"[[filterBy]]", filterValue:"[[filterValue]]", filterCondition:"[[filterCondition]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:"", limit:"[[limit]]", offset:"[[offset]]" %}
Single tag item context is described below. If object = collection than this contains attributes property that holds the list of attributes ({{this.items}}) :
{ Detail View: { Default virtual layout: <ul> Toolbox: |
Backlog |
Ecommerce Improvements: |
Add new component tag of type:"orders": {% component type:"orders", viewType:"[[viewType]]", object:"[[object]]", currentMemberOnly: [[currentMemberOnly]], filterBy:"[[filterBy]]", filterValue:"[[filterValue]]", filterCondition:"[[filterCondition]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:"", limit:"[[limit]]" %}
Single tag item context is described below. If object = collection than this contains attributes property that holds the list of attributes ({{this.items}}) : List View: { Detail View: { Default virtual layout: <ul> Toolbox: |
HOTPATCH |
Ecommerce Improvements: |
Exclusively for Product Module: Automatically add {{this.ProductDataJsonHTML}} to the product detail if there is no manual output inside the layout |
HOTPATCH |
Module copy function restriction upgrade |
Allow module copying starting Pro plan |
Bug |
List of bug fixes |
eCommerce related:
|
Ecommerce Template: "Furniture"
- New ecommerce/Foundation/WCAG 2.1 compliant template:"Furniture"
- Templates
eWAY Payment Gateway
- eWAY payment gateway for ecommerce and payable forms/events/subscriptions.
- Ecommerce
Ecommerce Additions
-
- Tax price on product detail and in attribute component
- Ability to see stock quantity for product variations with disabling of variations
- Volume discount info available via Liquid
- A button to restore all system pages and system emails to default
- Ecommerce
BUG: Item Duplication of an already Duplicated Item
-
If you duplicate an item (from within the edit page), save it as a new item, then duplicate that item (still within the edit page), it actually duplicates the original/first item instead of the new one.
- Admin Panel
- Bugs
- Pages and Templates
Full Release Notes
Misc |
Events: |
|
Misc |
Events: |
Set Allow pricing to Events module by default ‘Advanced Settings’ -> ’Enable Subscription’ checkbox added. When enabled (which is default):
|
Misc |
recaptcha v3 execution default JS improvement |
Change default recaptcha V3 js code to the one specified in the file recaptcha v3 execution on form submit-min.js New code will execute recaptcha V3 validation once user triggers submit form event Submission will be longer, but this solution removes validation issues with the old code that gives you 2 minutes starting from the page loaded state to submit the form (validated token expired after 2 minutes). Old code launched validation on page load event. Example: |
Misc |
Rename Categories, Tags and Authors tab name |
On item add/Edit view - rename tab name for categories, tags and Authors
|
Misc |
‘Added by’ field refactoring #1 |
Hide field "Added by" and do not request CRM contact records on item Add/Edit form if ALL settings below are set to false:
Attention: Even if field is hidden if it has a value previously - it will not be erased on clicking save item |
Misc |
Recaptcha v3 validation score management |
In Settings -> Misc
On webform validation if success check if validation score is greater or equals to the one set here. |
Misc |
Add keywords field for site search |
Add default field to all modules:
Should contain CSV list of keywords. When user will perform site search - apply searching by this new field as well as it currently does for name and description |
Misc |
Index writing/reading flow upgrade |
Change the way reindex works:
BUG fix: Check that reindex module flow takes ACTUAL documents. Not the cached ones. |
Beta |
Feature flags updates for 5.0-5.1 |
Remove from internal section flags listed below:
Move ’Email domain verification’ flag to Internal flags. |
Beta |
ps1 |
Feature flag: Advanced payment flow Improves payment flow using defined by the customer price formats and currencies attached to domain payment was made from. |
Beta |
ps2 |
New Payment Setting Page should contain tabs: Gateway: design: http://prntscr.com/rbhtr9
Currency and Format: design: http://prntscr.com/rbhtz4
Default setting will be pre-configured (which can not be edited or deleted). This format setting will be used as default if no format setting specified for the domain. Default settings:
|
Beta |
ps3 |
Entity relation Diagram: |
Beta |
ps4 |
Add new component tag "domain_settings": {% component type:"domain_settings", domain:"", collectionVariable:"" %}
collectionVariable context is an OBJECT described below:
|
Beta |
ps5 |
Display dates in the admin using Default domain Format setting |
Beta |
ps6 |
When creating an order, save currency and price format settings chosen for the domain the order was purchased from, to the order at the moment of purchase. So that if admin changes the currency and price format settings for the domain - the order will still keep those settings that were at the moment of purchase. Display prices in order list and detail view based on these saved currency settings: |
Beta |
ps7 |
Use currency and format settings saved in orders to display prices in invoice email. Liquid {{this.order}} example: "id": "12877807959236673593", "State": "AwaitingPayment", "formId": 0, "memberId": 7, "caseId": 0, "name": "Checkout 04 Mar 2020 09:06 AM", "invoiceNumber": 6, "invoiceDate": "2020-03-04T15:06:40.145232Z", "formatSetting": { "name": "Default", "culture": "en-US", "decimalsQuantity": "2", "currency": { "name": "US Dollar" "code": "USD" "symbol": "$" "digitalCode": "840" }, }, "domainCountry": { "name": "UNITED STATES", "code": "US" }, "destinationCountry": { "name": "UNITED STATES", "code": "US" }, "shippingOption": { "id": "12252410371037462536", "shippingOptionId": "7361027874612051972", "name": "Free", "price": 0.0000, "taxPercent": 0.0, "taxPrice": 0.0, "totalPrice": 0.0000, "subTotalPrice": 0.0000 }, "discount": { "id": "16801218532107878402", "code": "test", "type": "FixedAmount", "amount": 5.0000 }, "discountPrice": 5.0000, "giftVoucher": { "id": "7532467322502512642", "code": "test", "amount": 20.0000, "balance": 20.0000 }, "paymentType": "Offline", "amountPending": 8.7700, "amountPaid": 0.0, "subTotalPrice": 33.7700, "taxPercent": 0.0, "taxPrice": 0.0, "totalPrice": 8.7700, "items": [ { "id": "15049017874163171346", "smallImage": null, "name": "test prod", "type": "ModuleItem", "moduleId": 0, "SKUCode": "eb8da3f4-2037-42c8-ab84-20d7c85ea224", "quantity": 1, "Url": "/catalogs/test-prod", "price": 33.7700, "taxPercent": 0.0000, "unitPrice": 33.7700, "taxPrice": 0.00000000, "unitTotalPrice": 33.77000000, "totalPrice": 33.77000000, "unitTotalPriceHtml": "$33.77", "priceHtml": "$33.77", "unitPriceHtml": "$33.77", "taxPriceHtml": "$0.00", "totalHtmlPrice": "$33.77", "quantityHtml": "", "removeHtml": "", "attributes": [] } ], "giftVoucherPrice": 20.0000, "discountPriceHtml": "$5.00", "taxPriceHtml": "$0.00", "shippingTotalPriceHtml": "$0.00", "giftVoucherPriceHtml": "$20.00", "totalPriceHtml": "$8.77", "amountPaidHtml": "$0.00", "amountPendingHtml": "$8.77" } |
Beta |
Advanced Payment Flow: |
Add system field
Add formType property to the following liquid objects:
If Advanced Payment Feature flag is enabled – all payment forms (with selected Accept Payment property) start working via the new flow: For any form type: IMPORTANT: Default html form template generates completely differently from the old one. Payment forms created earlier WILL NOT BE COMPATIBLE with the new flow since JS and backend logic was completely reworked for multiple payment methods and payment gateways. If form type is ‘Generic’: http://prntscr.com/rbyrbh (old html template on the left side and new one on the right)
If form type is ‘SingleItem’: http://prntscr.com/rbz6gd (compared to the generic type)
If form type is ‘Checkout’: http://prntscr.com/rbzkcs (compared to the generic type)
Guide to convert Event Payment forms html layout from old payment flow to new one: 1. Choose SingleItem form type. 2. Do manipulations described below referencing this screenshot: http://prntscr.com/rcjv8o (OLD on left | NEW on right) (1) This part is unnecessary. Remove it. (2) These attributes are unnecessary. Remove it. (3) paymentType Select form field should be renamed to Payment_Type. Value should be CreditCard. Example: <option value="CreditCard">Credit Card</option> (4) paymentData field should be replaced with: <div id="paymentFields_{{this.alias}}"></div> <input type="hidden" name="Payment_Data" /> <div id="paymentErrors_{{this.alias}}" role="alert"></div> (5) Amount field name should be renamed to Payment_Amount. Value should be changed from {{paymentAmount}} to {{this.paymentAmount}}. "If" liquid code is unnecessary. (6) "If" liquid code is unnecessary. eventId field should be renamed to Payment_ModuleItemId. Value should be changed to {{this.moduleItemId}}. allocations field should be renamed to Payment_ItemQuantity Add data-event_one_item_price="{{this.paymentAmount}}" data attribute to the field so it will be calculated by CMS payment js. |
Beta |
Advanced Payment Flow: |
Redo event payment logic to ecommerce payment - single item flow
|
Beta |
ps8 |
Add new liquid filter: {{ numberVar | domain_number_format }}
|
Beta |
ps9 |
Add new liquid filter: {{ numberVar | domain_money_format }}
|
Beta |
Advanced Payment Flow: |
Add new liquid filter:
Note: The ID value to use for “formatSettingId” is currently not readily available and will be a fix for this soon. |
Beta |
Advanced Payment Flow: |
Add new liquid filter:
|
Backlog |
Secure Zones: |
Add Price section for secure zone subscription. |
Backlog |
Secure Zones: |
Add new step to secure zones "Files and Folders" |
Backlog |
Secure Zones: |
Provide ability to see and assign/unassign files and folders to/from secure zone(s) |
Backlog |
Secure Zones: |
On each request to file after checking redirects, follow steps:
|
Backlog |
Make form submission files secure |
On each request to file after checking redirects:
|
Backlog |
c1 |
Create new System module under eCommerce menu called "Catalogs" - allow creating Catalogs and Products on root level and inner level - has new ‘Simplified Tree View’ - has system field for a Thumbnail Image (media) Design: |
Backlog |
c2 |
Add new view of items:
Extend Module -> Advanced Settings:
Simplified Tree View page for catalog view provides ability to:
|
Backlog |
c4 |
Add new module setting under Advanced Settings -> Allow multiple parent items If this option of the child module is enabled - display Tab with the name of the Parent module (for child module item view) or the name of the Child module (for parent module item view). Example: Module Catalogs is parent to Products. The tab content has a multiple item selector: Selecting multiple parents saves a list of the parent module items. List of parent module items determines the list of urls of which each will lead to the detail page of the item. |
Backlog |
p1 |
New System module under eCommerce menu called "Products" System properties:
|
Backlog |
p2 |
Since product allows multiple parents - provide ability to see multiple urls for the module item. Design: |
Backlog |
p3 |
Add new default property ’SKUCode’ (string) to all modules. Add to liquid scope property ’SKUCode’ Show system property SKUCode on Add/Edit module item page -> settings page if
(Advanced settings hidden and restricted to change for now. Enabled for Event and Product modules only) |
Backlog |
p4 |
Price entity list: Design: http://prntscr.com/rb0z9b Display list of prices (price entities) based on Currency/country pairs. (Currency/country pairs can be achieved from list of domains and cultures and countries attached to them) List shows only price entities that are attached to active Currency/country pairs. If admin changes Currency/country pair for some domain but some module item already has attached price entity based on that Currency/country pair that was previously attached to the domain, than this price entity should not be visible but still saved in the db. So if admin sets back that currency/country pair to any domain, that module item will restore visibility of that price entity in the price list. Price entity properties:
Liquid Scope Extending Module item liquid scope should be extended by property Price {{this.price}} that should return price based on the current domain. Searching and filtering impact Price property should be searched or filtered based on the current domain’s country/currency settings. |
Backlog |
p5 |
Add new module setting
If option enabled - show ’Attributes’ tab in the Add/Edit module item page Attributes list: Attributes provide ability to add/edit/delete product attributes and attribute options. Design: http://prntscr.com/rb16h8 Attribute entity: Attribute entity holds list of attribute options with their prices based on currency/country list from site domains. Properties:
Searching and filtering impact Attributes and their options can not be searched or filtered via module component. |
Backlog |
p6 |
Design: http://prntscr.com/rb12ji Inventory entity Clicking on Generate Variations (setting it to true) should hide InStock and PreOrder options and create variant products as per any attribute options that have AddToInventory = true.
Sum of all insock values of all variant products should be set to Inventory.InStock property. Clicking on Disable Variations (setting it to false) should show InStock and PreOrder options and remove variant products entirely.
Both changes should be applied if user clicks save button ONLY. If user set Generate Variations = false than show confirmation window before saving: Are you sure you want to remove all product variations? OK CANCEL Inventory entity properties and relations
Searching and filtering impact Inventory data can't be searched or filtered for now. |
Backlog |
p7 |
New component tag "item_attributes": {% component type:"item_attributes", object:"[[object]]", module:"[[moduleIdentifier]]", itemId:"[[itemId]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:"" %}
item context is described below. If object = collection (which is default) than this contains attributes property that holds the list of attributes ({{this.attributes}}):
Default virtual layout can be seen/copied via FTP in ‘cms_assets’ folder. |
Backlog |
p8 |
Add new toolbox items
|
Backlog |
CRM: |
New entity of ‘Contact Type’ with options:
Extend CRM Contact entity by Type field. Set ’Consumer’ value to all CRM contact records by default:
|
Backlog |
Ecommerce: |
Ability to view list of taxes and perform create/edit and delete tax operations. Design: http://prntscr.com/rbjty8 Columns of the list view:
Provide ability to pre-create taxes for countries (http://prntscr.com/rbjts6):
http://prntscr.com/ovgi09 - clicking on the button should create set of tax codes for selected country if system has preset of taxes for that country. Create/edit form:
|
Backlog |
Ecommerce: |
Ability to view list of discount codes and perform create/edit and delete discount code operations. Design: http://prntscr.com/rbjuge Columns of the list view:
Create/edit form:
|
Backlog |
Ecommerce: |
Ability to view list of Gift Vouchers and perform create/edit and delete Gift Voucher operations. Design: http://prntscr.com/rbjuz8 Columns of the list view:
Create/edit form: Details tab:
Recipient tab:
Buttons:
|
Backlog |
Ecommerce: |
Add new system email
Liquid scope (this):
EXAMPLE: "Message": "test test test", "SiteUrl": "https://vlad.z.treepl.co", "GiftVoucher": { "Name": "GV431795", "Amount": 100.00000000, "Balance": 100.00000000, "Type": "ViaShop", "Currency": "$", "Enabled": true, "RecipientName": "test@gmail.com", "RecipientEmail": "test@gmail.com", "RecipientMessage": "test test", "CreatedDateTime": "0001-01-01T00:00:00", "UpdatedDateTime": "0001-01-01T00:00:00" }, "RecipientName": "test@gmail.com", "PurchaserName": "test2 test2", "PurchaserEmail": "test2@gmail.com", "GiftVoucherAmount": 1100.00000000, "GiftVoucherCode": "GV431795", "GiftVoucherCurrency": { "Code": "USD", "Symbol": "$", "DigitalCode": "840", "Name": "US Dollar" } } |
Backlog |
Ecommerce: |
Ability to view list of Shipping options and perform create/edit and delete Shipping option operations. Design: http://prntscr.com/rbjxt3 Columns of the list view:
Create/edit form: Details tab:
Settings tab:
|
Backlog |
eCommerce: |
Liquid properties created for all price related objects to correctly output HTML markup to work with JS functionality. For example, where you might have an output for a products price value such as: Output is just a value: But for the shop JS functionality data attributes are required for correct updating of prices, etc. So formatted objects are available, eg: Output is HTML: <span data-cms_product_data_price="[[itemId]]">[[ItemPrice]]</span> |
Backlog |
eCommerce: |
Create js function for ecommerce.js that will
|
Backlog |
Shopping cart: |
Create js function for ecommerce.js that will
|
Backlog |
Shopping cart: |
Create new system page
Default layout - inserts all JS and html code that will provide shopping cart functions |
Backlog |
Shopping Cart: |
Add new component tags: {% component type:"countries", collectionVariable:"", layout:"" %} {% component type:"currencies", collectionVariable:"", layout:"" %} {% component type:"shipping_options", collectionVariable:"", layout:"" %} {% component type:"tax_codes", collectionVariable:"", layout:"" %}
collectionVariable context is an OBJECT described below: countries: { "items": [ { "Code": "string", "DisplayName": "string" } ] } currencies: { "items": [ { "Code": "string", "Symbol": "string", "DigitalCode": "string", "Name": "string", } ] } shipping_options: { "items": [ { "Id": "string", "Name": "string", "Price": 0, "TaxPercent": "0", "TaxPrice": "0", "TotalPrice": 0, "CountryCurrency": { "CurrencyCode": "string", "CurrencyName": "string", "CountryDisplayName": "string", "CountryCode": "string" } } ] } tax_codes: { "items": [ { "Id": "string", "TaxCode": "string", "CountryCode": "string", "Amount": 0 } ] } Default virtual layout: countries: <select> {% for item in this.items %} <option value="{{item.Code}}" >{{item.displayName}}</option> {% endfor %} </select> currencies: <select> {% for item in this.items %} <option value="{{item.Code}}" >{{item.Name}} ({{item.Symbol}})</option> {% endfor %} </select> shipping_options: <select> {% for item in this.items %} <option value="{{item.Id}}" >{{item.Name}} ({{item.TotalPrice | domain_money_format }})</option> {% endfor %} </select> tax_codes: <select> {% for item in this.items %} <option value="{{item.Id}}" >{{item.TaxCode}} ({{item.Amount}}%)</option> {% endfor %} </select> Toolbox:
|
Backlog |
Shopping cart summary widget |
Add new component tag component type:"shopping_cart": {% component type:"shopping_cart", collectionVariable:"", layout:"" %}
‘collectionVariable’ context is an OBJECT described below: { "Id": "1907185188476026940", "totalItemsCount": 1, "unitsCountHtml": "<span data-cms_cart_units_count=\"1907185188476026940\">1</span>", "paymentType": null, "hasGiftVoucherProducts": false, "formatSetting": { "name": "En-US USD my", "culture": "en-US", "decimalsQuantity": "2", "currency": { "code": "USD", "symbol": "$", "digitalCode": "840", "name": "US Dollar" } }, "domainCountry": { "name": "UNITED STATES", "code": "US" }, "destinationCountry": { "name": "UNITED STATES", "code": "US" }, "shippingOption": { "id": "12252410371037462538", "shippingOptionId": "7361027874612051972", "name": "Free", "price": 0.0000, "taxPercent": 0.0, "taxPrice": 0.0, "totalPrice": 0.0000, "subTotalPrice": 0.0000 }, "discount": { "id": "16801218532107878403", "code": "test", "type": "FixedAmount", "amount": 5.0000 }, "giftVoucher": { "id": "7532467322502512643", "code": "test", "amount": 20.0000, "balance": 0.0000 }, "discountPrice": 5.0000, "subTotalPrice": 33.7700, "subTotalPriceHtml": "<span data-cms_cart_subtotal=\"1907185188476026940\">$33.77</span>", "taxCodeId": null, "taxPercent": 0.0, "taxPrice": 0.0000, "taxPriceHtml": "<span data-cms_cart_tax_price=\"1907185188476026940\">$0.00</span>", "totalPrice": 28.7700, "totalPriceHtml": "<span data-cms_cart_total=\"1907185188476026940\">$28.77</span>", "discountPriceHtml": "<span data-cms_cart_discount_price=\"1907185188476026940\">$5.00</span>", "giftVoucherPriceHtml": "<span data-cms_cart_gift_voucher_price=\"1907185188476026940\">$0.00</span>", "giftVoucherPrice": 0.0000, "shippingTotalPriceHtml": "<span data-cms_cart_shipping_price=\"1907185188476026940\">$0.00</span>", "checkoutButtonHtml": "<button class=\"system_button\" data-cms_cart_checkout=\"\">checkout</button>", "clearCartHtml": "<button class=\"system_button\" data-cms_cart_clear_card=\"\">Clear cart</button>", "giftVoucherHtml": "<input type=\"text\" data-cms_cart_gift_voucher=\"\" value=\"test\" />", "discountCodeHtml": "<input type=\"text\" data-cms_cart_discount_code=\"\" value=\"test\" />", "items": [ { "id": "15049017874163171349", "smallImage": null, "name": "test prod", "type": "ModuleItem", "moduleId": 0, "SKUCode": "eb8da3f4-2037-42c8-ab84-20d7c85ea224", "quantity": 1, "Url": "/catalogs/test-prod", "price": 33.7700, "taxPercent": 0.0000, "unitPrice": 33.7700, "taxPrice": 0.00000000, "unitTotalPrice": 33.77000000, "totalPrice": 33.77000000, "unitTotalPriceHtml": "<span data-cms_cart_item_total_unit_price=\"15049017874163171349\">$33.77</span>", "priceHtml": "<span data-cms_cart_item_price=\"15049017874163171349\">$33.77</span>", "unitPriceHtml": "<span data-cms_cart_item_subtotal_price=\"15049017874163171349\">$33.77</span>", "taxPriceHtml": "<span data-cms_cart_item_tax=\"15049017874163171349\">$0.00</span>", "totalHtmlPrice": "<span data-cms_cart_item_total_price=\"15049017874163171349\">$33.77</span>", "quantityHtml": "<input type=\"number\" value=\"1\" data-cms_cart_item_quantity=\"15049017874163171349\" />", "removeHtml": "<a target="_blank" href=\"javascript:\" data-cms_cart_remove_order_line=\"15049017874163171349\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" /><path d=\"M0 0h24v24H0z\" fill=\"none\" /></svg></a>", "attributes": [] } ] } Default virtual layout: <div class="shoppingCartWidget" data-ecommerce_shopping_cart_widget> {% if this.totalItemsCount > 0 %} {{this.totalItemsCount}} item(s), Total: {{this.totalPrice | domain_money_format }} <a class="shoppingCartLink" href="/shopping_cart">View Cart</a> {% else %} Shopping cart is empty. {% endif %} </div> Toolbox:
|
Backlog |
Add to Cart: |
Add new component tag component type:"ecommerce_add_to_cart": {% component type:"ecommerce_add_to_cart", itemId: "", collectionVariable:"", layout:"" %}
collectionVariable context is an OBJECT that is equal to module item selected by itemId param. Default virtual layout: <a target="_blank" href="javascript:" data-ecommerce_add_to_cart_Item="{{this.id}}" class="ecommerceAddToCartItem">{{this.name}}</a> Toolbox:
|
Backlog |
Buy Now: |
Add new component tag component type:"ecommerce_buy_now": {% component type:"ecommerce_buy_now", itemId: "", collectionVariable:"", layout:"" %}
collectionVariable context is an OBJECT that is equal to module item selected by itemId param. Default virtual layout: <a target="_blank" href="javascript:" data-ecommerce_buy_now_Item="{{this.id}}" class="ecommerceBuyNow_Item">{{this.name}}</a> Toolbox:
Button should add item to cart and then redirect user to shopping cart. |
Backlog |
Item Quantity: |
Add new component tag component type:"ecommerce_item_quantity": {% component type:"ecommerce_item_quantity", itemId: "", collectionVariable:"", layout:"" %}
collectionVariable context is an OBJECT that is equal to module item selected by itemId param. Default virtual layout: <input type="number" data-ecommerce_qunatity_field="{{this.id}}" name="ecommerce_qunatity_field" value="1"/> Toolbox:
|
Backlog |
/cms-assets/payment/ecommerce.js file specification and Linkage rules |
File specification: Create file “/cms-assets/payment/ecommerce.js” File contains functions that supply:
Logic should be based on layouts generated by
Linkage rules: <script src="/cms-assets/payment/ecommerce.js?v=[[cms_version]]"></script> should be added to head of the page when:
|
Backlog |
Append to ecommerce.js 3 culture params |
Pass site culture settings to ecommerce.js for price calculation and JS output. |
Backlog |
System page: |
Create new system page
{% component type:"form", alias:"checkout_form", formType: "checkout" %} |
Backlog |
Preset Checkout From |
Create Checkout From. Alias checkout_form Implement base styles for the form in /cms-assets/css/main.css |
Backlog |
System page: |
Add system page
Provide liquid objects (this.formSubmissionData and this.order) those are required to build the page by design below: |
Backlog |
System email: |
Add new Supplier Workflow Notification system email Design - http://prntscr.com/rbkktt Also add invoice liquid data to the following emails:
|
Backlog |
System email & System Workflow: |
Add new Low Stock Notification system email Add new Low Stock Workflow system workflow (undeletable) |
Backlog |
System email: |
Redo invoice system email HTML content to match the shopping cart table |
Backlog |
eCommerce: |
In ‘CRM’ > ‘Orders’ ability to
|
Backlog |
eCommerce: |
Setup Advanced Search and filtering by
|
Backlog |
Advanced Module Settings: |
Create setting that will allow module item to have list of related module items
If option enabled - view tab on add/edit item page: Provide ability to
Chosen module items will be determined as RelatedModuleItemsList |
Backlog |
Advanced Module Settings: |
Create setting that will allow module item to have list of related module items
If option enabled - view tab on add/edit item page: Provide ability to:
Further details: Can sort grouped products ordering via drag-and-drop. Always show main product as first item in list. On change main product - set it's order position to first. When trying to add product to group - if it's already added to any other group - show popup:
|
Backlog |
Module item Pricing tab upgrade |
Provide UI upgrade that allows to see what price is edited right now (highlight editing price line). When choosing another country/currency value - highlight the actual pricing record |
Backlog |
eCommerce: |
Add new component tag component type:"related_items": {% component type:"related_items", object:"[[object]]", source:"[[moduleIdentifier]]", itemId:"[[itemId]]", limit:"[[limit]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:"" %}
Single tag item context is the same as for type:"module": Default virtual layout: <ul> {% for item in this.items %} <li> <a target="_blank" href="{{item.url}}" title="{{item.name}}">{{item.name}}</a> </li> {% endfor %} </ul> |
Backlog |
eCommerce: |
Add new component tag component type:"grouped_items": {% component type:"grouped_items", object:"[[object]]", source:"[[moduleIdentifier]]", itemId:"[[itemId]]", collectionVariable:"", layout:"" %}
Single tag item context is
Default virtual layout: <select> |
Bug |
Advanced URL bug fix |
I created pages in the root directory but then needed to create 2 sub folders (en-gb & fi). I moved the files into the en-gb folder but they also show in the root directory?
|
Bug |
Edit secure zone |
Fixed Internal error bug (http://prntscr.com/r295iq) then changing secure zone type from free to paid and clicking save. |
Bug |
Delete last product from shopping cart |
Now when deleting last product from the shopping cart – the page refresh state to Shopping Cart is empty automatically. No need to manually refresh the page |
Bug |
Change logic when choose another country on Shopping Cart |
When selecting another country the shipping options will no longer disappear (if no country limitation option applied to the particular shipping options). |
Bug |
Not correct calculated pre-order variations |
Expected:
Actual
|
Bug |
Secure Zone custom date |
Create a Secure Zone with Custom Date http://prntscr.com/r26h9g But applied incorrect date http://prntscr.com/r26hdm |
Bug |
Add cursor to indicate drag and drop functionality |
Add cursor on hover in Catalogs and Products assignment pages. So user can determine that he can drag and drop items http://prntscr.com/qytfem |
Bug |
Change sorting on Orders list |
Change ordering on CRM -> Orders. Last created orders should be shown first (sort by date created DESC). |
Bug |
Update table in eCommerce |
Update Custom Columns so user can select eCommerce related properties |
Bug |
Change title on Shipping Option |
Go to Shipping Option, Click on Add new Shipping Option, Change title http://prntscr.com/qyah0h |
Bug |
Change shipping option when change quantity |
|
Bug |
Adding product with different attribute separately to cart |
|
Bug |
Tax on shopping cart should change dynamically |
Output the tax on the shopping cart http://prntscr.com/qydqbo . It should be changed dynamically when applying new tax (user should not refreshing the page to see the applied taxes) http://prntscr.com/qydqv2 |
Bug |
Generate Inventory |
|
Bug |
In Stock showing when inventory disabled |
If Enable inventory checkbox is not checked than In stock:0 should not be shown http://prntscr.com/qvjbxa |
Bug |
Discount code valued at more than the order total |
Order totalPrice should not be less than 0 when applying amount discount that is bigger than totalCost of the order http://prntscr.com/qvjely |
Bug |
Not saving Catalogs in Discount Code |
Catalogs restriction field in discount code not saving. http://prntscr.com/qv4k1k
|
Bug |
Gift Voucher doesn't work |
|
Bug |
Removing Discount codes after applying him |
|
Bug |
2 price in product |
When product that has several prices is added to the cart – shopping cart shows incorrect price https://prnt.sc/qv4sqs |
Bug |
CRM Wholesaler |
CRM Wholesaler type doesn't change logged in users Liquid 'Type' value, nor does it change product pricing to wholesaler when logged in. |
Bug |
Canonical links in product |
Go to detail Product (product must be in several Catalogs) Open tab SEO and set canonical link http://prntscr.com/quyzkm absent name product AND when you change canonical link - must be preselected information - but now is empty http://prntscr.com/quz19h |
Bug |
Catalogs Detail Layout |
Fix the Catalog detail layout https://prnt.sc/quz56n |
Bug |
Clear cart |
Clearing the cart doesn’t restore instock value of the product. |
Bug |
Check 'Price' and 'PriceHtml' |
A Product has Liquid values 'Price' and 'PriceHtml', but these appear to be the same (eg: 18.0000). The 'priceHtml' should be the country/currency "formatted price" |
Bug |
Optimize Speed opening Component Manager |
Optimize loading of the Components Manager http://prntscr.com/qs84xx |
Bug |
Typo in {{this.InStoke}} |
It says {{this.InStoke}}. Again a minor thing and {{this.InStockHtml}} will solve this. https://treepl.slack.com/archives/CRUAT8GGZ/p1579791435006900?thread_ts=1579765114.003400&cid=CRUAT8GGZ |
Bug |
Mistake in spelling |
Under Product 'Group Items' there are some typos for the description placeholder: "Description" and "e.q" http://prntscr.com/qs4lr4 and without the dot in the end http://prntscr.com/qs4mgw |
Bug |
Group Items selection |
Go to Product->Group Items You can't choose itself https://prnt.sc/qs4n4f |
Bug |
UI improvement for Site Information |
https://forum.treepl.co/t/ui-improvement-for-site-information/836 |
Bug |
Liquid error |
When price is added it breaks the product detail page with this "Liquid Error: Object reference not set to an instance of an object."" |
Bug |
Error when delete product |
It seems that sometimes I am not able to add new products, when I press Save it gives me the classic "You have unsaved changes. Leave the page?" If I press OK I end up on the front page (Analytics) |
Bug |
Change this.name on detail product |
Small thing and since all will change the product detail page it doesn't matter that much. The name of the product is "hardcoded" to be "Product 1". Should be {{this.name}} ? |
Bug |
Added by member - doesn't show |
“Added by” CRM contact not showing on Module Item Detail Page http://prntscr.com/qxdk80 |
eCommerce
-
Ecommerce release schedule
- Products
- Catalogs
- Discounts
- Taxes
- Shipping
- Gift vouchers
- Related products
- Shopping cart and checkout process
- Ecommerce
Ability To Assign Documents To A Secure Zone
-
Ability to make documents such as PDFs and Word docs secure by assigning them to a secure zone. And/or the ability to assign a folder and all the documents in it to a secure zone so that no one can access or download the document unless they are logged into the secure zone.
- Secure Zones