Salesforce B2C Commerce程序员 – 探索B2C商务业务对象

学习目标

完成本单元后,您将能够:

  • 说明业务对象如何定义Salesforce B2C Commerce店面数据结构。
  • 列出为什么要自定义系统对象的两个原因。
  • 列出使用自定义对象的两个原因。
  • 列出两个业务对象最佳实践。

介绍

B2C Commerce是一个面向对象的系统,因此了解一些从对象开始的基本原理非常重要。对象是包含数据的自包含实体。组织单个对象,以便数据描述该对象。例如,一个Dress对象看起来像这样:

连衣裙

  • 尺寸
  • 颜色
  • 场合
  • 袖子
  • 领口
  • 长度

礼服对象只包含描述礼服的数据。它不包含描述其他内容的数据,例如手镯。

数据(例如本示例中的Color)存储在也称为attribute的字段中。属性用于描述对象的一个​​方面。在这种情况下,如果您告诉朋友您要描述一些东西,然后说“尺寸,颜色,面料,场合,袖子,领口和长度”,他们可能会说您在谈论一件衣服(或者也许衬衫)。着装是对象,而颜色是对象的属性。

业务对象定义B2C Commerce店面数据的结构。业务对象可以是系统随附的系统对象,也可以是可用于向应用程序添加其他功能的自定义对象。自定义对象需要自定义代码。

系统对象

B2C Commerce提供了63种系统对象类型,从 Appeasement到TrackingRef。在您的Business Manager版本中,有些标记为只读。您不能通过创建新的系统对象来自定义内部B2C Commerce系统,但是可以创建新的自定义系统对象来满足您的业务需求。这是一个重要的区别!系统对象类型定义了系统对象中包含的属性。他们的行为就像一张地图。

Commerce Cloud店面参考体系结构(SFRA)使用系统对象来描述其站点的一部分。这使其成为店面应用程序开发的起点很有用,因为它是为与系统对象进行交互而开发的,从而消除了对自定义代码的需求。

为确保您的实现完全使用可用的系统对象,您应该熟悉它们。在B2C Commerce的在线工具Business Manager中,该工具用于配置,管理和开发店面应用程序,您可以:

  • 查看系统对象
  • 查看每个系统对象的属性
  • 编辑属性,包括创建新的属性值
  • 查看属性组
  • 创建新的属性组

B2C Commerce丰富的系统对象库已经满足了店面应用程序中所需的大多数数据,例如产品详细信息,内容,订单和促销。使用这些对象可以极大地加快实现速度,因为您可以利用为这些对象开发的代码。

这些是SFRA中使用的一些系统对象。

对象ID目的属性

Basket
代表购物车。 业务类型
channelType
货币代码
客户电子邮件
顾客姓名
客户编号
最后修改

Campaign
表示一个广告系列,它是可以针对特定框架部署的一组体验,例如广告位配置,促销或排序规则。 创立日期
描述
结束日期
最后修改
开始日期

Category
表示产品目录中的类别,并包含包含类别数据的属性。该对象通常用于(和自定义)控制类别在店面中的行为。 AlternativeURL
catBannerID
customCSSFile
描述
显示名称
enableCompare
headerMenuBanner

Content
表示内容资产,例如文本,图像,视频或音频。
身体
配置
创立日期
customCSSFile
卡塔
描述
最后修改

与上面的dress对象一样,Content对象包含多个属性,例如year,body和config。

扩展系统对象

您可以扩展系统对象,以从购物者那里收集更多信息,定制店面站点以显示其他信息,并根据后台需求帮助您更有效地处理订单。

例如,您可以 向购物篮对象添加addToEmailList属性,该属性将在购物车页面上显示“请将我添加到您的电子邮件列表”复选框。您还需要添加代码以显示和处理此数据。

组对象以收集更多数据

在Business Manager中,您可以管理店面数据,例如产品和内容详细信息。尽管系统对象带有一组标准的属性,但是如果要添加更多数据,则始终可以添加属性。例如,您可以通过添加属性,使购物者能够在实体商店中拾取商品。我们已经通过创建一个名为InStorePickup的属性组来添加了此属性,因为它是一个很棒的功能。

在店面中,此功能会在结帐时显示。但是在Business Manager中,它显示在您管理产品数据的“产品详细信息”页面上。您可以将特定产品设置为可在店内取货。

当然,您还必须在店面中编写处理此问题的基础应用程序代码,但我们只是在谈论业务对象。

要在Business Manager中显示系统属性,该属性必须属于一个组。否则,它将不会出现在业务管理器页面上。那和店面里的不一样。

让我们仔细看看。

产品系统对象包括称为属性组 InStorePickup包含这些属性。

属性描述类型
availableForInStorePickup该产品可在店内提货。布尔值(是或否)
storeTaxClass存放税种

该组显示在“业务详细信息”页面上的Business Manager中(您在其中创建新产品),因此您可以指定是否可用于店内取货。

选择是布尔值yesno

在店面的购物车页面上,显示一个字段,询问购物者是否要在商店取一件或多件商品。

属性组

系统对象可以全局存储,这使它们可用于整个组织和所有站点,或本地(每个站点)可用。系统对象本身始终可用于整个组织。

自定义对象

您可以使用自定义对象来扩展B2C Commerce模型以适合您的业务需求。在业务管理器中,您首先创建自定义对象类型并定义它们包含的属性。然后,您将基于这些属性创建自定义对象。

可以在为组织定义的所有店面站点中使用自定义对象类型。但是,在创建自定义对象时,可以选择它是特定于站点还是整个组织的。我们在此模块中讨论了业务管理器部门中的组织。

自定义对象类型

您可以为店面或业务逻辑扩展B2C Commerce模型所需的其他业务对象创建和管理自定义对象类型。例如,您创建一个自定义对象类型Sample,然后为其赋予属性SKU和Date。在业务管理器的“管理自定义对象”模块中,通过输入SKU和日期数据对来创建数据,如下所示:

AS-123342018年6月3日
AS-4456724-03-2018
TT-6544315-02-2018

您现在可以管理此新数据。

使自定义属性可编辑或不可编辑

您可以使用从后端记录系统直接输入到B2C Commerce中的自定义属性。为此,您可以在新属性中设置外部管理的标志。

在业务管理器中的自定义对象的属性中选择“外部管理”

这向业务管理器用户指示他们不应直接编辑这些属性。此类属性被认为是外部管理的,因为属性值是在外部系统中设置的。如果不可编辑属性的提要中包含错误的值,则可以通过取消选择“外部管理”选项并手动对其进行修复来在Business Manager中修复该值。固定该值后,请重新选择“外部管理”选项。

最佳实践

尽可能使用系统对象而不是自定义对象,以便更轻松地升级到最新的参考体系结构并消除不必要的自定义。

尽可能使用系统属性而不是自定义属性。

Salesforce B2C Commerce程序员 – 探索Commerce Cloud店面参考架构

学习目标

完成本单元后,您将能够:

  • 解释使用Commerce Cloud店面参考体系结构(SFRA)的好处。
  • 说明为什么参考架构为站点设计提供了蓝图。
  • 列出两个SFRA技术和UX组件。
  • 列出Mobile First的两个好处。

介绍

有什么比构建可以作为代码库查看和使用的网站更好的方法来显示在线店面网站的外观?这正是我们对SFRA所做的。但是,此体系结构不仅仅是代码库:它提供了站点设计的蓝图。

使用参考体系结构就是快速创新!利用行业最佳实践开发的完整核心站点功能库,可以更快地构建站点。数百种现成的功能包括购物车,结帐,主页,产品详细信息页面等。此外,快速采用Apple Pay等技术,可为购物者提供绝佳的体验。

