"BC to Treepl" app updates, announcements and discussions

As you may have seen from our latest update, the app now performs the following:

  • Transferring all of your website’s data including content items, layouts and files
  • Transforming BC data into Treepl’s format: "(module_…)”, “(tag_…)” and data source fields of Web Apps
  • Converting of BC Liquid tags into Treepl Liquid tags, including custom properties of Web Apps.

On July 17th, we will officially release “BC to Treepl” version 7 on BC’s Partner Webinar. During this and beginning of next week we will be refining the app’s functionality based on your feedback and usage report.
Please post your results, questions, feedback and impressions in this thread.

Get the latest version of the app here.


Thanks for the update and info @vlad.z

Say what! This is awesome.
@vlad.z, can you give more info on this; is the app converting ALL encountered Liquid into Treepl Liquid? or is this just within System Modules/WebApps? Where can we expect this to be working/not working?

Ditto on this question! really interested to see how far this goes!

For now conversion works for these layouts:

  • Webapp Datasource Property (webapp item id in the value will be replaced with the id of custom module item that was transferred by the app earlier).
  • Webapp item description (modules)
  • Webapp List and Detail Layouts (modules, entire tags and liquid tag output)
  • Menu Layouts (modules, entire tags and liquid tag output)
  • Pages (modules, splitting page content to Content property (part inside <body> html tag) and to SEO - <HEAD> section property (part inside <head> html tag))
  • Page Templates (modules, entire tags)
  • ContentHolders (modules)
  • Any include inside any layout above will be parsed and converted using the same rules as for the layout where the include was found.
    • For example if the webapp list layout contains {% include “/somepath/someinclude.inc” %}
      and content of the include is {tag_description} than conversion engine will modify the content of the include in a scope of webapp list layout so {tag_description} will be replaced to {{this[‘Description’]}}.
      Note it will work only for includes that has static path.
      The only exception is using {{this.params.moduleTemplateGroup}} inside include path that is placed inside menu layouts

Modules and liquid that will be converted are:

  • System and Custom modules:
    • module_contentholder
    • module_menu
    • module_webapps
      • If the webapp used some template="/somepath/custom.tpl" than conversion will create additional list layout named like _somepath_custom_tpl and attach it to the result component type="module ".
        Also that layout will be added to conversion queue and also will be parsed by conversion engine like webapp list layout.
  • General modules:
    • module_pagename
    • module_isloggedin
    • module_goback
    • module_closewindow
    • module_today
  • | date:"" liquid filter will be replaced by | format_date:"" because the bc date format used in liquid fully corresponds the date format in format_date liquid filter instead of date filter.
  • {{globals}} usage (~ means any subproperty):
    • *{{globals.get.~}}
    • *{{globals.cookie.~}}
    • *{{globals.site.host}}
    • *{{globals.site.datenow}}
    • *{{globals.visitor.deviceclass}}
    • *{{globals.visitor.ip}}
    • *{{globals.visitor.useragent}}
    • *{{globals.visitor.referrer}}
    • *{{globals.user.entityid}}
    • *{{globals.user.firstname}}
    • *{{globals.user.lastname}}
    • *{{globals.user.username}}
    • *{{globals.user.email}}
    • *{{globals.user.isloggedin}}

PS: By the way, note that the transfer engine stopped forcing replacement of content of custom module layouts if the content doesn’t correspond to default custom module list and detail layout.
It should help if you repeat the transfer of the same webapp in order to let it migrate additional webapp items and not affect the custom module layouts edited by the admin user.

Hope it makes sense. If you have any additional questions please don’t hesitate to ask me here.


Can’t wait to test this out!

By the way. Yesterday was added an update that converts BC image resizer rule to Treepl one.
But I think it would be helpful to share this rules if you want to make similar resizes to the new sites also.
Here they are:

  • width and height params should be written lowercased.
    • /somepath/image.png?width=100 WILL work
    • /somepath/image.png?Width=100 WILL NOT work (image will be corrupted)
  • algorithm=fill can be achieved using mode=stretch
  • algorithm=proportional can be achieved using mode=max
  • algorithm=fill_proportional can not be fully achieved, but using mode=boxpad&bgcolor=transparent&format=png will allow you to achieve the closest result to algorithm=fill_proportional

@Adam.Wilson How do you think, maybe it’s something that worth to be added to the documentation as a separate article?

1 Like

Yep, will do @vlad.z

@vlad.z does the Liquid conversion work with both old and new BC syntax?



{module_contentholder name="Item Name"}

Yes. The app utilizes conversion of both version of the bc tags format.

BC to Treepl app has been updated to
v7.2 bringing the following:

  • conversion of form module tags
  • conversion of all form cms specific data:
    • html form action attribute (such as action="/FormProcessv2.aspx?WebFormID=72961…" TO action="/forms/cases.ashx?form=fff")
    • Custom thank you page: if the action contains pageId=/some/url the app creates treepl equivalent before closing the form tag
    • all field names attributes are converted from BC syntax to Treepl syntax (such as name=“CAT_custom_124678” TO name=“myCustomField”)
    • conversion of modules: {module_ccsecurity}, {module_captchav2}, {module_recaptcha}
  • added “name to alias” conversion for liquid array property calls.
    {% component source: “A - webapp 3”, layout: “Backup List”, collectionVariable: “myCollection”, type: “module” %}
    {{myCollection.items[0][‘My Custom# Field’]}}
    will be converted to
    {% component source: “A - webapp 3”, layout: “Backup List”, collectionVariable: “myCollection”, type: “module” %}
  • fixed a bug with media downloads not being transferred showing the error.

BC to Treepl app v9.0 is released bringing transfer of ecommerce: products, catalogs, gift vouchers, discount codes, shipping options and taxes.


BC to Treepl app v9.1.1 is released bringing automated migration+conversion of eCommerce, including:

  • Products (list+detail+list backup layouts)
  • Catalogs (list+detail layouts)
  • eCommerce system pages (shopping cart, checkout page, checkout thank you page)

And modules:

  • module_catalogue
  • module_cataloguelistdump
  • module_catalogueselect
  • module_product
  • module_productfeaturelist
  • module_productlistdump
  • module_shoppingcartsummary

“BC to Treepl” app v9.2.2 is released bringing:

  • Migration of media download files that are added to a secure zone.
  • Assigning media download items and files to secure zones (works only if media downloads and secure zones are requested to be migrated together in one request)

Please note these changes will work only for newly created requests and only if you do not log out from the BC admin panel once you click on “start migration” (you can still close the browser tab with the admin panel or close the browser).

“BC to Treepl” app v10.2 is released bringing:

  • Migration of Advanced CRM groups
  • Migration of Advanced CRM groups’ data assigned to CRM Contacts and Form Submissions
1 Like