Salesforce B2C Commerce导入导出 – 配置导入和导出

学习目标

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

  • 列出管理员执行导入/导出所需的三种权限。
  • 列出导入过程的三个基本步骤。
  • 列出导出过程的三个基本步骤。
  • 说明网站导入/导出的目的。
  • 描述两种处理转移限制的方法。

介绍

Cloud Kicks的管理员Linda Rosenberg已经了解了很多有关导入和导出模式和模式的知识。现在,她准备配置并运行她的第一个导入和导出过程。Linda负责各种导入和导出过程,但今天她专注于目录导入和订单导出。她学习了完成这些过程的步骤以及数据传输大小的限制。

但是首先,她需要确保自己和备份管理员Peter Wong具有正确的业务管理器和文件传输权限。

她和彼得需要访问权限才能:

  • 网站导入/导出,其中包括所有网站信息
  • 导入/导出店面信息,例如产品和内容
  • WebDAV访问服务器上的日志文件和导入/导出目录

她还向Salesforce B2C Commerce支持请求访问FTP端口,以便她可以使用开发人员提供的FTPClient脚本。

导入目录

要访问业务管理器,您必须具有B2C Commerce实施。在此模块中,我们假设您是B2C Commerce管理员,具有执行这些任务的适当权限。如果您不是B2C Commerce管理员,那就可以了。继续阅读以了解您的管理员如何在登台实例中执行这些步骤。不要尝试在您的Trailhead游乐场中遵循我们的步骤。Trailhead Playground中不提供B2C Commerce。如果您拥有B2C Commerce的暂存实例,则可以在实例中尝试这些步骤。如果没有暂存实例,请询问您的经理是否有可以使用的实例。

Linda首先在Business Manager中运行手动导入和导出过程。后来,她计划与开发人员一起创建使用标准管道的流程。这些管道可以轻松处理大型数据集,快速可靠,并有效地使用系统资源。为了提高效率,她还计划创建用于文件传输和导入/导出的批处理作业。现在,手动处理就可以了。

为了导入包含产品数据的目录,她按照本模块第一单元中的说明,使用catalog.xsd格式在Cloud Kicks的PIM系统上创建了一个文件。

这是她采取的后续步骤。

  1. 打开业务经理。
  2. 选择cloudkicks>商家工具>产品和目录>导入和导出
  3. 在导入和导出文件部分中,点击上传
  4. 单击选择文件上载目录文件以导入到业务管理器中。
  5. 点击上传
  6. 选择文件,然后单击压缩在业务管理器中,选择要导入的文件并压缩该文件。
  7. 业务管理器将创建zip文件。
  8. 点击<<返回
  9. 在目录部分中,单击导入在业务管理器中,选择要导入的文件。
  10. 在目录导入-选择文件部分中,选择要导入的文件,然后单击下一步>>
  11. 业务管理器将验证文件并显示文件分析。Linda检查分析以确认业务经理在继续导入之前已识别出预期的信息。
  12. 单击下一步
  13. 选择合并导入模式。

出口订单

Linda希望导出订单,以便Cloud Kicks的外部订单管理系统(OMS)可以处理它们。她的导出文件使用与导入相同的架构定义。业务管理器会自动构建XML文件。

要导出订单,她采取了以下步骤。

  1. 打开业务经理。
  2. 选择cloudkicks>商家工具>订购>导入和导出
  3. 点击导出
  4. 选择要导出的订单,然后单击下一步在业务管理器中,输入订单导出文件名,然后单击“导出”。
  5. 选择导出选定的订单
  6. 输入文件名:orders-01-19-2019。
  7. 选择更新订单出口状态和库存
  8. 点击导出
  9. 在“导入和导出文件”部分中,单击“下载”
  10. 选择文件名(Linda选择订单01-19-2019),然后单击“压缩”
  11. 单击zip文件名,该文件名将文件下载到本地系统。

Linda使用WebDAV将XML文件传输到OMS,并将文件导入OMS。她还可以使用FTP或HTTPS,但是Cloud Kicks开发了使用WebDAV的实现。由于PCI-DSS的数据传输要求和OMS系统要求,她的传输过程使用了安全连接。这是最佳做法!