SFRA定制模型使您可以轻松构建,维护和更新店面。它位于平台API层之外,并使用常规的模型-视图-控制器(MVC)架构。我们在Salesforce B2C Commerce Development Environment部门讨论了API和MVC架构。

开发人员可以自由定制和扩展SFRA代码库。品牌有权设计像素完美的网站,并精心打造独特的网络体验。开发人员引入新代码,与第三方提供商集成,并迭代其网站设计。结果,商家完全拥有自己的店面和基础代码库。

使用移动设备的人

移动优先设计

从历史上看,大多数Web设计人员首先关注台式机,其次是移动设备。即使采用响应式设计,重点也始于台式机,以及用于移动设备的其他代码。

响应式设计可根据屏幕尺寸调整屏幕上的内容。

移动不是趋势。是现在 越来越多的人使用移动设备来做各种事情,尤其是在网上购物。手里拿着一台电脑是一件强大的事情。

移动优先设计用于最小的屏幕,然后逐步提高。这是创建响应式或自适应设计的最佳策略之一。

自适应设计会检测设备和其他功能,然后根据一组预定义的视口大小和其他特征提供适当的功能和布局。

让我们来谈谈建筑

一个参考架构可作为在线店面设计的出发点,并在网站设计和店面架构结合最佳实践。它为您提供了构建和自定义电子商务店面的蓝图。

Commerce Cloud店面参考架构登录页面

Commerce Cloud店面参考架构(SFRA)使用JavaScript 控制器。在B2C Commerce中,控制器是处理店面请求的服务器端脚本。他们管理应用程序中的控制流,并创建模型和视图的实例以处理每个店面请求并生成适当的响应。例如,购物者单击类别菜单项或输入搜索词,这将触发呈现页面的控制器。

注意

注意

控制器使用JavaScript和B2C Commerce脚本编写。它们必须符合CommonJS模块标准。

SFRA使将B2C Commerce交付的代码,商户自定义和第三方集成代码分割成离散的盒式磁带变得容易,从而更容易维护和更新每个盒式磁带的内容。

在B2C Commerce中,盒带中包含代码或数据。这意味着开发人员可以构建新组件,例如,愿望清单,Apple Pay和付款集成等功能,并将它们独立地插入店面。这种体系结构允许轻量级和更简洁的代码库用于连续,迭代和演进的站点设计。核心代码不可编辑,而开发人员可以在其之上自由开发功能。

UI开发最佳实践

SFRA使用流行的Bootstrap前端组件UI库。Bootstrap是一个用于使用HTML,CSS和JS开发的开源工具包。它使您可以快速构建想法原型或使用其Sass变量和mixins,响应式网格系统,大量的预构建组件以及基于jQuery构建的强大插件来构建整个应用程序。

其他须知

如果商家开始新的站点实施或重新设计现有的店面,则可以利用SFRA。商家通常每3至5年重新设计其店面,并且由于网站的重新设计可能会占用大量资源,因此商家应根据预算,范围和业务影响来权衡时间表。为了使您走上正确的道路,SFRA附带了带注释的线框。您还可以利用用户组。

B2C商业零售业务团队可以提供店面设计咨询,以帮助商家优化其现有店面或转移到新的店面。

LINK合作伙伴

B2C商务LINK技术合作伙伴计划提供了具有丰富,强大功能的世界级生态系统,供商家用来提供一流的电子商务解决方案。LINK合作伙伴致力于将其技术与B2C Commerce集成。集成后,这些技术将通过LINK Marketplace提供给全球B2C Commerce客户。

SFRA中提供了最常用的LINK墨盒-Paypal,Cyber​​Source,Bazaarvoice(费率和评论),Avalara(税),Adyen,Experian QAS(AVS)。在评估新的站点设计或重新设计时,商人和SI实施者应考虑LINK生态系统以扩展商业体验。

Salesforce B2C Commerce程序员 – 探索Commerce Cloud店面参考架构

学习目标

完成本单元后,您将能够:

  • 解释使用Commerce Cloud店面参考体系结构(SFRA)的好处。
  • 说明为什么参考架构为站点设计提供了蓝图。
  • 列出两个SFRA技术和UX组件。
  • 列出Mobile First的两个好处。

介绍

有什么比构建可以作为代码库查看和使用的网站更好的方法来显示在线店面网站的外观?这正是我们对SFRA所做的。但是,此体系结构不仅仅是代码库:它提供了站点设计的蓝图。

使用参考体系结构就是快速创新!利用行业最佳实践开发的完整核心站点功能库,可以更快地构建站点。数百种现成的功能包括购物车,结帐,主页,产品详细信息页面等。此外,快速采用Apple Pay等技术,可为购物者提供绝佳的体验。

SFRA定制模型使您可以轻松构建,维护和更新店面。它位于平台API层之外,并使用常规的模型-视图-控制器(MVC)架构。我们在Salesforce B2C Commerce Development Environment部门讨论了API和MVC架构。

开发人员可以自由定制和扩展SFRA代码库。品牌有权设计像素完美的网站,并精心打造独特的网络体验。开发人员引入新代码,与第三方提供商集成,并迭代其网站设计。结果,商家完全拥有自己的店面和基础代码库。

使用移动设备的人

移动优先设计

从历史上看,大多数Web设计人员首先关注台式机,其次是移动设备。即使采用响应式设计,重点也始于台式机,以及用于移动设备的其他代码。

响应式设计可根据屏幕尺寸调整屏幕上的内容。

移动不是趋势。是现在 越来越多的人使用移动设备来做各种事情,尤其是在网上购物。手里拿着一台电脑是一件强大的事情。

移动优先设计用于最小的屏幕,然后逐步提高。这是创建响应式或自适应设计的最佳策略之一。

自适应设计会检测设备和其他功能,然后根据一组预定义的视口大小和其他特征提供适当的功能和布局。

让我们来谈谈建筑

一个参考架构可作为在线店面设计的出发点,并在网站设计和店面架构结合最佳实践。它为您提供了构建和自定义电子商务店面的蓝图。

Commerce Cloud店面参考架构登录页面

Commerce Cloud店面参考架构(SFRA)使用JavaScript 控制器。在B2C Commerce中,控制器是处理店面请求的服务器端脚本。他们管理应用程序中的控制流,并创建模型和视图的实例以处理每个店面请求并生成适当的响应。例如,购物者单击类别菜单项或输入搜索词,这将触发呈现页面的控制器。

注意

注意

控制器使用JavaScript和B2C Commerce脚本编写。它们必须符合CommonJS模块标准。

SFRA使将B2C Commerce交付的代码,商户自定义和第三方集成代码分割成离散的盒式磁带变得容易,从而更容易维护和更新每个盒式磁带的内容。

在B2C Commerce中,盒带中包含代码或数据。这意味着开发人员可以构建新组件,例如,愿望清单,Apple Pay和付款集成等功能,并将它们独立地插入店面。这种体系结构允许轻量级和更简洁的代码库用于连续,迭代和演进的站点设计。核心代码不可编辑,而开发人员可以在其之上自由开发功能。

UI开发最佳实践

SFRA使用流行的Bootstrap前端组件UI库。Bootstrap是一个用于使用HTML,CSS和JS开发的开源工具包。它使您可以快速构建想法原型或使用其Sass变量和mixins,响应式网格系统,大量的预构建组件以及基于jQuery构建的强大插件来构建整个应用程序。

其他须知

如果商家开始新的站点实施或重新设计现有的店面,则可以利用SFRA。商家通常每3至5年重新设计其店面,并且由于网站的重新设计可能会占用大量资源,因此商家应根据预算,范围和业务影响来权衡时间表。为了使您走上正确的道路,SFRA附带了带注释的线框。您还可以利用用户组。

B2C商业零售业务团队可以提供店面设计咨询,以帮助商家优化其现有店面或转移到新的店面。

LINK合作伙伴

