CCD102

5 | Models

课程介绍

同学们,今天我们来聊聊Salesforce B2C商务云的开发,特别是如何使用Storefront参考架构。这个课程路线图会帮助我们一步步掌握关键技能。 首先,我们会从第5课开始过渡。这一部分非常重要,因为它会为我们打下坚实的基础。接下来,我们会进入第6课,这里我们会深入探讨ISML、内容插槽和页面设计师。 ISML是Salesforce Commerce Cloud的模板语言,它帮助我们创建动态的、个性化的网页内容。内容插槽则是用来在页面上放置各种内容块,比如广告、推荐产品等。页面设计师则是一个强大的工具,让我们可以直观地设计和调整页面布局,而不需要编写复杂的代码。 通过这些课程,你们将学会如何利用这些工具和技术,来构建一个功能强大、用户友好的B2C电子商务平台。每一步都会详细讲解,确保你们能够跟上并掌握这些知识。 好了,让我们开始吧,先从第5课的基础知识开始,为接下来的学习做好准备。

课程章节

本课程共有 5 个章节

  • 1

    Model

    第 78 页

    让我们来聊聊Salesforce B2C Commerce中的模型(Model)和它们在Storefront参考体系结构(SFRA)中的作用。 首先,想象一下模型就像是店面的“翻译官”。它们的主要任务是将Salesforce B2C Commerce的脚本API返回的复杂对象,转换成更简单、更易于店面使用的JSON对象。这样,店面的前端开发者就可以更容易地处理这些数据了。 在SFRA中,这些模型不仅仅是数据的搬运工,它们还承担着应用业务逻辑的责任。这意味着它们不仅仅是传递数据,还会根据业务规则对数据进行处理,确保数据在呈现给用户之前是符合业务需求的。 当你在开发店面时,控制器(Controller)会负责创建和更新这些模型。控制器就像是模型的“指挥家”,告诉模型什么时候该做什么。如果你想要自定义模型,你可以创建一个新的模型,然后向其中添加你需要的额外数据。这些数据可以是任何你想要在模板中展示的信息。 在SFRA中,所有的模型都存储在模块文件夹或顶层文件夹中。这意味着它们在整个应用程序中都是可用的,并且可以被扩展。你可以通过扩展模型来包含更多的数据,或者添加新的模型来包含不同的对象。你甚至可以改变模型,以便在不同的框架中呈现模板。 总之,模型在SFRA中扮演着至关重要的角色。它们不仅帮助我们将复杂的数据转换成易于使用的格式,还允许我们根据业务需求对数据进行定制和扩展。通过理解和掌握模型的使用,你可以更有效地开发出符合业务需求的店面应用。

    查看详情
  • 2

    Join Me 5-1: Models in the Base

    第 79 页

    让我们来聊聊Salesforce中的模型,特别是关于支付和产品的模型。首先,想象一下你正在一个大型的购物中心里,每个店铺都有自己的商品和支付方式。在Salesforce中,我们也有类似的“店铺”,我们称之为“模型”。 首先,我们来看看支付模型。这个模型就像是你购物时使用的支付方式。在Salesforce中,支付模型位于`app_storefront_base/cartridge/models/payment.js`。这个文件里有一个数组,列出了当前购物篮中可用的支付方式和相关的支付信息。这个模型虽然简单,但它非常灵活,可以根据需要添加更多的数据。 接下来,我们来看看产品模型。这个模型就像是你购物中心里的商品。在Salesforce中,产品模型位于`app_storefront_base/cartridge/models/Products`。这个目录下有很多组件,包括装饰器和其他多个模型。装饰器在这里的作用就像是给商品添加标签或者包装,让它们看起来更吸引人。这个模型比支付模型复杂得多,但它同样可以根据需要进行扩展。 最后,如果你想要自定义这些模型,你可以在你的自定义磁带盒中创建相同名称的文件,或者使用`base.call`来调用基础模型。这样,你就可以根据自己的需求来调整和扩展这些模型了。 希望这些解释能帮助你更好地理解Salesforce中的模型。如果你有任何问题,随时问我哦!

    查看详情
  • 3

    Extend a Model

    第 80 页

    让我们来聊聊JavaScript中的`call()`方法,以及它如何帮助我们扩展模型。 想象一下,你有一个函数,这个函数可以做一些事情,比如计算或者显示信息。通常,这个函数是“属于”某个对象的,也就是说,这个函数是某个对象的方法。但是,有时候我们可能希望这个函数能够“借用”给另一个对象使用,这时候`call()`方法就派上用场了。 `call()`方法允许你调用一个函数,并且指定这个函数在执行时的“主人”是谁。也就是说,你可以告诉这个函数:“嘿,这次你不是为你原来的主人工作,而是为这个新的对象工作。”这样,你就可以在不同的对象之间共享同一个函数,而不需要为每个对象都写一遍这个函数。 举个例子,假设你有一个函数叫做`greet`,它通常会显示某个人的名字和问候语。如果你用`call()`方法,你可以让这个函数为不同的对象显示不同的名字和问候语,而不需要为每个对象都写一个`greet`函数。 使用`call()`方法时,你需要提供两个东西:一个是新的“主人”对象,另一个是函数需要的参数。这样,函数就会使用新的“主人”对象来执行,并且使用你提供的参数。 这种方法在扩展模型时特别有用,因为它允许你在不修改原有代码的情况下,为模型添加新的功能或者改变模型的行为。 如果你想了解更多关于`call()`方法的信息,可以访问W3Schools或者MDN Web Docs的网站,那里有更详细的解释和例子。 希望这个解释对你有帮助!如果你有任何问题,随时问我。

    查看详情
  • 4

    Extend a Model with a New Decorator

    第 82 页

    让我们来聊聊如何使用装饰器来让我们的代码更加整洁和易于管理。想象一下,你有一个大箱子,里面装满了各种各样的玩具。如果你想要找到某个特定的玩具,可能会很麻烦,因为所有的玩具都混在一起。但是,如果你用一些小盒子来分类存放这些玩具,比如一个盒子放积木,一个盒子放小车,那么找起来就会容易得多。 在编程中,装饰器就像是这些小盒子。它们帮助我们组织代码,让每一部分都专注于做一件事情。比如,我们有一个叫做`fullProducts`的模型,它包含了产品的所有信息。现在,我们想要添加一些关于产品可用性的信息。我们可以创建一个新的装饰器,专门用来处理这部分信息,然后把它加入到`fullProducts`模型中。 但是,仅仅更新模型是不够的。为了让用户看到这些新信息,我们还需要更新视图。视图就像是展示给用户看的橱窗,它决定了用户能看到什么。在这个例子中,我们需要更新一个叫做`productUtility.isml`的模板,这样用户就能看到我们新添加的可用性信息了。 在以后的课程中,我们会更详细地讨论如何把视图代码(也就是ISML代码)分成更小的部分,这样可以让我们的代码更加模块化,更容易维护。但现在,我们只需要记住,更新模型后,别忘了更新视图,这样用户才能看到最新的信息。

    查看详情
  • 5

    Lesson 5: Knowledge Check

    第 84 页

    同学们,今天我们来聊聊在不使用装饰器模式的情况下,如何扩展模型。首先,想象一下你有一个基础的模型,就像是一个简单的咖啡机,它只能做基础的咖啡。但是,有一天你突然想要你的咖啡机不仅能做咖啡,还能打奶泡,甚至还能做拿铁。这时候,你就需要扩展你的咖啡机模型了。 在不使用装饰器模式的情况下,你可以通过继承来扩展模型。比如,你可以创建一个新的类,叫做“高级咖啡机”,这个类继承自基础的咖啡机类。然后,在这个新的类里,你可以添加新的功能,比如打奶泡和做拿铁的方法。这样,你就扩展了原来的模型,而不需要改变原来的代码。 举个例子,假设你有一个基础的“汽车”模型,它只能前进和后退。但是,你想要一辆能自动驾驶的汽车。这时候,你可以创建一个新的类,叫做“自动驾驶汽车”,这个类继承自“汽车”类,然后在这个新的类里添加自动驾驶的功能。这样,你就扩展了原来的汽车模型,让它具备了新的能力。 所以,当你不使用装饰器模式时,通过继承来扩展模型是一个很好的方法。它让你可以在不改变原有代码的基础上,添加新的功能。希望这个例子能帮助你们理解如何扩展模型。现在,你们可以试着和旁边的同学分享一下,你们还能想到哪些场景需要扩展或创建新模型。

    查看详情