客户 / kustomer-integration
整合 Magento 电子商务网站与 Kustomer 服务
Requires
- php: ~5.5.0|~5.6.0|~7.0.0|~7.1.0 |~7.2.0|~7.3.0|~7.4.0
Requires (Dev)
- phpunit/phpunit: ~6.5.0
- dev-master
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.3
- 1.0.2
- dev-dependency-review-workflow-action
- dev-feat/KDEV-62665-add-codeowners
- dev-chore/mg-kdev-59042-npm-ci
- dev-task/he-fixing-magento-create-order-FE
- dev-andyborges-patch-1
- dev-ab-codecanning
- dev-task/bm-add-architecturemd
- dev-task/bm-KDEV-9518-update-php-reqs
This package is not auto-updated.
Last update: 2024-09-27 08:18:41 UTC
README
此扩展允许将 Adobe Commerce 事件发布到 Kustomer。它提供了一个可扩展的 KustomerEventObserver
类,您可以扩展此类以将事件发布到您的 Kustomer 账户。
安装
$ composer require kustomer/kustomer-integration
从您的 Adobe Commerce 项目根目录$ bin/magento module:enable Kustomer_KustomerIntegration --clear-static-content
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
注意
Packagist
如果您正在使用默认的 Adobe Commerce 元包,您需要将 Packagist 存储库添加到商店的 composer.json
{ "repositories": [ { "type": "composer", "url": "https://repo.magento.com/" }, { "type": "composer", "url": "https://packagist.org.cn" } ] }
更多详细说明请参阅 此处
Cron
此扩展使用 cron 作业收集事件并将它们发送到 Kustomer,因此需要在 Adobe Commerce 服务器上安装 cron。
您可以使用 crontab -l
检查 cron 是否已正确安装。如果 cron 没有显示,请在 Adobe Commerce 目录中运行 bin/magento cron:install
。此命令在 Adobe Commerce 2.2 中可用。此命令
设置
使用此扩展需要有效的 Kustomer 订阅。有关 Kustomer 的更多信息,请访问我们的 网站。
在您开始向 Kustomer 发送数据之前,您必须将 Adobe Commerce 应用程序安装到您的 Kustomer 账户中。您可以通过登录 Kustomer 应用程序,然后转到 设置>>应用目录
并点击 Adobe Commerce 的 安装
来完成此操作。
一旦在您的 Kustomer 账户中启用了 Adobe Commerce,您需要创建一个 API 密钥,以便您的 Adobe Commerce 商店可以将数据发送到 Kustomer。在 Kustomer 应用程序中,转到 设置>>API 密钥
。在此处创建一个具有 org.user
角色的密钥,并保留密钥的副本。您将需要它。
接下来,转到您的 Adobe Commerce 商店的行政网站,然后导航到 商店>>配置>>客户>>Kustomer
(如果 Kustomer
选项不可用,请参阅上面的安装说明)。选择您想要与 Kustomer 集成的商店/网站(或保持默认范围,如果您想全局使用集成)。在 API 密钥框中输入您在 Kustomer 中生成的 API 密钥,并确保将 启用
选项设置为 是
。接下来,选择任何您想要向 Kustomer 广播的默认事件(例如,当创建新客户时)并单击 保存
。您应该设置好了!
暂停扩展
如果您想停止向 Kustomer 发送数据,您可以在任何时间通过返回设置页面并将 启用
值设置为 否
来关闭扩展。请注意,在扩展关闭期间收集的数据将不会发送到 Kustomer。
自定义事件和对象
虽然Kustomer扩展自带一些预定义事件(新客户、订单等),但您也可以向Kustomer发送自己的自定义事件。要实现这一点,请创建自己的模块,并确保在composer.json
中将kustomer/kustomer-integration
作为其中一个依赖项。有关创建Adobe Commerce模块的更多信息,请参阅Adobe Commerce开发者文档。
然后在Observers/MySubscriptionObserver.php
下创建一个观察者,并扩展KustomerEventObserver
类。如果您想在创建时向Kustomer发送一个自定义的订阅对象,可以这样做:
<?php namespace MyCompany\MyModule\Observer; use Kustomer\KustomerIntegration\Observer\KustomerEventObserver; use Magento\Framework\Event\Observer as EventObserver; class MySubscriptionObserver extends KustomerEventObserver { /** * @param EventObserver $observer */ public function execute(EventObserver $observer) { $subscription = $observer->getEvent()->getSubscription(); $customer = $subscription->getCustomerId(); $type = 'subscription'; $data = array( 'plan' => $subscription->getPlan(), 'term' => $subscription->getTerm(), 'period_start' => $subscription->getPeriodStart(), 'period_end' => $subscription->getPeriodEnd() ); $this->publish($type, $data, $customer); } }
请注意,KustomerEventObserver::publish()
方法需要传递一个$type
字符串、一个包含$data
数组的数组(这将是在Kustomer中的您的对象)以及一个$customer
变量,该变量可以是客户ID或CustomerInterface
实例。
我们还建议您明确选择发送到Kustomer的字段。这将避免无意中共享您可能不想与Kustomer共享的信息,例如密码。
一旦观察者准备就绪,您需要在模块的etc/events.xml
文件中注册它。此示例可能如下所示:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="subscription_create_success"> <observer name="my_subscription_observer" instance="MyCompany\MyModule\Observer\MySubscriptionObserver" /> </event> </config>
订阅对象将自动被Kustomer摄取,并作为属于动态生成的Klass的Kustom对象与您的客户关联。
仅客户事件
如果您只想发送客户对象,可以将$type
设置为'customer'
,并将$data
传递为空数组。
<?php class MySubscriptionObserver extends KustomerEventObserver { /** * @param EventObserver $observer */ public function execute(EventObserver $observer) { $customer = $observer->getEvent()->getCustomer(); $type = 'customer'; $data = []; $this->publish($type, $data, $customer); } }