B2C商务LINK技术合作伙伴计划提供了具有丰富,强大功能的世界级生态系统,供商家用来提供一流的电子商务解决方案。LINK合作伙伴致力于将其技术与B2C Commerce集成。集成后,这些技术将通过LINK Marketplace提供给全球B2C Commerce客户。

SFRA中提供了最常用的LINK墨盒-Paypal,Cyber​​Source,Bazaarvoice(费率和评论),Avalara(税),Adyen,Experian QAS(AVS)。在评估新的站点设计或重新设计时,商人和SI实施者应考虑LINK生态系统以扩展商业体验。

Salesforce B2C Commerce程序员 – 探索B2C商业发展环境

学习目标

完成本单元后,您将能够:

  • 列出用于Salesforce B2C Commerce店面的客户部分的两个工具。
  • 列出三个关键的B2C Commerce软件开发工具。
  • 描述MVC体系结构的元素。
  • 列出可以使用脚本和控制器执行的三个任务。

介绍

无论您是新手还是经验丰富的B2C Commerce店面应用程序开发人员,您都了解情况。您首先查看工具。

扳手-工具包的一部分

三个关键的B2C Commerce软件开发工具是Business Manager,UX Studio和Commerce Cloud店面参考体系结构(SFRA)。其他工具包括:

  • 范本
  • 表格定义
  • 资源包
  • 剧本
  • 控制器

我们将在一分钟内深入探讨更多细节,但首先让我们讨论一下架构。

MVC架构

我们使用模型-视图-控制器(MVC)架构,该架构将应用程序分为三个部分。

  • 该模型是应用程序基础的业务逻辑,数据和规则。传统上,模型存储用于填充视图的数据。在B2C Commerce中,数据由API表示,API提供帮助程序类而不是存储数据。
  • 该视图是购物者在店面中看到的。它是登录页面,产品详细信息页面,QuickView或购物车页面。
  • 控制器从输入字段,按钮单击等中获取购物者输入,并将其转换为模型或视图消耗的动作或数据。
MVC体系结构-模型,视图和控制器

尽管此体系结构提供了元素如何协同工作的示意图,但是代码仍然需要部署机制。那就是墨盒的所在。

B2C商务墨盒

盒式磁带是B2C Commerce打包和部署程序代码和数据的方式。它提供通用或特定于应用程序的功能。例如,一个商人出售多个品牌,每个品牌都有自己的网站。因为他们销售服装,所以所有站点都有类似的流程。但是这些站点的外观和品牌因品牌而异。通用盒带包含标准流程,而专用盒带包含品牌专用代码和数据。

让我们从我们正在建造的东西开始

让我们从上至下开始讨论我们正在构建的内容。

无论客户端是台式机还是移动设备,店面页面都会显示在客户端上。这些是一些标准的店面页面:

  • 类别
  • 产品详情
  • 搜索结果

这些页面使用基于HTML的专用ISML,并且使用CSS进行格式化-行业标准。购物者可以通过单击按钮和标签并在字段中输入文字来在这些页面上进行交互。此处使用的开发工具称为 模板表单定义

使用这些工具,您可以:

  • 验证购物者输入
  • 提示购物者进行确认
  • 显示错误或信息框
  • 条件化HTML

客户端和服务器上都有一个应用程序处理组件。这是从页面获取点击和数据输入并对其进行处理的代码。此处使用的开发工具是脚本控制器

使用这些工具,您可以:

  • 向业务流程添加计算和逻辑
  • 致电网络服务
  • 集成后端系统
  • 跨用户共享信息

现在让我们谈谈处理部分。

编码店面页面

店面页面是视觉效果-漂亮的产品,华丽的广告和精心制作的折扣。对于这些,您需要模板,表单定义和资源包(仅基于客户端)。

范本

模板定义了如何将数据和页面信息转换为基于HTML的网页。这些页面使用CSS进行浏览器呈现,使用CSS进行页面布局和样式设计,并使用B2C Commerce表单定义进行数据显示和验证。模板以Internet商店标记语言(ISML)进行编码,可动态生成HTML。它提供了许多预定义的标签(例如,<isif> / <isloop>),并使用了脚本块和表达式。

使用ISML,您可以使用一个模板来显示数千种产品。例如,搜索结果页面以模板定义的图块的行和列显示产品列表。

表格定义

表单定义使您可以控制如何验证客户输入的值并在浏览器上呈现它们。例如,对于表格,您可以指定邮政编码必须以精确的整数序列输入;名称和地址信息必须以字符串形式输入。与ISML一样,B2C Commerce表单定义使用独特的语言并且是专有的。

地址表格示例

表单定义存储在墨盒的Forms文件夹中(cartridge / forms / default)。表单架构文件标识允许的元素和属性。表单定义与店面应用程序的显示和处理部分都相互作用。

资源包

您要避免在店面代码中对购物者可见的文本字符串进行硬编码。通过将标题,标签,消息,按钮和字段名称存储在资源包(也称为.properties文件)中来执行此操作。将此文本与显示布局分开可以轻松地出于不同目的更改文本,尤其是在支持不同区域设置时。

处理店面申请

应用程序的处理部分显示,发送,计算或检索从到达到结帐的正确详细信息,所有这些操作均由购物者主动进行。为此,应用程序使用脚本和控制器。

要上载代码,必须使用UX Studio或上载实用程序,例如标准协议webdav。上载实用程序可从GitHub中的B2C Commerce社区存储库中获得。您还可以使用标准的JavaScript工具,包括短绒和静态代码分析工具。

剧本

您可以在UX Studio中本地开发应用程序,但可以在服务器上运行它。JavaScript解释器在应用程序服务器上运行,以处理每个JavaScript类或方法。对于JavaScript解释器而言,脚本调用的源无关紧要。这使您可以灵活选择工具。

B2C Commerce与B2C Commerce脚本API和Open Commerce API(OCAPI)具有一些严肃的应用程序接口(API)。OCAPI是一种RESTful API,可接收HTTP请求并返回响应。请求构造和响应消耗由您决定。

使用B2C Commerce API构建店面用户体验的所有部分。使用OCAPI集成第三方系统,并统一超越Commerce Cloud托管体验的客户旅程。

B2C Commerce Script API支持行业标准:

  • Rhino JavaScript(包括ECMAScript 5,Mozilla扩展至JavaScript 1.8和E4X)
  • JavaScript 2.0 / ECMA第4版提案和ActionScript提供的可选类型规范支持
  • 全局parseInt(String)函数的ECMAScript 5兼容性修补程序

控制器

控制器是处理店面请求的服务器端脚本。控制器协调店面的后端处理,并创建模型和视图的实例,以处理每个店面请求并生成适当的响应。例如,单击类别菜单项或输入搜索词会触发呈现页面的控制器。

控制器使用JavaScript和B2C Commerce脚本编写。控制器的文件扩展名可以是.ds或.js。控制器必须位于墨盒顶部的controllers文件夹中。

您可以将任何IDE与JavaScript编辑器一起使用来开发控制器。

入门

使用此环境开始时,有很多步骤,但可以归结为以下步骤:

  1. 在Salesforce B2C Commerce XChange客户门户中注册,以访问Salesforce B2C Commerce支持和开发人员论坛。
  2. 从B2C Commerce支持(或LINK合作伙伴计划经理,如果您是LINK合作伙伴开发人员)获得一个沙箱。
  3. 下载并安装UX Studio(Eclipse IDE插件),您可以在其中:
    1. 创建一个工作区。
    2. 连接到您的沙盒服务器。
    3. 创建一个新的店面项目。
  4. 打开业务管理器,在其中:
    1. 注册您的墨盒。
    2. 将Storefront Reference Architecture数据导入沙箱,以便您可以将其用作起点或代码示例。
    3. 确保禁用页面缓存,以便您可以立即看到所做的更改。
    4. 生成搜索索引,以便搜索在您的应用程序中正常运行。
    5. 查看店面。

