客户/kustomer-integration

整合 Magento 电子商务网站与 Kustomer 服务

维护者

详细信息

github.com/kustomer/magento

源代码

安装次数: 14,655

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 31

分支: 5

类型:magento2-module

1.1.11 2022-12-08 23:53 UTC

README

此扩展允许将 Adobe Commerce 事件发布到 Kustomer。它提供了一个可扩展的 KustomerEventObserver 类,您可以扩展此类以将事件发布到您的 Kustomer 账户。

安装

  1. $ composer require kustomer/kustomer-integration 从您的 Adobe Commerce 项目根目录
  2. $ bin/magento module:enable Kustomer_KustomerIntegration --clear-static-content
  3. $ bin/magento setup:upgrade
  4. $ 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);
    }
}