imaginationmedia/aws-personalize-magento2

使用 AWS Personalize 为 Magento 2 商店中的客户生成产品推荐

1.0.1 2020-01-25 22:27 UTC

This package is auto-updated.

Last update: 2024-09-27 22:12:42 UTC


README

Amazon Personalize

Amazon Personalize for Magento 2

Amazon Personalize for Magento 2

Magento 创新实验室与亚马逊网络服务 (AWS) 合作

Magento Innovation Labs 是一个项目,允许社区展示创意和创新解决方案,以电子商务平台为基础。每年,都会有一轮新的项目向 Magento 社区开放,以展示如何使用 Magento 的灵活性创新电子商务行业。本集成是在考虑 Magento 与 Amazon 合作的基础上开发的,作为可以与 Magento 集成的推荐解决方案之一。更多信息请查看 https://magento.com/blog/magento-news/magento-innovations-lab-teams-amazon-web-services-aws

AWS Personalize 是什么

Amazon Personalize 是一种机器学习服务,它使开发者能够轻松地为应用程序中的客户创建个性化推荐。根据 Amazon 的说法,其30%的订单来自其机器学习算法生成的产品推荐。因此,使用 Personalize,我们可以使用相同的机器学习算法来创建产品推荐,并展示所有客户的关联产品。

安装

使用 composer 安装

compose require imaginationmedia/aws-personalize-magento2

您还需要在 AWS 控制台中创建一个新的 AWS Personalize 项目,您可以通过此链接开始。

如何与 Magento 合作

AWS Personalize 将使用客户、产品和订单生成针对客户的独家产品推荐,并在产品页面上生成相关产品,取代 Magento 的原生相关产品引擎。使用 AWS Personalize 需要客户、产品和交互(订单)的最小数量,请检查文档以确保您的 Magento 2 商店有足够的数据开始使用此服务。如果您想使用示例数据测试此服务,可以使用 Magento 内部 工具生成一个包含订单、产品和客户的数据库。我们将使用 Magento 2 的订单、客户和产品将所有这些数据导出到 AWS Personalize,它将研究并学习这些数据,并允许我们调用 API 以获取客户的推荐产品。

设置 AWS Personalize 项目

创建新的 AWS Personalize 项目后,您需要创建三个不同的数据集。数据集是数据库,您将导入将被模型分析和学习的数据。此模型将进行训练,并理解提供的数据,理解如何使用这些数据。对于电子商务,我们将主要研究和学习产品与客户之间的交互,因此,我们需要为客户、产品和客户与产品之间的交互创建数据集。

基本配置

在 Magento 管理员上,您需要首先设置基本配置,用于创建与 AWS Personalize 的连接。

Basic configuration

配置文件 是您在环境/服务器中用于连接到 AWS 的 AWS 配置文件。请参阅此 指南以获取更多信息。 版本 是您将要使用的网络服务版本。使用 最新版 作为值,以始终使用最新版本。 区域 是您创建 AWS Personalize 实例的区域。 campaignARN 是您在创建新的 Personalize 营销活动时 Personalize 提供的 ARN。

然后我们有设置来启用产品推荐以及相关产品块。产品推荐将在产品页面、目录页面、搜索、CMS、购物车等几乎所有页面上显示。它仅对已登录的客户显示,因为所有推荐都将使用 Personalize 机器学习算法为每个用户创建。

设置 S3 存储桶以上传数据集文件

您还需要设置一个 S3 存储桶,该存储桶将负责接收从 Magento 导出的数据。它将以 csv 文件的形式存储在 S3 上,Personalize 将读取这些 csv 文件以导入数据。一旦创建了 S3 存储桶,您需要在 Magento 管理员中为每个导出配置设置 S3 配置。

S3 Butcket Config

客户数据集

使用此架构创建客户数据集

{
	"type": "record",
	"name": "Items",
	"namespace": "com.amazonaws.personalize.schema",
	"fields": [
		{
			"name": "ITEM_ID",
			"type": "string"
		},
		{
			"name": "PRICE",
			"type": "double"
		},
		{
			"name": "NAME",
			"type": "string"
		},
		{
			"name": "KEYS",
			"type": "string"
		},
		{
			"name": "CATEGORIES",
			"type": "string"
		}
	],
	"version": "1.0"
}

创建后,您必须转到 Magento 管理员,访问导出配置并选择“客户”。然后您必须设置

  • DatasetArn - 为此数据集生成的 ARN,您可以在创建数据集后立即在 AWS 控制台中找到该信息,在数据集信息部分。
  • JobName - 将用于将 Magento 商店的数据集数据导入到 Amazon AWS 的工作名称。
  • RoleArn - 具有从 Amazon S3 数据源读取权限的 IAM 角色的 ARN。

Admin configuration

产品数据集

您还需要为产品创建一个数据集,您必须使用此架构

{
	"type": "record",
	"name": "Items",
	"namespace": "com.amazonaws.personalize.schema",
	"fields": [
		{
			"name": "ITEM_ID",
			"type": "string"
		},
		{
			"name": "PRICE",
			"type": "double"
		},
		{
			"name": "NAME",
			"type": "string"
		},
		{
			"name": "KEYS",
			"type": "string"
		},
		{
			"name": "CATEGORIES",
			"type": "string"
		}
	],
	"version": "1.0"
}

创建数据集后,您还需要在 Magento 管理面板中设置此数据集的所有信息。Products dataset

交互数据集

我们还需要一个交互数据集,交互是客户创建的订单。您必须使用此架构创建数据集

{
	"type": "record",
	"name": "Interactions",
	"namespace": "com.amazonaws.personalize.schema",
	"fields": [
		{
			"name": "USER_ID",
			"type": "string"
		},
		{
			"name": "ITEM_ID",
			"type": "string"
		},
		{
			"name": "TIMESTAMP",
			"type": "long"
		}
	],
	"version": "1.0"
}

然后您还必须在 Magento 管理员中设置此导出数据集的配置。

Interactions config

所有数据集配置在 Magento 管理员中都有一个 RoleArn。这是用于访问在 桶名称 配置中提供的 S3 存储桶的 roleArn。如果您需要更多信息,请阅读此 文章

将数据导出到 AWS Personalize

一旦您设置好所有配置,我们就可以开始从 Magento 2 将数据导出到 Personalize。我们有三个 ssh 命令,每个命令负责将数据导出到一个配置文件。

bin/magento aws:personalize:export:customers - 它将客户数据导出到 csv 文件,此 csv 文件将上传到 S3 存储桶,然后导入到 AWS Personalize 数据集。

aws:personalize:export:products - 它将产品数据导出到 csv 文件,此 csv 文件将上传到 S3 存储桶,然后导入到 AWS Personalize 数据集。

aws:personalize:export:interaction - 它将交互(订单)数据导出到 csv 文件,此 csv 文件将上传到 S3 存储桶,然后导入到 AWS Personalize 数据集。

在将数据推送到个性化之后,个性化需要一些时间来导入、学习和分析这些数据。您可以在AWS控制台中查看状态。当所有三个数据集的此过程完成后,我们可以启用产品推荐/相关产品,您将在店面中看到它们。

事件

Aws Personalize 还允许我们跟踪事件,此扩展允许我们设置一个事件来跟踪新的交互(订单)。

因此,您必须在 AWS Personalize 营销活动中创建一个事件,然后在 Magento 管理员中设置此事件。

Magento admin configuration for events