LINK合作伙伴

LINK市场是开发人员可以使用第三方软件扩展其站点的地方。

第三方软件提供商加入了Salesforce B2C Commerce LINK技术合作伙伴计划,以针对最新的Commerce Cloud技术验证其墨盒。使用LINK墨盒可实施最具突破性和创新性的电子商务技术。

这些弹药筒准备就绪后,可大大减少实施时间。解决方案很多,其中许多类别如下:

  • 付款提供商
  • 评分和评论
  • 税务地址验证
  • 社会个性化

Salesforce B2C Commerce程序员 – Commerce Cloud业务管理器入门

学习目标

完成本单元后,您将能够:

  • 列出跟单员在业务管理器中执行的三个任务。
  • 列出开发人员在业务管理器中执行的三个任务。
  • 列出在“商户工具”标签中配置的四个设置。
  • 在“管理”选项卡上列出可以执行的四个任务。
  • 描述本地化设置的两个功能。

介绍业务经理

业务管理器是用于配置和管理B2C Commerce店面的Salesforce B2C Commerce联机工具。此重要工具是B2C Commerce商品销售,管理和站点开发功能的命令中心。

业务经理登陆页面

要使用业务管理器,您必须有权访问B2C Commerce实例。在Trailhead Playground中无法使用B2C Commerce。如果您无权访问B2C Commerce实例,请询问您的经理是否有可以使用的实例。

业务管理器用户界面入门

打开业务管理器时,必须首先选择一个站点。您可以拥有几个站点,也可以有多个站点,这取决于公司的规模以及您支持的站点数量。选择一个站点后,只要您具有访问权限,就可以访问为其配置的数据,代码和权限,我们将在本单元后面讨论。

在B2C Commerce中,网站及其相关代码组合在一起以创建店面。店面是用户的在线体验。一个站点可以具有多个店面。(当提到商人的网站时,我们使用术语店面。)

点击店面,在另一个窗口中打开您选择的网站。这里显示的站点是一个示例站点,演示了B2C Commerce的体系结构。

B2C参考架构

通常,您希望看到自己的网站。

工具包图标

您可能还会看到Storefront Toolkit的图标,这是一个可帮助开发人员进行故障排除的开发工具。该工具箱自动链接到您刚来自的业务管理器站点。多么方便!

角色

具有三种工作角色的人员最有可能使用Business Manager。我们称这些工作角色为角色。

三个商人合作
  • 售货员配置站点数据,例如产品,图像,活动,促销和搜索设置。
  • 管理员配置B2C Commerce网站设置,导入和导出网站数据,并推出代码和数据更改。
  • 开发人员使用业务管理器直接访问店面应用程序以对问题进行调试和故障排除,并配置特定于开发的设置。
注意

注意

在B2C Commerce中,术语“ 客户”可以具有多个含义。如果我们将Salesforce客户称为商人,而将商人的客户称为购物者,则会有所帮助。

对于大型商人,每个角色都可以具有由多个人拥有的独特功能。大型商人通常与拥有开发人员团队的合作伙伴合作。中小型商人经常模糊角色,因此多个工作职责由几个人处理。

角色在业务经理中工作的地方

业务管理器中的两个选项卡(商人工具和管理)包含所有三个角色使用的功能。让我们探索一下第一角色,即商人。

商户工具标签

商家工具区域是供销售人员管理特定于站点的配置设置以及店面数据(例如产品,目录,内容,搜索,广告系列和促销)的位置。

业务经理商家工具模块

他们还在此处配置功能,以帮助将购物者带到网站;即搜索网址和robots.txt文件。网站管理员会创建此文件,以指示网络机器人(通常是搜索引擎机器人)如何在其网站上抓取网页。

商家也可以查看客户数据,尽管通常将其存储在外部数据库中。订单详细信息也是如此,这些详细信息可以直接来自店面的购物者,也可以通过诸如B2C Commerce和客户服务中心的订单管理之类的附加系统获得。这些产品是Commerce Cloud产品套件的一部分。

跨功能工具

Merchant Tools中的某些功能跨越了角色边界。这包括站点分析和内容位置。

Business Manager Analytics反映了在生产店面捕获的站点数据,这些站点数据是由B2C Commerce汇总并在Business Manager中报告的。购物车到订单之类的数据(购物车在总购物车数量中所占的百分比)对商人非常有用。但是,其他数据,例如管道性能摘要数据和对象流失趋势,对开发人员来说更有用。

一个内容时段可以嵌入在你的店面的任何部位,以显示产品,类别,内容资产,或静态HTML基于时间表。您可以根据客户组个性化其中包含的内容。内容资产可以是Flash图形,产品轮播,产品搜索结果集或营销图形。

夏季风格的内容广告位,其中将女装和女士珠宝显示为可点击的类别

内容槽需要开发人员和销售人员参与。首先,开发人员将代码添加到HTML页面,创建渲染模板,然后将代码上传到服务器。然后,推销员使用业务管理器来创建和安排插槽配置。

管理标签

我们的管理员和开发人员角色使用的第二个选项卡称为“ 管理”。在此选项卡中,管理员:

  • 导入和导出站点数据
  • 在站点实例之间移动数据和代码
  • 管理客户列表和内容库

如果您是管理员,则可以配置适用于组织中所有站点的全局设置。组织包含为商人配置的所有站点。全局设置(也称为 首选项)包括:

  • 语言环境和区域设置以支持多种语言
  • 业务管理器用户的密码限制和登录锁定策略
  • 时区
  • 订单和客户序列号

开发人员角色

最后,我们可以谈谈开发人员角色。这些人使用各种软件开发工具(在本例中为Business Manager)开发店面应用程序。

开发人员通常会打开三个窗口,其中包括:

  • 集成开发环境(IDE) ,在那里他们编写和测试应用程序
  • 业务经理,用于打开店面网站
  • 店面的应用,在那里他们看到的任何代码或数据变化实时结果

让我们专注于业务管理器,开发人员可以在其中执行以下操作:

  • 建立新网站
  • 解决问题。
  • 导航到Commerce Cloud社区门户XChange,他们可以在其中下载最新版本的UX Studio。
  • 配置代码版本
  • 向服务器注册盒带(包含代码或数据)
  • 管理页面缓存设置
  • 将网站设置为在线
  • 管理网站税收
  • 创建自定义错误和维护页面,以引导购物者购买他们想要的东西

业务管理器的操作任务也由开发人员完成。这包括配置凭据和安全性以及跟踪配额状态。配额是使系统正常运行的内部限制。

权限

对业务管理器区域或模块的访问基于作业任务,也称为角色。最重要的角色是管理用户和权限的管理员(admin)。管理员首先定义组织及其所有店面,然后设置默认语言。然后,他们创建其他角色。

商界人士在会议上

定义角色使管理员可以根据角色的权限集授予或限制访问权限。

  • 模块权限 -例如,产品和目录模块。这意味着您可以按角色关闭对数据的写访问。
  • 功能权限 -例如,分配 Manage_Site_Catalog可使一个人可以添加到网站目录中。这意味着您可以按角色限制功能。

这里有些例子:

用户角色访问
吉塔管理员可以不受限制地访问所有内容。
特劳德跟单员可以查看和编辑网站目录,价格和库存。只能查看其站点的数据,而不能查看其他站点的数据。
乔治网络运营无法查看目录,价格或库存数据。可以传输和复制数据。可以导入或导出数据。可以运行工作。
安妮开发者需要完全访问所有站点中的目录,价格和库存数据。还需要传输数据的权限。

本土化

Business Manager在其用户界面以及在其中创建,编辑和显示的基础数据中都支持多种语言,以便在店面中使用。您可以分别配置区域设置以查看应用程序和管理数据。例如,购物者可以使用日语业务经理查看英语产品和内容。

