B2B201

8 | Global Extension Points

课程介绍

同学们,今天我们来聊聊Salesforce的课程路线图,特别是关于在Classic Store上开发和定制B2B商务的部分。这个课程路线图就像是一张地图,它会指引你一步步掌握Salesforce的相关技能。 首先,我们要明确的是,这个课程是专门为那些想要在Salesforce的Classic环境中进行B2B商务开发和定制的同学们设计的。Classic Store是Salesforce的一个传统界面,虽然现在有了新的Lightning界面,但Classic仍然在很多企业中广泛使用。 在这个课程中,你会学习到如何设置和管理B2B商务的基本功能,比如产品目录、价格表、购物车和订单处理等。这些都是B2B商务中非常核心的部分,掌握它们对于你在Salesforce平台上的开发工作至关重要。 接下来,课程会深入讲解如何定制这些功能来满足特定的业务需求。Salesforce提供了强大的定制工具,比如Apex编程语言和Visualforce页面,你可以利用这些工具来创建独特的用户体验和业务流程。 在学习的过程中,你会遇到一些挑战,比如如何优化性能、如何处理复杂的业务逻辑等。但不用担心,课程会提供详细的指导和最佳实践,帮助你克服这些难题。 最后,我想强调的是,学习Salesforce不仅仅是为了掌握技术,更重要的是要理解业务需求,能够将技术应用到实际的业务场景中。所以,在学习的过程中,多思考、多实践,这样才能真正掌握Salesforce的精髓。 好了,这就是我们今天关于课程路线图的简单介绍。希望你们能够按照这个路线图,一步步深入学习和实践,最终成为Salesforce的专家。加油!

课程章节

