Business Catalyst Blog

BC.NEXT - Access All BC Data: JSON Output Everywhere, More REST APIs

Cristinel Anastasoaie Tuesday, June 17, 2014

The new BC rendering engine we are going to launch will allow us to give more access to the BC data as never before. We will be giving you access to all of the BC rendered data in JSON format in a very flexible and intuitive way.

Today we're announcing some big JSON related features scheduled to come in the next version of BC:

Dynamic .json pages that output module data

BC Partners often asked us to be able to create a JSON page and use existing modules in it, to be able to load data in JS and manipulate it in different ways.

We have implemented now a feature to enable you to create pages that output .JSON, and when rendering that page the following things happen:

  1. The page will not have any template (you cannot set a page-template on those pages)
  2. The modules are being rendered, but all of the values are correctly escaped to be JSON compatible (so you can put them directly in a JSON format)
  3. When the page is outputted, the appropriate JSON content-type is sent
  4. In order to differentiate those dynamic JSON pages from standard HTML pages, we have chosen to have those files on disk as sample.json.html

Suppose we want to output the items of a webapp called testimonials (that has 2 fields: name, content) and we want to list them in a JSON.

We would start by creating a page named testimonials.json.html and use the following code for its content:

{
    "testimonials" : [
            {module_webapps,testimonials,a template=”/testimonials.tpl"}
    ]
}

In the testimonials.tpl file we would have:

{
"name": "{tag_name_nolink}",
"content" : "{tag_description}"
},

Then when accessing the /testimonials.json.html URL we would get a nice-looking JSON file, containing all information from the page:

{
"testimonials": [
      {
"name" : "First Testimonial",
"content”: “This is the content of the first testimonial"
},
      {
"name" : "Second Testimonial",
"content”: “This is the content of the second testimonial"
},
      {
"name" : "Third Testimonial",
"content”: “This is the content of the third testimonial"
}
]
}

With this method you will be able to use existing parameters of the modules (for filtering, sorting) and create your own custom JSON outputs from them, as your application needs it. Also, we automatically detect the trailing comma and remove it.

module_json - a new module to support SEO rendering of JSON files

This module was added for a maximum flexibility in terms of data and layout. The module syntax is:

{module_json json="/module_json/data.json" template="/module_json/template.tpl"}

The module reads the data form the json and renders it using the template with Liquid syntax for rendering (http://docs.businesscatalyst.com/developers/beta/introduction-to-liquid).

Let’s take for example a data.json file that contains:

{
    "description": "List of a collection of Doughnuts",
        "doughnuts":
        [
            {
                "id": "5001", "type": "Plain", "price": 0 }
            ,
            {
                "id": "5002", "type": "Glazed", "price": 1 }
            ,
            {
                "id": "5005", "type": "Sugar", "price": 1 }
            ,
            {
                "id": "5007", "type": "Powdered Sugar", "price": 1.25 }
            ,
            {
                "id": "5006", "type": "Chocolate with Sprinkles", "price": 1.5 }
            ,
            {
                "id": "5003", "type": "Chocolate", "price": 2 }
            ,
            {
                "id": "5004", "type": "Maple Syrup", "price": 2.25 }
        ]
}

And a template.tpl that contains:

<div>{{this.description}}</div>
<ul>
    {% for doughnut in this.doughnuts %}
    <li>
        id={{doughnut.id}} type={{doughnut.type}}
        {% if doughnut.price == 0 %}
            Free!
        {% else %}
            Price: ${{doughnut.price}}
        {% endif %}
    </li>
    {% endfor %}
</ul>

Rendering the page containing the module will result in:

<!DOCTYPE html>
<html xmlns=" http://www.w3.org/1999/xhtml ">
    <!-- BC_OBNW -->
    <head>
        <title>Untitled page</title>
        <meta name="description" />
    </head>
    <body>
        <div>List of a collection of Doughnuts</div>
        <ul>
            <li>id=5001 type=Plain Free!</li>
            <li>id=5002 type=Glazed Price: $1</li>
            <li>id=5005 type=Sugar Price: $1</li>
            <li>id=5007 type=Powdered Sugar Price: $1.25</li>
            <li>id=5006 type=Chocolate with Sprinkles Price: $1.5</li>
            <li>id=5003 type=Chocolate Price: $2</li>
            <li>id=5004 type=Maple Syrup Price: $2.25</li>
        </ul>
    </body>
</html>

As you can see you can have any structure of JSON and use liquid in its full (conditionals, sort, etc). The data is exposed in the same structure as the one in the data file and exposed to liquid under the {{this}} variable.

This allows you to be as creative as you can with the layouts and use this new model of JSON data very flexibly with the new OpenAdmin.

Viewing the modules and the data used to render a page as JSON 

With the evolution of our rendering engine, we are now automatically capturing all the modules and tags rendered in a page in a data tree. We think it will be useful to expose this tree to you, in order to allow you to easily access any data used in a page.

For example, let’s say we have a page named jsonSerialization.html that contains:

<!DOCTYPE html>
<html>
    <head>
        <title>Untitled page</title>
        <meta name="description" content="" />
    </head>
    <body>
        <div>{module_pagename}</div>
        <div>{module_contentholder name="render_contentholder"}</div>
    </body>
</html>

And that the content of the “render_contentholder”  contains just another module:

<div>{module_faq filter="item" itemId="29318"}</div>

The result of calling the http://mysite.com/jsonSerialization.html?json=true will be:

{
   "moduleName":null,
   "pagename":{
      "moduleName":"pagename",
      "name":"jsonSerialization"
   },
   "urlculture":{
      "moduleName":"urlculture",
      "culture":"EN"
   },
   "contentholder":{
      "moduleName":"contentholder",
      "id":"12833",
      "name":"render_contentholder",
      "content":"<div>{module_faq filter="item" itemId="29318"}</div>",
      "faq":{
         "moduleName":"faq",
         "items":[
            {
               "body":"No you cannot combine two lead-in products together. You will need to upgrade to one of the All-in-One plans.<br><br>",
               "answer":"No you cannot combine two lead-in products together. You will need to upgrade to one of the All-in-One plans.<br><br>",
               "id":"29318",
               "question":"Can I combine two lead-in products together?",
               "releaseDate":"2007-11-15",
               "expiryDate":"9999-01-01",
               "lastUpdateDate":"2007-12-04",
               "counter":"1",
               "urlcountrycode_2":{
                  "moduleName":"urlcountrycode",
                  "countryCode":"AU"
               }
            }
         ]
      }
   }
}

As you can see the entire rendering tree and the module data has been outputted to JSON. You can also see that the hierarchy of modules has been respected (the faq is a child-module of the contentholder).

This also offers you a lot of flexibility in accessing BC data in ways that you could not have done before, and it's the foundation of our liquid rendering.

Note: for a quick way to look at your JSON data in the browser, we recommend the Chrome JSON Viewer extension

REST APIs

With the launch of OpenAdmin and the great feedback we received there, we understood that there is a need for even more APIs that expose BC's data to the developers of those applications.

We took this feedback and enhanced the engine with which we're exposing REST APIs to both allow us to create more APIs faster than before and in the same time expose more functionalities in those APIs (like partial updates, PARSE-like language for filtering, sorting, paginating REST queries, and more). Also, we will update the existing Javascript SDK to include these new APIs and features.

We will next be working to create new APIs that the OpenAdmin developer community was asking:

  • Page Properties Update
  • Secure Zones List
  • Template Properties Update
  • Assign web app items to secure zones
  • CRM APIs (customers, cases, orders, events, mailing lists, etc)
  • eCommerce APIs (products, catalogs, discount codes, vouchers, etc)

With these new features, you will be able to exercise your creativity and deliver even more great solutions for your customers.

Looking forward to get these new features in your hands as soon as possible,

The Adobe Business Catalyst Team.

BC.NEXT - New Admin Editor

Cristinel Anastasoaie Tuesday, June 17, 2014

Editing content in Business Catalyst admin could sometimes be a daunting task for partners and customers alike. The standard editor found in pages and in any other interface from the Manage tab has many limitations, such as the lack of contextual information (styles, fonts, etc.), improper automatic code formatting and stripping, or an unusable code view. The In-Context Editor available in the Edit tab is more user friendly, but it only allows edits of static content.

With the upcoming release and continuing through the year, we plan to change all that. Both editors have reached their limitations and we plan to replace and/or greatly improve them, as webpage editing is the most used feature in Business Catalyst.

A new content editor for admin

With the Public beta version, we’ll start by replacing the standard admin editor, found in all interfaces from the Manage tab, with a more modern one (redactor.js) which we already use in the In-Context Editing and Email Campaign editors. Moreover, we’re changing the editor available when using code view, with the same one used in File Manager. This provides a much better editing experience when editing code. 

Overall, the new editor will come with:

  • Modern visual editor that presents the option for contextual formatting
  • New file manager and link manager interfaces
  • New code view editor with code formatting and highlighting
  • Future capabilities like paste image with transparent upload (to be enabled later

At first, the new editor will be disabled and Partners will be able to switch sites to the new editor from the Beta features section in the Site Settings admin menu. Take the time to try it out and provide us feedback to improve the integration and add any critical functionality that is missing.

Visual InContext Editor with dynamic data support

Since version one, In-Context Editing aimed to make web pages easy to update with little or no training by providing a tool similar to what business owners are used to when creating offline documents. Furthermore, it has always been meant to help designers and developers protect the design integrity by restricting the areas a business owner can edit. 

The current version of the editor partially achieves that, but it is limited in terms of which sections of a page can be edited, while also requiring developers to manually set-up editable regions. Thus, ICE can be an effective selling tool, but less of a site management tool.

With the new rendering engine in place, we now have the foundation that will allow us to enable stunning editing experiences for partners and customers alike. So yes, we’re going to update ICE once again, to solve the two major limitations it has: inability to edit dynamic content and the sometimes tedious process to set-up editable regions.

Although it will be only partially be available in the public beta, the new version of the editor will allow you to:

  1. Automatically detect editable content in the page and highlight it - including site wide templates, page content, content holders and module layouts.
  2. Enable in-context editing of dynamic data (like a product name, or product image)
  3. Link to the admin user interfaces when editing is not possible in context (e.g., product pricing, which is too complex to edit in-line)
  4. Seamlessly work with the Liquid language for dynamic data editing
  5. Preserve backwards compatibility with old ICE mark-up
  6. Automatically detect module generated content and allow users to edit just the content without damaging the module definition

We hope these updates will make editing content on BC a stunning experience.

The Adobe Business Catalyst Team

Scheduled system maintenance on EU datacenter - June 16th 2014

Cristinel Anastasoaie Friday, June 13, 2014

To ensure the highest levels of performance and reliability, we've scheduled a database server upgrade on our EU AWS data center. To minimize the customer impact, the upgrade is scheduled at the most convenient hours for the region and will take up to 4 hours to complete. During the maintenance procedure, creating and updating content, Partner registration, trial site creation, publish from Muse, sFTP, APIs and some site admin sections will not be available. Additionally, all sites on the EU data center will experience a 10 minutes downtime sometimes during the maintenance window. Except for the scheduled 10 minutes downtime, the website front-ends will not be impacted by the maintenance.

Maintenance schedule:

  • Start date and time: Monday, June 16th, 3:00 AM UTC (check data center times)
  • Duration: We are targeting a 4 hours maintenance window

Customer impact:

  • Partner registration, Trial site creation Muse Publish, APIs, FTP and some admin section will not be available through the entire maintenance window
  • All websites and services on EU data center will experience a 10 minutes downtime sometimes within the maintenance window
  • Creating or updating content on the impacted sites will be unavailable during the maintenance procedure

For up to date information about system status, check the Business Catalyst System Status page. We apologize for any inconvenience caused by these service interruptions. Please make sure that your customers and team members are made aware of these important updates.

Thank you for your understanding and support,

The Adobe Business Catalyst Team

Announcing the launch of the new webmail platform

Cristinel Anastasoaie Thursday, June 12, 2014

On June 26, 2014  our webmail provider will update the mail platform to all email clients. The current webmail platform will be retired on the same day.

The new webmail platform has a brand new look and feel and it is is packed with new features. Here are the top 10 new features that will be available with the new platform:

  1. A brand new look and feel: the new webmail is modern looking, faster and a lot more intuitive.
  2. Mobile sync for calendar and address book: The most awaited feature. Webmail now supports mobile sync (not currently available. This feature will be available by June 26th).
  3. Conversation threads: conversations can now be grouped together. Users have the option to display conversations as lists or threads.
  4. Cloud storage for files: A simple way to manage files. Share, password protect and set an expiry date for the links you share (not currently available. This feature will be available by June 26th).
  5. More robust RSS reader: the RSS reader is easier to use and manage.
  6. A better HTML editor: the new editor offers users more options to format messages.
  7. Identity management with HTML supported signatures: manage multiple profiles and create HTML signatures for each profile.
  8. Extensive address book fields: more fields for you to keep your contacts organized.
  9. Extensive domain and user management capabilities: you can do a lot more when using the admin features.
  10. Ability to reorder columns: You can move columns around to customize your inbox.

For a sneak peek into the new interface, you can watch a quick demo video:

To have a closer look at the changes, a preview mode is already available to all email clients. You just need to select the Preview mode in the webmail login screen. Please make sure that your customers and team members are made aware of these important updates.

Thank you for your support,

The Adobe Business Catalyst Team

BC Webinar: BC Next Generation

Diana Herac Wednesday, June 11, 2014

June 2014 will mark the beginning of the new era for Business Catalyst and we are eager to present a sneak peak of what that means. Join Lucian Cozma and Cristinel Anastasoaie from Business Catalyst on Wednesday, June 25th, for a webinar that will showcase some of the major changes that will be available this summer and our plans for the year.

Don't forget to register here:

Don't miss this one!

If you have any questions or suggestions please do not hesitate to send them over to BCPartner-Team@adobe.com.

The Adobe Business Catalyst Team

BC Sandpile June Meetings

Diana Herac Friday, June 06, 2014

Weekly Day/Time:

  • San Francisco: Tuesdays, 5pm (all times adjusted in relation to this time)
  • New York City: Tuesdays, 8pm
  • London: Wednesdays, 1am
  • Sydney: Wednesdays, 10am

Open Discussion
10th June (11th in AUS) 2014
If you were attending our weekly events when BC Sandpile first started you will remember that we were all about open and honest conversations focused on Business Catalyst. It was simple, valuable, and fun. We are going back to our roots with an open meeting. No presentations. No pitches. Just simple Partner-to-Partner discussions. Bring your questions. Bring your concerns. Bring your sense of humor.
Details: http://thri.se/1hfpYv3

Building and Marketing Accommodation Websites
17th June (18th in AUS) 2014
In this first in a series of focused industry discussions, we will be looking at best practices for building and then marketing Accommodation websites with Business Catalyst.
Details: http://thri.se/1hfqJEy

Empower Users with the Updated In-Context Editor
24th June (25th in AUS) 2014
Gary Swanepoel of IT Business is going to show examples of leveraging ICE to really empower users to make major changes without web apps and get better control of using back-end modules when walking through the website by passing the internals of the Admin Console.
Details: http://thri.se/1hfpbuc

Full schedule: http://www.bcsandpile.com/_blog/Meeting_Chalkboard/
Sandpile Recordings: http://www.bcsandpile.com/business-catalyst/resources.htm

Scheduled system maintenance - June 1st 2014

Cristinel Anastasoaie Friday, May 30, 2014

To ensure the highest levels of performance we will be performing updates to servers located in our Dublin, Virginia and Sidney AWS data centers. To minimize the customer impact, the updates are scheduled at the most convenient hours for the region and will take up to one hour to complete. During the maintenance procedure, Partner registration, Trial Site creation, publish from Muse, sFTP,  APIs and some site admin sections will experience service interruptions. The website front-ends will not be impacted by the maintenance.

Maintenance schedule:

  • Start date and time: June 1st, 10:00 AM UTC (check datacenter times)
  • Duration: We are targeting a one hour maintenance window

Customer impact:

  • Partner registration, Trial site creation Muse Publish, APIs, FTP and some admin section will experience service interruptions

For up to date information about system status, check the Business Catalyst System Status page. We apologize for any inconvenience caused by these service interruptions. Please make sure that your customers and team members are made aware of these important updates.

Thank you for your understanding and support,

The Adobe Business Catalyst Team

Episode 37 of the BC Podcast - Pricing Business Catalyst

Brent Weaver Tuesday, May 27, 2014

Pricing is one of the most popular questions I get about Business Catalyst. This conversation begins with basic questions around…

  • What should I charge per hour?
  • How should I structure billing?
  • Can I markup the wholesale cost of BC?
  • Is there services that I can bundle in to increase my monthly profit?
  • Are there different ways I can sell time to my clients?

I thought the best way to answer these questions was to rope in three long time BC partners: Mike Sallander of Chicago Digital, Devon Reehl and Jonathan Hinshaw of Ebway Creative.

Don’t forget that this month, BackupBC is the Official App of the Month. To celebrate, they are selling the app for 50% off (limited time only).

Tune in for Episode 37 of the Business Catalyst podcast! In this episode we talk about pricing, margins, profit, and how to make more money with BC.

Listen to this month’s podcast:

Simply click the play button below to stream the podcast via your browser.

player

Alternatively, you can download the podcast in .mp3 format for offline listening.

In this episode:

  • Devon Reehl introduces the priority fee
  • Mike Sallander gives us insight into the most important box in a proposal
  • Jon Hinshaw tells how he sells hours more effectively
  • And much more

Join the Podcast!

Do you have something you want to announce to the BC community? I want to hear about it (brent@bcgurus.com).

Until next time,

Brent Weaver

May 21st webinar recording - Building a Video Gallery BC App

Diana Herac Monday, May 26, 2014

Thanks to those of you who attended our BC webinar - Building a Video Gallery BC App with Scott B Reynolds from Thrise.
Scott shared a few key techniques learned while developing BC apps, the steps you should consider when building a BC app, using BC APIs and much more.

If you were unable to join us live, you can access the last 3 recordings below:

If you have any questions or suggestions please do not hesitate to send them over to BCPartner-Team@adobe.com. We will be happy to answer all your inquiries.

Thank you and hope to see you in the next webinar.

The Adobe Business Catalyst Team

Adobe ID Service Outage impact on Business Catalyst

Cristinel Anastasoaie Wednesday, May 21, 2014

Last week, Business Catalyst partners have not been able to login to their Partner Portals or site admins for approximately 24 hours. The problem was caused by a failure in the global Adobe ID infrastructure layer, as described on the Adobe Care blog. Since this has affected all of Adobe and all of the Creative Cloud, Adobe as a company will revisit and improve the global processes to make sure such events can be prevented in the future.

The incident came only a few hours after Business Catalyst has deployed an update on the service, that transitioned the partner login interfaces on businesscatalyst.com and Partner Portals to the unified Adobe ID login user interface and enforced the Adobe ID login for partners. While the two events seemed related, they aren’t. The BC deployment was successfully completed, and Partners were able to login in the hours between the BC update and the Adobe ID system outage. Additionally, the enforcement of Adobe ID login, which was the last milestone in a two years long transition of Partner accounts to Adobe IDs had limited impact on the Partner options to login since, at the time of the release, less than 0.1% of Partner accounts were not yet migrated to Adobe ID.

We are aware that we haven’t met your expectations for providing an alternative way to access sites during the above mentioned incident, and we apologize for that. Although the likelihood of an Adobe ID failure to occur in the future is slim, we are reviewing our processes and we are defining back-up plans that will allow Partners to access their customers sites.

As an overarching effort, integrating all Adobe services with Adobe ID should be almost exclusively beneficial, since users don't need to manage multiple accounts for the same company. As such, investing time and resources into migrating Partners to a different login system when there are so many other core platform improvements needed might not be the best strategy for us. Developing a contingency plan and system updates that will allows us to temporarily use the same login system as site owners in the event of the another Adobe ID failure is, and we will definitely follow that path.

The Adobe Business Catalyst Team