管理员用户在创建或编辑用户个人资料时,选择业务管理器显示语言的首选语言环境。然后,业务管理器用户可以在其用户配置文件中选择其他显示语言。

穿过办公楼大厅的商人

定制业务经理

您可以自定义Business Manager用户界面的以下部分以使其成为您自己的:

  • 菜单项
  • 菜单动作
  • 对话动作
  • 形式

开箱即用的业务管理器菜单使用菜单项操作来访问功能。因此,对这些区域的更改与标准用户界面操作确实集成得很好。换句话说,很容易定制用户界面的某些部分!

面向社区的Rich Publisher Apps -使用Apex触发器扩展可能性

学习目标

完成本单元后,您将能够:

  • 命名使用触发器与Rich Publisher Apps一起使用的用例。
  • 使用触发器构建智能的Rich Publisher App。
  • 描述Rich Publisher Apps API。

使用您的Apex触发技能

您不仅可以设置点击添加Rich Publisher Apps,还可以设置可以智能地预测成员所需信息的应用程序。例如,您的应用可以使用有用的数据或Rich Publisher App选择来回复成员帖子。成员不要单击应用程序图标。相反,Salesforce会在成员的帖子中自动包括相关的Rich Publisher App。

您可以使用针对Chatter对象的Apex触发器的功能来实现此目的。借助Apex触发器,您可以在更改Salesforce记录(如插入,更新或删除)之前或之后设置自定义操作。您可以添加一个插入后 FeedItem触发以收听成员帖子的内容并智能地插入Rich Publisher App。例如,您还可以添加触发器,以响应对其他对象(如评论或答案)的更改来更新应用程序。

让我们看一个 插入后 触发行动。

梦幻之梦

想象一下,您在Dreamforce上,并且正在寻找一些很棒的课程。在社区中输入问题作为您的问题,Looking for some DF sessions. 然后Looking for some cool DF sessions使用#标签添加详细信息#lookingForSessions。

Chatter发布者中的详细问题和主题

您单击“ 询问”,发布者将在发布的帖子中自动包含一个Rich Publisher App(Dreamforce校园地图)。

通过插入后触发器将Google Map附加到帖子

我们在这里做了什么?要获得此结果,您需要创建两件事。

  • Rich Publisher App,用于根据某些上下文将地图附加到提要项
  • 自动插入应用程序的触发器

梦想地图

首先,创建与第2单元中的支持案例应用类似的Rich Publisher App,但是这次使用Google Maps API。

用户无需点击图标,而是通过在Feed中输入特定主题来触发我们的地图应用。但是Rich Publisher App平台需要一个图标,那么您该怎么办?在这种情况下,您可以为该图标添加空白图像和一个空白的合成组件。

或者,您可以创建常规的点击添加应用并添加 插入后 触发附加体验。

这是为…编写基本触发器的一种方法 FeedItem。

trigger dreamforceMapInsertion on FeedItem (after insert) {
  // This is where we look for content in the post or topics. Based on our result, we can insert
  // a Rich Publisher App. Alternatively, we can continue adding a Rich Publisher App for each
  // post without the filtering. 
    
  // Get FeedItem Id & the body.
  String id = null;
  String body = “”;
  for(FeedItem f : Trigger.new) {
       id = f.id;
       body = f.body;
      }
  }
    
  if (id == null && !f.body.contains('#lookingForSessions’)) {
      return;
  }
  String communityId = Network.getNetworkId();
  String feedElementId = id;
  ConnectApi.FeedEntityIsEditable isEditable = 
    ConnectApi.ChatterFeeds.isFeedElementEditableByMe(communityId, feedElementId);
  
  // Make sure the post is user-editable before inserting the Rich Publisher App.
  if (isEditable.isEditableByMe == true) {

        // This is the setup for Rich Publisher App insertion. 
        ConnectApi.FeedItemInput feedItemInput = new ConnectApi.FeedItemInput();
        ConnectApi.FeedElementCapabilitiesInput feedElementCapabilitiesInput = 
          new ConnectApi.FeedElementCapabilitiesInput();
        feedItemInput.capabilities = feedElementCapabilitiesInput;
        feedItemInput.capabilities.extensions = new ConnectApi.ExtensionsCapabilityInput();
        feedItemInput.capabilities.extensions.itemsToAdd = new List<ConnectApi.ExtensionInput>();
        ConnectApi.ExtensionInput ext = new ConnectApi.ExtensionInput();
        
        // This is the id for your Rich Publisher App.     
        ext.extensionId = '<Insert your extensionId>'; // This would be something you get from 
          //Workbench which is the id for extension entity for example ‘0MYB00000001234567’
        
        // This is the payload associated with this instance of the app.
        ext.payload = '<Insert your payload>'; // This would be your JSON blob for example: 
          //‘{\”feedItemId\":\"'+id+’\”}’
        
        // This can change if you want to use multiple payload versions with different versions of
        // your app. Or you can just use 1 version. This is Optional.                	
        ext.payloadVersion = '<Insert your payloadVersion>'; // This can be anything like ‘1.0’

        // The following fields add metadata to your Rich Publisher App.
        // This is similar to our actions in Unit 2 when we added metadata to the lightning event.
	 alt.textRepresentation = '<Insert your text representation here>'; 
	 ConnectApi.AlternativeInput alt = new ConnectApi.AlternativeInput();
        ext.alternativeRepresentation = alt;
        
        // Add a Rich Publisher App to FeedItem capabilities.
        // Here you can add multiple Rich Publisher App instances in the itemsToAdd Array.
        feedItemInput.capabilities.extensions.itemsToAdd.add(ext);
    
        // Finally, edit the FeedItem to insert the Rich Publisher App.
        ConnectApi.FeedElement editedFeedElement = 
          ConnectApi.ChatterFeeds.updateFeedElement(communityId, feedElementId, feedItemInput);
  } 
}

在我们的代码示例中,我们介绍了许多有关如何编写 插入后 FeedItem 触发器以及如何使用Rich Publisher Apps API。

要将Rich Publisher App实例添加到您的供稿项,平台会编辑 FeedItem 在它创建之后 插入后触发。然后,它将Rich Publisher App实例作为FeedItem触发器中的表示形式。您可以在进行编辑之前进行过滤,以确定是否要进行插入。

在我们的示例中,触发器#lookingForSessions在提要主体中寻找主题。然后,它传递有效负载以向Rich Publisher App提供上下文。通过上下文,Rich Publisher App知道要显示Dreamforce校园的地图。您可以做各种事情来从帖子正文或其附件中获取上下文。有了上下文时,可以将其作为有效负载传递给Rich Publisher App,以便它可以呈现某些内容作为响应。您还可以向第三方服务提出请求。例如,您可以请求访问机器学习资源或其他智能API。这些代理可以在您的Rich Publisher Apps中提供智能响应。

颤振扩展

在我们的公共API中,Rich Publisher Apps API被称为 ChatterExtension。您只能通过Workbench使用SOAP API创建Chatter扩展。但是您可以使用Chatter Extensions Connect API (或Apex中的ConnectAPI)来获取它。创建Rich Publisher App时,基本上是ChatterExtension对象,如我们在单元2,第3步中介绍的那样。Salesforce将Rich Publisher Apps作为Feed的附件插入,类似于附加文件。这就是为什么您使用 扩展功能输入(或 Apex中的ConnectAPI)插入带有提要项的Rich Publisher实例的原因。

让我们回到我们的例子。有人看到您的问题,然后回复How to build Rich Publisher Apps at Moscone North。

更新的Google Map

即时,地图在Moscone North位置上用图钉更新。

另一个答案建议在洲际酒店举行会议。地图再次更新,这一次是在酒店位置使用图钉。

更新的Google Map