通过WebDAV查看导入/导出文件

琳达(Linda)希望确保一切都完美无缺,因此她看了看文件。这是如何做。

  1. 打开业务经理。
  2. 选择管理>站点开发>开发设置业务管理器WebDAV日志访问页面
  3. 单击导入/导出链接。业务管理器WebDAV导入/导出日志文件
  4. 查看日志文件以确保它们正确。

B2C Commerce将导出文件上传限制为100 MB。这意味着多个站点出口或带有巨大图像的出口会导致数据超额收费。因此,Linda仅根据需要(例如每天一次)运行出口,并且仅包含必要的数据。

网站导入/导出

Linda处理的另一种导入/导出是站点数据。Cloud Kicks正在实施一个新站点,由多个开发团队并行处理不同的开发实例。职能架构师要求她复制一个开发实例配置并与另一个开发实例共享。

通过站点导入/导出,她可以保存实例的快照(配置和数据)并将其还原到相同或另一个实例上。

要导出站点数据,Linda采取以下步骤。

  1. 打开业务经理。
  2. 选择管理>网站开发>网站导入和导出业务管理器网站导入导出页面
  3. 在“导出”部分中,输入存档的文件名。
  4. 选择要导出的数据。业务管理器“网站导入和导出”页面上,选择数据部分
  5. 点击导出
  6. 导出完成后,单击页面底部的导出文件链接。
  7. 在下一页上,向下滚动到页面底部,然后单击文件的下载链接。在本地系统上创建了一个zip文件。

要导入站点数据:

  1. 在接收实例上打开业务管理器。
  2. 选择管理>网站开发>网站导入和导出
  3. 在“导入”部分中,选择“本地”,然后单击“选择文件”
  4. 浏览文件,然后单击“打开”
  5. 在导入部分中选择文件,然后单击导入

交易限额

尽管标准导入被设计为处理任意大小的XML文件,但是单个过程仅限于1,000个业务对象。随着Cloud Kicks的增长,Linda必须注意此限制和其他限制。

限制 描述
上载 将WebDAV推送到B2C Commerce实例的上传限制为100 MB。如果传输文件花费的时间太长,Linda可以在压缩文件后重试。
下载 FTP或WebDAV的文件大小必须小于200 MB,才能下载到文件中。下载到字符串中的文件大小要小得多。
FTP客户端大小 程序化文件获取使用强制性文件限制,该限制可以在参数中传递或默认设置。
HTTPClient大小 HTTP客户端没有文件大小限制。

压缩的XML文件

Linda通过压缩减少了XML文件的大小。这有助于Linda保持在上传大小限制内,并加快慢速网络链接上的上传/下载时间。

  • gzip:  Business Manager使用gzip算法自动压缩标准导入文件,因此她不必在实例上运行.gunzip。她只需在导入管道中输入诸如catalog.xml.gz之类的文件名,或者在业务管理器中选择一个gzip压缩文件(扩展名必须为.gz)。
  • zip: 可以在Business Manager的“导入/导出”中基于单个文件对XML文件进行压缩和解压缩(zip压缩,而非gzip压缩)。在上载期间,业务管理器会自动将.zip文件解压缩。

Delta Feed

对于除目录数据以外的导入,Linda创建的XML文件仅包含当前XML文件与先前XML文件之间的差异。这些称为增量供稿。它们通常更小,导入速度更快,并且不易受到网络中断的影响。

尽管她可以创建增量目录Feed,但不能包含用特定于元素的导入模式替换全局导入模式的元素。例如,无法为捆绑产品创建增量Feed,因为捆绑产品字段会自动使用替换模式。

静态文件

目录和内容库中的持久对象(类别,产品和内容数据)具有补充的静态文件,例如产品图像。B2C Commerce将这些存储在实例文件系统中。您的XML文件只能包含永久数据库对象和对静态对象的引用。要导出/导入或下载/上传静态文件,Linda必须使用WebDAV界面。

为什么存档?

由于XML文件无法回滚,因此Linda始终在导入之前存档先前的XML文件,这是最佳做法。如果新的XML文件未通过验证,她可以导入先前的版本。她每周删除一次旧文件(最后一个文件除外),这样它们就不会累积。