本课程共有 10 个章节

  • 1

    Global Extension Points

    第 154 页

    同学们,今天我们来聊聊Salesforce B2B Commerce中的一些全球扩展点。这些扩展点就像是给系统加装的小插件,让开发人员可以根据需要,对原有的功能进行扩展和定制。 首先,我们来看一下购物车相关的扩展点。比如`ccrz.cc_api_Cartextension`,这个扩展点允许你对购物车的功能进行扩展,比如添加一些自定义的验证规则或者修改购物车的显示方式。 接下来是`ccrz.cc_api_Delivery Date`,这个扩展点可以让你在订单处理中加入预计送达日期的功能,这样客户在下单时就能知道大概什么时候能收到货。 然后是`ccrz.cc_api_Custoryextension`,这个扩展点允许你对客户故事(Customer Story)进行扩展,比如添加一些额外的字段或者修改展示逻辑。 `ccrz.cc_api_OutboundOrder取消`这个扩展点,顾名思义,就是用来处理订单取消的情况。你可以在这里添加一些自定义的逻辑,比如在订单取消时自动发送通知给客户。 `ccrz.cc_api_PriceAdjustment`这个扩展点允许你对价格调整进行扩展,比如在特定条件下自动应用折扣或者调整价格。 `ccrz.cc_api_ProductQuantityRule`这个扩展点可以让你对产品的购买数量进行限制,比如设置最小购买量或者最大购买量。 `ccrz.cc_api_ShippingAndHandling`这个扩展点允许你对运费和处理费进行扩展,比如根据不同的地区设置不同的运费规则。 接下来是一些与目录和类别相关的扩展点,比如`ccrz.cc_HK_目录`和`ccrz.cc_hk_类别`,这些扩展点可以让你对产品目录和类别进行扩展,比如添加一些自定义的筛选条件或者修改展示方式。 `ccrz.cc_hk_DynamicTheme`这个扩展点允许你对网站的主题进行动态调整,比如根据不同的用户群体展示不同的主题。 还有一些与订单、付款、定价、促销等相关的扩展点,比如`ccrz.cc_hk_Order`、`ccrz.cc_hk_付款`、`ccrz.cc_HK_定价`、`ccrz.cc_HK_促销`等,这些扩展点可以让你对订单处理、付款流程、定价策略和促销活动进行扩展和定制。 最后,`ccrz.cc_hk_TaxCalculation`这个扩展点允许你对税费计算进行扩展,比如根据不同的地区设置不同的税率。 总的来说,这些扩展点为开发人员提供了极大的灵活性,可以根据业务需求对B2B Commerce系统进行深度定制。希望这些内容对你们有所帮助,如果有任何问题,欢迎随时提问!

    查看详情
  • 2

    Extension Process

    第 155 页

    今天我们来聊聊如何在Salesforce的B2B商务云中使用扩展点来扩展流程。听起来有点复杂,但其实很简单,我会用简单的语言来解释。 首先,什么是扩展点呢?想象一下,你有一个标准的流程,比如处理订单。这个流程是固定的,但有时候你可能需要根据不同的情况做一些小的调整。扩展点就是让你在不改变原有流程的基础上,添加一些自定义的操作。 在B2B商务云中,扩展点通常用于处理一些特定的业务需求。比如,你可能需要在客户下单后自动发送一封确认邮件,或者在订单处理过程中添加一些额外的验证步骤。这些都可以通过扩展点来实现。 那么,如何配置B2B Commerce以使用扩展点呢?我们可以分几个步骤来操作: 1. ,确定需求,:首先,你需要明确你想要扩展的流程是什么,以及你希望在哪个环节添加自定义操作。比如,你可能希望在订单提交后触发某个操作。 2. ,创建扩展类,:接下来,你需要创建一个Apex类来实现你的自定义逻辑。这个类会包含你希望在扩展点执行的具体操作。比如,你可以在这个类中编写代码来发送确认邮件。 3. ,注册扩展点,:然后,你需要在Salesforce中注册这个扩展点。这通常是通过配置一个自定义元数据或设置来完成的。你需要告诉Salesforce,在哪个流程的哪个环节使用你刚刚创建的Apex类。 4. ,测试和部署,:最后,别忘了测试你的扩展点是否按预期工作。你可以创建一个测试订单,看看是否触发了你添加的自定义操作。如果一切正常,就可以部署到生产环境了。 总结一下,扩展点是一个非常强大的工具,可以让你在不改变原有流程的情况下,灵活地添加自定义操作。通过确定需求、创建扩展类、注册扩展点和测试部署,你就可以轻松地在B2B商务云中使用扩展点来扩展流程了。 希望这个解释对你有帮助!如果有任何问题,随时问我。

    查看详情
  • 3

    Creating a New Order Extension

    第 156 页

    让我们来聊聊如何在Salesforce中创建一个新的订单扩展,以便在结账过程完成后自动减少客户的信用限额。这个过程听起来可能有点复杂,但其实只要跟着步骤走,你会发现它其实很简单。 首先,我们需要创建一个新的订单扩展。这个扩展就像是一个小助手,它会在订单完成后自动做一些事情,比如减少客户的信用限额。你可以把它想象成一个自动化的工具,帮助你在后台处理一些繁琐的任务。 接下来,在放置订单的方法期间,我们需要编写一些代码来降低账户的信用限额。这就像是在订单完成的那一刻,告诉系统:“嘿,别忘了减少这个客户的信用额度哦!”这样,系统就会自动执行这个操作。 然后,我们需要配置B2B Commerce来使用这个新的订单扩展。这就像是告诉你的商店:“从现在开始,我们要用这个新的小助手来处理订单了。”这样,每次有订单完成时,系统都会自动调用这个扩展来减少信用限额。 最后,别忘了验证你的更改。这就像是检查一下你的小助手是否真的在工作。你可以创建一个测试订单,看看信用限额是否真的减少了。如果一切正常,那么恭喜你,你已经成功地完成了这个任务! 现在,让我们来介绍一下故事中的人物。在这个场景中,你就像是这个系统的设计师,负责创建和配置这个订单扩展。而你的客户,就是那些在B2B Commerce上购买商品的商家,他们的信用限额会在订单完成后自动减少。通过这个小小的自动化工具,你可以帮助他们更高效地管理他们的账户。 希望这个解释对你有帮助!如果你有任何问题,随时问我哦!

    查看详情
  • 4

    Code Review: Implement New Order Extension

    第 157 页

    让我们一步一步来理解这段代码,并且我会用简单易懂的语言来解释每一步。 首先,我们有一个类叫做`ccTraining_HK_Order`,它扩展了另一个类`ccrz.cc_HK_Order`。这个类的主要目的是处理订单相关的逻辑,特别是更新账户的信用额度。 在这个类中,我们定义了一个私有方法`updateAccountCreditLimitForOrder`,这个方法接受一个参数`CurrentOrder`,这个参数的类型是`Ccrz__E_Order__c`,也就是订单对象。 ### 第一步:查询账户的信用额度 ```apex Account CurrentAccount = [SELECT CreditLimit__c FROM Account WHERE Id = :CurrentOrder.ccrz__Account__c LIMIT 1]; ``` 这里,我们通过`CurrentOrder`中的`ccrz__Account__c`字段(这是订单关联的账户ID)来查询对应的账户记录,并且只选择`CreditLimit__c`字段。`LIMIT 1`确保我们只获取一条记录。 ### 第二步:获取订单的总金额 ```apex Ccrz__E_Order__c refetchedOrder = [SELECT ccrz__TotalAmount__c FROM ccrz__E_Order__c WHERE Id = :CurrentOrder.Id LIMIT 1]; ``` 接下来,我们再次查询订单,这次是为了获取订单的总金额`ccrz__TotalAmount__c`。这是因为传入的`CurrentOrder`对象可能不包含这个字段的值,所以我们需要重新查询。 ### 第三步:计算新的信用额度 ```apex Decimal orderTotal = refetchedOrder.ccrz__TotalAmount__c; CurrentAccount.CreditLimit__c -= orderTotal; ``` 我们获取了订单的总金额后,将其从账户的信用额度中减去。`-=`是一个简写操作符,表示`CurrentAccount.CreditLimit__c = CurrentAccount.CreditLimit__c - orderTotal`。 ### 第四步:更新账户记录 ```apex UPDATE CurrentAccount; ``` 最后,我们更新账户记录,将新的信用额度保存到数据库中。 ### 总结 这个方法的主要功能是:当有一个新订单时,它会自动更新关联账户的信用额度,减去订单的总金额。这样,账户的信用额度就会实时反映最新的订单情况。 希望这个解释能帮助你更好地理解这段代码!如果有任何问题,随时问我哦!

    查看详情
  • 5

    Code Review: Implement New Order Extension, Continued

    第 158 页

    让我们来简单理解一下这段代码的作用和逻辑。 首先,这段代码是一个全局重写方法,名字叫“位置”。它接收一个`Map`类型的参数`inputData`,这个`inputData`里面存放了一些关键的数据。 在方法内部,我们首先从`inputData`中获取一个叫做`currentStep`的值,这个值表示当前订单处理的步骤。我们可以通过`inputData.get(ccrz.cc_hk_Order.PARAM_PLACE_Step)`来获取这个步骤。 接下来,我们有一个`if`条件判断,检查`currentStep`是否等于`ccrz.cc_hk_Order.Step_End`。这个`Step_End`表示订单处理的最后一步。如果当前步骤确实是最后一步,那么我们就继续执行下面的代码。 在`if`语句内部,我们从`inputData`中获取一个`ccrz__E_Order__c`类型的对象`currentOrder`,这个对象代表当前的订单。我们通过`inputData.get(ccrz.cc_hk_Order.PARAM_Order)`来获取这个订单对象。 然后,我们调用了一个叫做`updateAccountCreditLimitForOrder`的私有方法,并把`currentOrder`作为参数传递给它。这个方法的作用是根据订单来更新账户的信用额度。 最后,这个方法返回了`inputData`,表示处理完订单后,把数据原封不动地返回。 总结一下,这段代码的主要逻辑是:在订单处理的最后一步,获取当前的订单对象,并调用一个私有方法来更新账户的信用额度。整个过程完成后,返回原始的数据。 希望这个解释能帮助你更好地理解这段代码!如果有任何问题,随时问我哦!

    查看详情
  • 6

    Creating a New Invoice Extension Hook

    第 160 页

    让我们来聊聊Salesforce中的B2B商务功能,特别是关于创建新发票的扩展挂钩。想象一下,你是一个在线商店的老板,你的顾客在结账时可能不会立即付款,或者他们可能需要一个独立的发票来进行后续的付款。这时候,B2B商务功能就派上用场了。 在这个故事里,我们的主角是“ccrz.cc_hk_Invoice”,这是一个扩展点,也就是一个可以让我们自定义和扩展功能的地方。你可以把它想象成一个插座,我们可以插入不同的“插头”来增加新的功能。 通过这个扩展点,我们可以在订单创建的过程中自动生成发票,或者我们也可以选择在订单之外单独创建发票。这给了我们很大的灵活性,可以根据业务需求来调整发票的生成方式。 所以,当你需要为你的在线商店添加这种灵活的发票生成功能时,记得使用“ccrz.cc_hk_Invoice”这个扩展点,它可以帮助你轻松实现这个需求。

    查看详情
  • 7

    Method Overview

    第 161 页

    今天我们来聊聊“方法概述”。简单来说,方法就是解决问题的步骤或者策略。想象一下,如果你要做一个蛋糕,你会按照食谱一步步来,对吧?这个食谱就是你的方法。在Salesforce中,方法也是一样的道理。我们用它来指导我们如何完成特定的任务,比如如何管理客户信息,或者如何自动化销售流程。每种方法都有它的步骤和规则,确保我们能够高效、准确地达到目标。所以,理解并掌握这些方法,对于我们使用Salesforce来说,是非常重要的。

    查看详情
  • 8

    Code Review: Implement New Invoice Extension

    第 162 页

    让我们一步一步来理解这个过程。首先,我们有一个新的发票扩展,叫做`ccTraining_hk_Invoice`,它扩展了`ccrz.cc_hk_Invoice`。我们的任务是验证`applyPayment`方法。 首先,我们需要初始化`applyPayment`方法的基本实现。这一步很重要,因为我们需要确保在付款处理之后,能够正确地添加积分。我们可以通过调用`applyPayment`的超级实现来完成这一步。 接下来,我们会以`Map`的形式访问并行化的发票支付数据。这里的键是发票的Salesforce ID,而值则是支付金额,格式为字符串。 然后,我们会创建一个本地变量来存储支付的总金额。这个变量将帮助我们跟踪所有支付的总和,以便后续的处理。 简单来说,我们首先调用基本实现,然后获取支付数据,最后计算总支付金额。这样,我们就可以确保`applyPayment`方法能够正确地处理付款并添加积分。

    查看详情
  • 9

    Code Review: Implement New Invoice Extension, Continued

    第 163 页

    让我们一步一步来理解这段代码审查的内容。 首先,我们有一个任务,就是要实施一个新的发票扩展功能。这个功能的主要目的是处理付款列表,并且要把这些付款的金额按照特定的规则进行处理。 具体来说,我们需要做以下几件事情: 1. ,遍历付款列表,:我们需要逐个查看付款列表中的每一项。这个列表可能包含多个付款记录,我们需要对每一个记录进行处理。 2. ,处理付款金额,:对于每一个付款记录,我们需要取出其中的金额,并且使用一种叫做“HALF_EVEN”的四舍五入方法,把这个金额四舍五入到小数点后两位。这个“HALF_EVEN”方法是一种比较公平的四舍五入方式,它会在遇到中间值时,选择最接近的偶数。 3. ,查询信用限额,:接下来,我们需要查询当前用户的信用限额。这个信用限额是和用户的账户相关联的,我们可以通过调用`ccrz.cc_CallContext.currAccountId`来获取当前用户的账户ID,然后根据这个ID去查询信用限额。 4. ,更新信用限额,:当我们知道了当前用户的信用限额后,我们需要根据当前发票支付的金额来增加这个信用限额。也就是说,如果用户支付了一笔钱,那么他的信用限额应该相应地增加。 5. ,返回结果,:最后,我们需要返回一个结果。这个结果是从调用`super.applyPayment`方法中得到的,它是一个包含Map和字符串的对象,里面可能包含了一些处理后的数据。 总结一下,这段代码的主要任务就是处理付款列表,更新用户的信用限额,并且返回处理后的结果。每一步都需要仔细处理,确保数据的准确性和完整性。

    查看详情
  • 10

    Knowledge Check - 165

    第 165 页

    同学们,现在我们来做一个简单的知识检查。别担心,这不是考试,只是为了确保大家都能跟上课程的节奏。 首先,Salesforce是什么?它其实是一个客户关系管理平台,帮助企业更好地管理客户信息、销售流程和服务支持。你可以把它想象成一个超级智能的笔记本,记录着所有与客户相关的信息。 接下来,Salesforce的核心功能有哪些?主要有三个:销售云、服务云和营销云。销售云帮助销售团队追踪潜在客户和销售机会;服务云则专注于客户支持,帮助解决客户问题;营销云则用于自动化营销活动,提升客户参与度。 最后,Salesforce的界面主要由哪些部分组成?主要有三个部分:应用启动器、导航栏和记录页面。应用启动器让你快速切换不同的应用;导航栏帮助你浏览不同的模块;记录页面则显示具体的数据信息。 好了,这就是今天的知识检查。大家有没有觉得Salesforce其实并没有那么复杂呢?如果有任何问题,随时问我哦!

    查看详情