在这里,连同 FeedItem 触发,我们有一个 FeedComment触发正在监听评论。成员插入评论后,您的应用程序会将评论的内容主体与Dreamforce会话列表进行匹配。然后触发器编辑FeedItem 用上面提到的位置上的引脚更新有效负载。或者,您可以让Rich Publisher App收听外部第三方服务以获取要固定的位置列表。在这种情况下,FeedComment 触发器可以更新该第三方服务,而无需编辑 FeedItem。这样,您可以获得在地图上更新图钉的动态体验。

面向社区的Rich Publisher Apps -构建富发布者应用

学习目标

完成本单元后,您将能够:

  • 列出Rich Publisher Apps平台中提供的接口和事件。
  • 从头开始构建Rich Publisher App。
  • 在社区中配置Rich Publisher Apps。

步骤1.上传您的图标图像并获取其文件资产ID

问题发布者中的Rich Publisher App图标

要提供在供稿发布者中显示并与您的应用打包在一起的图标,您需要该图标的 fileAsset ID。

您使用 fileAsset 创建时的ID ChatterExtension实体。添加fileAsset ID到 ChatterExtension 可让您将图标文件与您的应用打包在一起。

这是您上传图标图像并获取它的方法 fileAsset ID。

注意

注意

Lightning Component框架具有两个编程模型,Lightning Web Components和Aura。在此模块中,我们使用Aura构建Rich Publisher Apps。

  1. 将您的图标文件上传到Salesforce。
  2. 复制文件ID。注意您可以从Salesforce中的文件详细信息中获取文件ID。转到“文件”页面,然后查看文件详细信息。从浏览器的URL复制文件ID。这是一个很长的数字,例如 069R00000003roQ。
  3. 转到Workbench,并获取以下值: ID 下 fileAsset。
    1. 在REST Explorer中,选择Post,然后输入路径: /services/data/v43.0/connect/files/[file_ID]/asset
    2. 对于[file_ID],输入您在步骤2中复制的文件ID。
    3. 在请求正文中,输入{}。
    4. 点击执行
    5. 展开 fileAsset 节点,将值复制为 ID,然后将其粘贴到以后的用户。

步骤2.创建用于合成和渲染的闪电组件

当社区成员单击Rich Publisher App图标时,该操作将导致打开合成模式。该模态包含一个闪电组件。Lightning组件使用户能够选择某些内容,搜索某些内容或生成某些内容。您可以根据自己的用例自定义此组件。

让我们看看一家公司如何使用Rich Publisher Apps平台将案例附加到帖子和问题上。

遇见摩ri座

摩ri座出售咖啡和高端咖啡冲泡设备,并以其客户服务而自豪。它的秘密之一是为客户服务代理商建立的社区,以讨论未决案例并就解决方案进行协作。摩ri座希望开发一个Rich Publisher App,用于将案例附加到帖子和问题上。他们希望给他们的代理商一种挖掘过去解决方案的方法,以解决目前的问题。这就是他们的工作。

A.创建第一个闪电组件

创建扩展Lightning接口的Lightning组件 闪电:适用于ChatterExtensionComposer。合成组件使用此接口。

摩ri座开发人员团队使用先兆迭代来显示组件代码中的列表项。这是闪电组件代码。

<aura:component implements="lightning:availableForChatterExtensionComposer" controller="caseController">
    <aura:handler name="init" value="{!this}" action="{!c.init}"/>
    
    <aura:attribute name="items" type="List" description="Contains a list of items for user to select."/>
    
    <div class="container">
        <aura:iteration items="{!v.items}" var="item" indexVar="index">
            <div class="itemContainer" onclick="{!c.selected}">
                <div class="itemLeft">
                	<img class="itemIcon" src="https://login.salesforce.com/logos/Standard/record/logo.svg"></img>
                </div>
                <div class="itemRight">
                    <div class="itemTitle">{!item.title}</div>
                	<div class="itemDescription">Case Number: {!item.caseNo}</div>
                </div>
            </div>
        </aura:iteration>
    </div>
</aura:component>

摩ri座团队在控制器中发出Apex请求 在里面函数获取选择列表的支持案例信息。这是与Lightning组件关联的控制器代码。

({
	init : function(cmp, event, helper) {
        var action = cmp.get("c.getCases");
        action.setCallback(this, function(response) {
            var state = response.getState();
            if (state === "SUCCESS") {
                var caseList = [];
                var response = response.getReturnValue();
                for (var i=0;i<response.length;i++) {
                    caseList.push({
                        "title": response[i].Subject,
                        "caseNo": response[i].CaseNumber
                    })
                }
                cmp.set("v.items", caseList);
            }
        });
        $A.enqueueAction(action);
	},
    
    selected: function(cmp, event, helper) {
        var selectedItem = helper.getSelectedItem(cmp, event);
		var compEvent = cmp.getEvent("sendChatterExtensionPayload");
		compEvent.setParams({
			"payload" : helper.getPayload(selectedItem),
			"extensionTitle" : helper.getTitle(selectedItem),
			"extensionDescription" : helper.getDescription(selectedItem)
		});
		compEvent.fire(); 
    }
})

这是与控制器一起使用的辅助代码。

({  
    getSelectedItem: function(cmp, event) {
        var clicked = event.currentTarget;
        var parent = clicked.parentElement;
        var total = parent.children.length;
        var selectedIndex = -1;
        for(var i=0; i<total; i++) {
            if(clicked === parent.children.item(i)) {
                selectedIndex = i;
            }
            $A.util.removeClass(parent.children.item(i), "selected");
        }
        $A.util.addClass(clicked, "selected");
        
        var selectedTh = cmp.get("v.items")[selectedIndex];
        return selectedTh;
    },
    
    getPayload: function(item) {
        return item;
    },
    
    getTitle: function(item) {
        return item.title;
    },
    
    getDescription: function(item) {
        return item.caseNo;
    }
})

这是为该应用编写Apex调用的一种方法 获取案例 功能。

public class caseController {
    
    @AuraEnabled
    public static List<Case> getCases() {
       List<Case> cases = [SELECT AccountId,CaseNumber,Subject,Description,Id FROM Case ORDER BY CreatedDate ASC NULLS FIRST LIMIT 20];
       return cases;
    }
}

您可以实现自己的方式让用户进行选择。您可以在Apex中使用任何逻辑,以使用内部或第三方服务来构建功能强大的Rich Publisher Apps来获取智能数据或新鲜数据。

重要的是要确保用户单击触发光环事件 闪电:发送ChatterExtension有效载荷在控制器代码中。在摩ri座的代码示例中,团队在已选功能。在事件中设置事件已选 当用户做出选择时,此功能会发送有效载荷以与提要项关联。

团队设定 extensionTitle 和 extensionDescription使用辅助函数将元数据与有效负载关联。此元数据用于非Lightning用例,例如电子邮件通知或经典视图。您也可以选择添加缩略图URL。

这是带有标题和缩略图的模态。

列出作曲家组件中的项目

Rich Publisher Apps平台还提供“ 添加”和“ 取消”按钮。在上一个图像中,“ 添加”按钮被禁用。Salesforce的启用 添加按钮后,才闪电:发送ChatterExtension有效载荷使用非空的有效负载触发事件。如果使用空的有效负载触发事件,则按钮保持禁用状态。

启用添加按钮

B.创建第二个闪电组件

接下来,摩ri座团队创建一个Lightning组件来扩展Lightning接口 闪电:可用ForChatterExtensionRenderer。当FeedItem被渲染。此接口有两个基本属性:变体 和 有效载荷。的变体 属性可让您根据所选应用是在发布者中预览还是在广告中呈现来决定如何呈现内容 FeedItem。的有效载荷 属性是用户在组合组件中选择的JavaScript对象。