总结一下

今天,Linda学习了如何在WebDAV中导入目录,导出订单和查看日志。通过站点导入/导出,她将站点数据从一个开发实例复制到另一个开发实例。她学习了如何处理文件和事务大小的限制以及归档的重要性。

在本模块中,您跟随Linda学习了模式,模式以及运行导入/导出过程所需的步骤。现在该测试您的知识并获得徽章!

Salesforce B2C Commerce导入导出 – 了解导入模式

学习目标

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

  • 解释导入模式的目的。
  • 列出两种通过导入添加新对象的模式。
  • 描述如何使用导入删除数据。
  • 说明可以导入或导出数据的两种常规方法。
  • 描述Salesforce B2C Commerce如何设计来处理店面数据。

介绍

Cloud Kick的新管理员Linda Rosenberg几乎准备使用Business Manager中的导入/导出功能。她的经理要求她推迟,直到她完全了解模式如何工作。除模式外,模式是导入/导出功能的最重要方面。

模式

架构定义数据文件结构规则时,模式定义导入数据时发生的情况。这些是模式。

合并模式:合并,更新,替换和删除

这是每个人的工作。

使用此模式… 有时候是这样的…
合并 如果不存在新数据,Business Manager将添加新数据并更新现有数据。
更新资料 业务管理器更新现有数据,但不添加新数据。它仅更新XML文件中的属性。
更换 业务管理器将重新创建现有数据或为XML文件中的每个数据添加新数据。业务管理器删除XML文件中没有的现有属性。此模式与删除然后合并的模式相同。
删除 业务管理器从数据库中删除XML文件中的数据。您只需要在XML文件中提供对象ID。业务管理器将忽略其他对象属性。

高级采购员Traude Beck要求Linda帮助产品和属性更改。Traude希望将Pinterest标志添加到一些产品中作为测试。以前,她测试了Facebook标志,现在想删除该属性。

琳达创建了Traude想要的更改表,以便她可以决定使用哪种模式。Traude的更改涵盖了对象T-123440至T-123445。在表中,字母A到F是缩写对数据库所做的更改的一种方式。例如,产品T-1234440已经在数据库中,并且Traude希望向其添加pinterest-enabled-flag true属性。

A代表数据库中的产品:

<product product-id="T-123440">

A1代表产品加上属性更改:

<product product-id="T-123440">
<pinterest-enabled-flag>true</pinterest-enabled-flag> 
更改 已经在数据库中 产品(对象) 属性
A1-添加属性 <product product-id =“ T-123440”> <pinterest-enabled-flag> true </ pinterest-enabled-flag>
B1-删除属性 <product product-id =“ T-123441”> <facebook-enabled-flag> true </ facebook-enabled-flag>
C-不变 <product product-id =“ T-123442”>
D-新产品 没有 <product product-id =“ T-123443”>
E-不在XML文件中 <product product-id =“ T-123444”>
F1-更改属性 <product product-id =“ T-123445”> 更改:<pinterest-enabled-flag> false </ pinterest-enabled-flag>

若要:<pinterest-enabled-flag> true </ pinterest-enabled-flag>

对于每种模式,这就是最终要存储在数据库中的内容。

导入前 在XML文件中 导入方式 导入后
A,B,C,E,F A1,B1,C,D,F1 合并 A1,B,C,D,E,F1
更新资料 A,B,C,E,F1
更换 A1,B,C,D,E,F1
删除 Ë

琳达(Linda)认为仅凭这些模式就不允许她更改表中列出的B1-删除(D1-Delete)属性。这就是为什么她仍然在导入后看到B而不是B1的原因。要删除Facebook标志属性,她需要将XML文件中的属性值更改为none或为空白,然后以合并或更新模式导入。

对于删除模式,即使与C一样,导入中的所有对象也将被删除,即使没有更改。

对于更新模式,业务管理器不会将D添加到数据库中。为什么?因为更新模式不会添加新数据。

在任何一种情况下,Business Manager都不会删除E,因为不在XML文件中的对象没有任何反应。