<aura:component implements="lightning:availableForChatterExtensionRenderer">
    
    <div class="container">
        <a target="_blank" href="{!v.payload.url}">
            <div class="{! (v.variant == 'FEED' ? 'itemContainerBorder' : '') + ' itemContainer'}">
                <div class="itemLeft">
                    <img class="itemIcon" src="{!v.payload.icon}"></img>
                </div>
                <div class="itemRight">
                    <div class="itemTitle">{!v.payload.title}</div>
                    <div class="itemSubtitle">{!v.payload.subtitle}</div>
                    <div class="itemDescription">Case Number: {!v.payload.caseNo}</div>
                </div>
            </div>
        </a>
    </div>
</aura:component>

Capricorn 使用变体 饲料决定使用哪个CSS类。指某东西的用途饲料 向Salesforce发出信号,以在其中呈现Rich Publisher App FeedItem。要在发布商中呈现应用,请使用变体预习。有效负载信息显示要呈现的情况。在此示例中,有效负载是静态的。但是,您也可以使用服务器端Apex控制器来获取渲染器组件内部的实时动态信息。

这是有效负载在发布者内部作为预览的样子(预习):

Rich Publisher App有效内容的预览

有效负载在最终呈现的供稿项中的外观如下(饲料):

与Feed项目一起发布的Rich Publisher App有效负载

步骤3.在Workbench中创建Rich Publisher App

现在,您已经创建了Lightning组件并抓取了 fileAsset ID,您已准备好在Workbench中创建Rich Publisher App。

转到工作台,然后插入 ChatterExtension对象(工作台>数据>插入> ChatterExtension)。然后将所有组件值与ChatterExtension 领域。

获取组件值的一种方法是转到“设置”并搜索 Lightning Components。单击列出的组件以查看其详细信息。从浏览器URL复制组件ID。

ChatterExtension对象
  • 提供合成组件的闪电组件ID。
  • 为模式标题添加文本。
  • 为应用程序图标(在Feed发布者中显示的图标)添加悬停文本。
  • 提供 fileAsset 应用程序图标的ID。
  • 提供渲染组件的Lightning组件ID。
  • 对于 类型输入Lightning。当前,闪电是唯一可用的类型。
注意

注意

您可以在Translation Workbench中本地化标题和悬停文本。

步骤4.在您的社区中启用Rich Publisher Apps

当一切准备就绪时,摩ri座团队会将应用程序添加到其社区中的供稿发布者。您可以通过“体验工作区”中的“管理工作区”向社区添加最多五个Rich Publisher Apps。

  1. 转到体验工作区,然后单击“ 管理”磁贴。
  2. 在导航列中,点击Rich Publisher Apps
  3. 从“可用的应用程序”列中最多选择五个应用程序,然后将它们移动到“选定的应用程序”列中。
  4. 要设置发布者中图标的顺序,请在列表中上移或下移选定的应用。
  5. 点击保存

面向社区的Rich Publisher Apps -可使用Lightning就绪的Rich Publisher应用程序入门

学习目标

完成本单元后,您将能够:

  • 描述什么是Rich Publisher Apps。
  • 列出Rich Publisher Apps的一些用例。
  • 描述Rich Publisher App的基本架构。

获得竞争优势

想象不只是添加文件或链接到您的提要帖子,还可以想象附加一个实时视频,醒目的GIF或交互式小部件。使用Rich Publisher Apps平台,几乎一切皆有可能。使用该平台可将多达五个自定义应用构建,配置和集成到Feed发布者中。为您的社区成员提供“现在就在这里可用”的便利,使您领先于竞争对手。

提要项上的映射Rich Publisher App

使用Rich Publisher Apps,您可以:

  • 将案例附加到帖子上。
  • 插入GIF文件或著名的引号。
  • 开始视频会议。
  • 附加一个Trailhead模块。
  • [您的想法在这里!]

在本模块中,我们描述如何构建Rich Publisher App,以使您的供稿更加动态,并向第三方服务开放它们。

注意

注意

Lightning Component框架具有两个编程模型,Lightning Web Components和Aura。在此模块中,我们使用Aura构建Rich Publisher Apps。

那么它是怎样工作的?

Rich Publisher Apps平台为您提供了创建交互式应用并将其集成到Feed发布器中的所有必要工具。

您可以通过三种方式将Rich Publisher App添加到您的社区。

  • 从AppExchange获取。
  • 在您的组织中构建自定义应用。
  • 通过变更集或程序包移植应用程序。
将Rich Publisher Apps添加到组织的方法

从组织到社区

将Rich Publisher App添加到组织后,所有组织的社区均可使用。社区管理员和管理员可以在其社区的“管理工作区”中选择并启用可用的应用程序。

附加文件图标

当您将Rich Publisher App添加到社区时,成员会在发布者旁看到该应用程序的图标。

此示例显示了具有三个自定义应用程序集成的Feed发布者。有用于附加外壳(1),GIF(2)和Trailhead模块(3)的图标。

问题发布者中的Rich Publisher App图标

从社区到出版商

Rich Publisher Apps图标显示在文本和问题发布者的组,主题,直接消息和用户配置文件供稿中。它们不会出现在民意调查发布者中。

注意

注意

在问题发布者中,Rich Publisher App图标显示在RTF编辑器下的“详细信息”部分中。

社区成员单击该图标以打开选择框。

Rich Publisher选择框

他们选择一些东西,单击Add,然后单击Share或 Ask,然后Salesforce会发布带有附件的帖子。

问题发布中包含的Rich Publisher App有效负载

关键发展概念

在下一个单元中,我们将引导您创建动态的Rich Publisher App。作为后续,理解一些概念将很有用。

有效负载是开发Rich Publisher Apps的关键概念。有效载荷是提要项表示的一部分。这是附加到供稿项的东西-视频,GIF或小部件。

提要项表示有效负载

有效载荷可以是字符串,可以是base64编码的JSON对象(无论您选择什么)。作为开发人员,您可以控制有效负载。

当Salesforce通过API获取提要项目时:

  1. 它将有效负载与提要项目相关联。
  2. 它获取有效负载。
  3. 它将有效载荷与提要项数据一起发送到提要中。

现在让我们看一下该架构的概述。

Rich Publisher Apps的四个主要组件

  • 合成组件(闪电组件)
  • 渲染组件(闪电组件)
  • 图标(发布者中显示的图像文件)
  • 可本地化的标签(标题和悬停文本)
Rich Publisher App的主要组件

接下来,我们逐步完成这些元素的创建过程,并将它们组合在一起成为一个内聚且动态的Rich Publisher App。

通过分布式营销实现无缝的客户参与

学习目标

完成本单元后,您将能够:

  • 说明如何遵守品牌标准。
  • 说明如何授予任何人访问已批准内容的权限。
  • 确定消费者如何与您的品牌互动。
  • 了解分布式营销中的顶级功能。

确保符合企业营销品牌标准

企业营销人员可以使用Journey Builder创建最佳实践的消费者旅程并将其部署到顾问,所有者和合作伙伴。 Journey Builder是Marketing Cloud的旅程管理工具,它使营销人员可以跨渠道和设备创建有针对性的一对一旅程。然后,他们可以将这些旅程分发给特许经营者,顾问和经销商,以确保他们拥有经品牌营销批准的内容,以发送给客户和顾客。

例如,汽车制造商的公司营销团队可以制定假期促销旅程,供经销商使用,以便在年底前与对新车表达了兴趣的消费者互动时使用。

授予任何人访问批准内容的权限

财务顾问,保险经纪人和经销店所有者并不总是按行业进行营销,因此了解无缝营销和执行品牌信息的重要性可能很复杂。现在,非市场营销人员可以轻松地访问Salesforce Sales Cloud,Service Cloud或Community Cloud中的预置行销历程,并将其个性化并发送给消费者。 