Linda删除对象的一种方法是创建一个XML文件,该文件仅包含她要删除的对象,然后使用删除模式将其导入。删除对象的另一种方法是在XML feed中的对象级别指定删除导入模式。接下来我们讨论。

元素模式

特劳德再次来到琳达寻求帮助。这次,她希望Linda用三个新产品更新目录,并同时删除两个产品。为此,Linda为XML文件中的各个元素指定模式。元素级别的模式将覆盖全局导入模式。

Linda创建一个包含两种产品的XML文件。

<product product-id="T-555361"/>
<product product-id="T-367822"/>
<product product-id="T-622977"/>
<product product-id="T-536378" mode="delete"/>
<product product-id="T-638353" mode="delete"/>

她列出了没有单独模式的新产品,以及要使用删除模式删除的产品。然后,她以合并模式运行导入。她不使用更新模式,因为它将删除两个产品,但不添加新产品。

目录导入/导出

Linda很快意识到B2C Commerce的导入/导出功能旨在处理店面数据的复杂性,例如目录的类型。这很重要,因为使用两个目录是B2C Commerce最佳实践:店面和主目录。这正是Cloud Kicks构建目录的方式!店面目录是他们在店面中显示的内容,而主目录则表示他们从外部PIM导入的内容。

目录导入

之前,Linda添加和删除了特定的产品和属性。她还可以一次导入整个目录。这包括目录以及其中的任何类别和产品数据。

使用目录导入:

  • 您可以独立于主目录导入店面目录。
  • 店面目录类别可以引用该类别中的产品。
  • 其他店面目录的导入不会影响现有的产品/类别分配。
  • 主目录的产品更新导入不会影响店面目录中的类别分配。
  • 目录导入语义将主目录和店面目录视为相互独立的独立数据单元,因此您可以导入一个目录而不删除另一个目录的数据结构。
  • 业务管理器根据产品是新产品还是现有产品以及使用的模式来更新在线/离线状态。例如,如果未在导入文件中指定状态,它将自动将以合并和替换模式导入的新产品设置为脱机。

目录导出

Linda可以从Business Manager或整个目录中导出有关选定产品的数据。当Linda使用“导出特定产品”设置时,结果文件仅包含所选产品的列表以及这些产品的类别分配。

在导出过程中,B2C Commerce会自动修剪前导和尾随空格,并删除产品图像路径中任何以前保存的换行符。

特定对象处理

B2C Commerce在处理诸如优惠券,客户,订单和价格手册之类的对象的进出口时,会使用特定于对象的特定规则。例如,让我们看一下它如何处理价目表导入。

模式 价格簿的处理细节
合并
  • 您无法更改价格手册的币种。
更新资料
  • 业务管理器在一次交易中更新价目表中的每一行,并在提交交易后使新价格在店面中可见。
  • 您无法更改价格手册的币种。
更换
  • 业务经理在一次交易中加载整个价格手册,并在转移完成后在店面显示新价格。如果在价目表加载后订单项价格发生变化,则新价格也将在购物车中显示。
  • 您可以更改价格手册的货币。
删除
  • 导入价目表时,业务管理器会删除整个价目表,而不仅仅是XML中列出的SKU的价格分配。
所有
  • 价格簿导入将忽略包含负数量或数量值的价格簿。在导入日志中报告该问题。
  • 价格簿导入会拒绝使用未知货币的价格簿。系统报告数据警告。

Linda很快了解到,在创建导入和导出XML文件时,必须同时考虑模式和对象类型。

下一步

在本单元中,Linda学习了如何使用模式进行全局和特定于元素的导入和导出。她还了解到B2C Commerce处理与对象类型相关的导入和导出过程。接下来,她学习如何配置和运行导入和导出过程。

Salesforce B2C Commerce导入/导出 – 探索业务管理器导入和导出

学习目标

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

  • 列出可以通过导入/导出过程传输的三个数据对象。
  • 解释Salesforce B2C Commerce XSD文件的用途。
  • 说明使用“优化价格手册”功能的好处。
  • 解释特定于对象的模式文件的两个好处。
  • 说明如何使用实例来推出店面数据。

介绍

琳达·罗森伯格(Linda Rosenberg)是高端定制运动鞋公司Cloud Kicks的新管理员。她的最高职责是数据管理。具体来说,她需要管理外部系统与B2C Commerce之间的店面数据传输。她还需要帮助将站点配置和设置数据从一个实例移动到另一个实例,以使新的开发人员实例联机。

Cloud Kicks会在记录系统中开发目录详细信息,例如SKU号,产品描述,尺寸,图像,价格等,Linda必须使用导入过程将数据传输到B2C Commerce。同时,只要鞋店购物者在B2C Commerce中创建订单,兑换优惠券等等,Linda就需要确保数据进入外部系统进行处理。为此,她使用导出流程。

注意

店面是由B2C Commerce支持的在线电子商务网站。一个实例可以包含多个店面。

琳达·罗森伯格(Linda Rosenberg),Cloud Kicks管理员

在本单元中,Linda学习了有关B2C Commerce如何处理进出口的一些基础知识。后来,当她尝试使用B2C Commerce手动触发或“批处理”流程以及网站导入/导出时,她将这些概念付诸实践。让我们继续。

在Linda可以尝试B2C Commerce中的网站导入/导出功能之前,她需要了解:

  • Cloud Kicks导入和导出的数据类型。
  • Cloud Kicks管理员和开发人员使用的实例类型。
  • 模式文件如何工作,以及她需要熟悉哪些模式文件。
  • B2C Commerce如何处理数据验证。

店面数据导入/导出

Linda了解到Cloud Kicks可以导入和导出以下类型的店面数据。

导入 导出商品
活动数据 优惠券兑换
目录 客户记录
优惠券 订单
订单更新(取消,退货,运输)
价格书

Cloud Kicks的过程非常简单,其外部系统支持B2C Commerce文件结构。这意味着Linda可以在大多数情况下使用手动的Business Manager导入/导出过程。但是,Cloud Kicks会在经常更新的第三方产品信息管理(PIM)系统中维护大型和复杂的价目表。因此,Cloud Kicks不是使用Business Manager导入过程,而是使用“优化价格手册”功能来导入其价格数据。此功能使传质效率更高。

导入到暂存

B2C Commerce为客户提供了四种类型的实例:沙箱,登台,开发和生产。开发人员在其中使用沙箱实例,因此Linda仅在与开发人员一起编辑或创建新的导入或导出过程时才使用沙箱实例。一旦他们测试了新流程,开发人员便将其从沙箱移至临时实例供她使用。

Linda使用登台和开发实例来导入和导出店面数据。登台实例是她准备进行数据传输的地方。在分阶段测试了店面数据和代码之后,她首先将其复制到开发实例,然后再复制到生产实例。她使用开发实例在转移到生产之前验证转移是否成功。

记录存档和清理是导入过程中重要的也是最后一步。Linda每周一次使用手动流程来存档以前的XML文件,并消除旧文件和不必要的数据。当她删除在业务管理器中执行的导入记录时,它将自动删除相关的日志文件。

模式文件

Linda知道B2C Commerce模式是实现导入和导出的重要组成部分。模式是一组特定于对象的XSD文件,这些文件定义了XML导入和导出文件的结构。B2C Commerce仅接受以这些模式格式化的XML导入文件。当Linda通过业务管理器手动导入文件时,B2C Commerce会根据其各自的架构自动对其进行验证。

Cloud Kicks与合作伙伴一起配置外部系统,以便它们在架构所需的结构中生成XML文件。Linda熟悉生成导入文件的外部作业,因此她可以容纳更改。例如,有时架构会更改,而她需要知道更改如何影响其导入或导出过程。

B2C Commerce会自动以正确的XML格式导出文件,但优惠券代码除外,它将以CSV格式导出。

这些是她密切关注的架构文件:

  • catalog.xsd
  • 优惠券
  • 优惠券兑换
  • 客户.xsd
  • customeractivedata.xsd
  • order.xsd
  • pricebook.xsd

资料验证