例如,想要与新客户打交道的保险经纪人,可以登录由Financial Services Cloud提供支持的经纪人门户,以访问新客户入职可用旅程的陈列室,然后向新客户提供个性化的品牌沟通。

了解消费者如何参与

对于品牌而言,重要的是要了解消费者如何响应营销信息。在合作伙伴级别,顾问,特许经营权人和经销商现在可以看到每个消费者如何与他们传递的消息进行交互。所有这些参与数据在Marketing Cloud中的旅程总级别上都是可见的。这意味着公司营销人员可以完全了解旅程中每个消息的执行情况。如有必要,营销人员可以适应并改变旅程,以继续提供最佳体验。

例如,一家快餐连锁店在与所有加盟商分享建议的旅程后,可以查看参与度分析,以发现当提供季节性折扣时,电子邮件营销要比数字广告更好。

分布式营销功能

Salesforce的分布式营销弥合了企业营销,员工,渠道合作伙伴和您的品牌之间的差距,以提供一致的体验。企业营销人员在Marketing Cloud中建立品牌跨渠道旅程,并将其部署到顾问,所有者和合作伙伴。然后,这些人将他们的联系人添加到旅程中,并为每个联系人个性化消息。

分布式营销是安装在诸如销售,服务,财务服务和合作伙伴社区之类的云中的托管软件包。通过Salesforce Campaign,Distributed Marketing提供Marketing Cloud旅程电子邮件内容,以供分布式团队个性化和发送。

借助分布式营销,品牌可以…
利用Marketing Cloud旅程增强营销活动:利用Marketing Cloud增强

团队能力利用
电子邮件,移动设备和广告来创建旅程,以提供最佳解决方案。 在销售,服务和社区云

中将营销与业务
访问旅程的 所有领域统一起来


控制广告系列用户可以访问
利用Salesforce强大的权限和共享模型。

广告活动讯息


吸引整个企业

名录 吸引合适的受众群体
将任何联系人,潜在客户或个人帐户添加到广告系列中。

传递单个
消息使用“快速发送”发送一次性消息。

充满信心
发送轻松为每个成员或组选择,查看和验证。

任何用例的消息
发送感谢,会议跟进或提醒,要约或促销。

会员选择与批准

大规模预览和个性化内容: 快速浏览

内容,
然后发送给个人或群组,快速预览消息。

使个性化变得容易
创建默认的个性化响应。

利用个性化内容的数据为 
一个或多个收件人自定义消息。

始终如一地针对每个接触点定位
根据在线和
离线参与情况制作正确的消息 。

灵活的预览和个性化

了解客户如何与您

互动 :  分析实时互动数据
深入研究单个电子邮件结果,以查看每个成员的详细互动。

衡量和优化绩效 
查看总参与度结果。

识别差距和改进
枢轴逻辑,活动和消息,以满足客户的需求和期望。

跟踪和参与度数据

将活动与活动关联的“连接活动”窗口的屏幕快照。

广告活动讯息
批准流程中的批准和拒绝按钮的屏幕截图。

会员选择与批准
为单个收件人个性化消息的屏幕截图。

灵活的预览和个性化
广告系列参与度跟踪数​​据的屏幕截图。

跟踪和参与度数据

而这仅仅是开始!请查看下一个模块,以了解如何从Salesforce开始使用分布式营销。

通过分布式营销实现无缝的客户参与

学习目标

完成本单元后,您将能够:

  • 说明如何遵守品牌标准。
  • 说明如何授予任何人访问已批准内容的权限。
  • 确定消费者如何与您的品牌互动。
  • 了解分布式营销中的顶级功能。

确保符合企业营销品牌标准

企业营销人员可以使用Journey Builder创建最佳实践的消费者旅程并将其部署到顾问,所有者和合作伙伴。 Journey Builder是Marketing Cloud的旅程管理工具,它使营销人员可以跨渠道和设备创建有针对性的一对一旅程。然后,他们可以将这些旅程分发给特许经营者,顾问和经销商,以确保他们拥有经品牌营销批准的内容,以发送给客户和顾客。

例如,汽车制造商的公司营销团队可以制定假期促销旅程,供经销商使用,以便在年底前与对新车表达了兴趣的消费者互动时使用。

授予任何人访问批准内容的权限

财务顾问,保险经纪人和经销店所有者并不总是按行业进行营销,因此了解无缝营销和执行品牌信息的重要性可能很复杂。现在,非市场营销人员可以轻松地访问Salesforce Sales Cloud,Service Cloud或Community Cloud中的预置行销历程,并将其个性化并发送给消费者。 

例如,想要与新客户打交道的保险经纪人,可以登录由Financial Services Cloud提供支持的经纪人门户,以访问新客户入职可用旅程的陈列室,然后向新客户提供个性化的品牌沟通。

了解消费者如何参与

对于品牌而言,重要的是要了解消费者如何响应营销信息。在合作伙伴级别,顾问,特许经营权人和经销商现在可以看到每个消费者如何与他们传递的消息进行交互。所有这些参与数据在Marketing Cloud中的旅程总级别上都是可见的。这意味着公司营销人员可以完全了解旅程中每个消息的执行情况。如有必要,营销人员可以适应并改变旅程,以继续提供最佳体验。

例如,一家快餐连锁店在与所有加盟商分享建议的旅程后,可以查看参与度分析,以发现当提供季节性折扣时,电子邮件营销要比数字广告更好。

分布式营销功能

Salesforce的分布式营销弥合了企业营销,员工,渠道合作伙伴和您的品牌之间的差距,以提供一致的体验。企业营销人员在Marketing Cloud中建立品牌跨渠道旅程,并将其部署到顾问,所有者和合作伙伴。然后,这些人将他们的联系人添加到旅程中,并为每个联系人个性化消息。

分布式营销是安装在诸如销售,服务,财务服务和合作伙伴社区之类的云中的托管软件包。通过Salesforce Campaign,Distributed Marketing提供Marketing Cloud旅程电子邮件内容,以供分布式团队个性化和发送。

借助分布式营销,品牌可以…
利用Marketing Cloud旅程增强营销活动:利用Marketing Cloud增强

团队能力利用
电子邮件,移动设备和广告来创建旅程,以提供最佳解决方案。 在销售,服务和社区云

中将营销与业务
访问旅程的 所有领域统一起来


控制广告系列用户可以访问
利用Salesforce强大的权限和共享模型。

广告活动讯息


吸引整个企业

名录 吸引合适的受众群体
将任何联系人,潜在客户或个人帐户添加到广告系列中。

传递单个
消息使用“快速发送”发送一次性消息。

充满信心
发送轻松为每个成员或组选择,查看和验证。

任何用例的消息
发送感谢,会议跟进或提醒,要约或促销。

会员选择与批准

大规模预览和个性化内容: 快速浏览

内容,
然后发送给个人或群组,快速预览消息。

使个性化变得容易
创建默认的个性化响应。

利用个性化内容的数据为 
一个或多个收件人自定义消息。

始终如一地针对每个接触点定位
根据在线和
离线参与情况制作正确的消息 。

灵活的预览和个性化

了解客户如何与您

互动 :  分析实时互动数据
深入研究单个电子邮件结果,以查看每个成员的详细互动。

衡量和优化绩效 
查看总参与度结果。

识别差距和改进
枢轴逻辑,活动和消息,以满足客户的需求和期望。

跟踪和参与度数据

将活动与活动关联的“连接活动”窗口的屏幕快照。

广告活动讯息
批准流程中的批准和拒绝按钮的屏幕截图。

会员选择与批准
为单个收件人个性化消息的屏幕截图。

灵活的预览和个性化
广告系列参与度跟踪数​​据的屏幕截图。

跟踪和参与度数据

而这仅仅是开始!请查看下一个模块,以了解如何从Salesforce开始使用分布式营销。