如前所述,当Linda通过Business Manager手动导入文件时,针对该架构的数据验证是自动的。如果她使用其他方式(例如以编程方式)导入数据,则必须要求开发人员以编程方式帮助验证数据。

有时,用户在业务管理器中手动创建数据,例如,当推销员Traude Beck向产品数据添加详细信息时。如果她的产品详细信息未遵循架构,则数据将无效,并且导出(甚至每晚备份)都将失败。为了使导出正常工作,Linda必须要求Traude编辑数据,以便她可以再次尝试导出。

大多数B2C Commerce模式都指定模式元素是可选的。这意味着Linda只需要在她用于导入的每个XML文件中包括她想要的元素。但是,她还需要确保她包括任何从属元素。例如,如果她在“平台运动鞋”上导入产品数据,则必须包括他们分配给的所有类别。如果她忘记在导入中包含一个(例如“平台”类别),则B2C Commerce将忽略此类别分配并将其报告在错误日志中。

现在让我们仔细看看一些元素,以便您了解我们在说什么。

元素和属性

我们了解到,模式提供了规则,并且生成的XML文件包含了数据,希望格式正确。

模式规则考虑了特定对象及其属性的性质。这使您可以对特定于对象的数据进行精细控制,并且可以帮助您更好地理解数据。这就是元素和属性进入的地方。元素是数据对象,属性描述了那些对象。例如,catalog.xsd(请记住,这是目录架构)包括类别和产品元素。

这是从目录架构生成的XML文件中category元素的示例。

<category category-id="womens-shoes-sandals">
    <display-name xml:lang="x-default">Sandals</display-name>
    <online-flag>true</online-flag>
    <parent>womens-shoes</parent>
    <template/>
    <page-attributes/>
</category>

display-name属性是在店面显示的类别的名称。online-flag属性设置为true,表示该类别在店面中可见。父级属性为“妇女-鞋子-凉鞋”子类别的父类别命名。

这是XML文件中product元素的示例。

<product product-id="008884303989">
    <ean/>
    <upc>008884303989</upc>
    <unit/>
    <searchable-flag>true</searchable-flag>
    <tax-class-id>standard</tax-class-id>
    <page-attributes/>
    <custom-attributes>
         <custom-attribute attribute-id="color">navy</custom-attribute>
         <custom-attribute attribute-id="size">007</custom-attribute>
         <custom-attribute attribute-id="width">N</custom-attribute>
    </custom-attributes>
    <pinterest-enabled-flag>false</pinterest-enabled-flag>
    <facebook-enabled-flag>false</facebook-enabled-flag>
</product>
upc属性指示产品的通用产品代码(UPC)。其他属性包括searchable-flag和tax-class-id,在这种情况下,设置为standard。

接下来,琳达熟悉与她一起使用的三个最常见元素的一些重要进出口规则:类别,产品和订单。

类别元素

这些是导入类别元素时要考虑的一些特定于元素的规则。

  • 类别元素可以按任何顺序出现在XML文件中。
  • 使用删除或替换模式不会删除目录的根类别。使用替换模式进行了更新。(我们将在下一个单元中探索模式。)
  • 删除类别将删除类别的类别分配(不是类别内的产品),类别链接(传入和传出)以及所有子类别。
  • 根类别的显示名称和描述也设置为目录的显示名称和描述。

产品要素

这些是导入产品元素时要考虑的一些元素特定的详细信息。

  • 产品元素可以以任何顺序出现在XML文件中。
  • 捆绑产品,产品集和主产品类型是互斥的,因此捆绑产品,产品集产品和变型要素也是互斥的。
  • 您不能指定捆绑包,产品集或主产品类型的变体。
  • 变体和变体组完全由一个主产品拥有。您可以在一个导入过程中将所有权从一种主产品更改为另一种主产品。

订单元素

Linda导出Cloud Kicks订单并在订单管理系统中对其进行处理。B2C Commerce自动处理特定于订单的详细信息,例如订单状态,信用卡处理,回滚和退货。

下一步

在本单元中,Linda了解了她通过导入/导出处理的数据类型,实例类型,模式文件以及B2C Commerce如何验证数据。接下来,她学习如何将模式用于全局和特定于元素的导入和导出过程。