flurrybox/enhanced-privacy

使您的商店符合GDPR的Magento 2模块

安装数: 27,781

依赖项: 1

建议者: 0

安全性: 0

星级: 43

关注者: 8

分支: 11

开放性问题: 7

类型:magento2-module

2.1.0 2019-08-15 09:41 UTC

This package is not auto-updated.

Last update: 2024-09-20 12:01:21 UTC


README

该扩展使GDPR合规性更容易。允许客户删除、匿名化或导出其个人数据。在商店页面上查看详细信息。

入门指南

先决条件

Magento 2开源版(CE)或商业版(EE)。支持的版本:Magento 2.1.6+,2.2.x

安装

Composer(推荐)

应在您的Magento 2安装根目录下运行命令。

composer require flurrybox/enhanced-privacy
php bin/magento module:enable Flurrybox_EnhancedPrivacy
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy

复制包文件

  • 下载作为ZIP存档的仓库文件
  • 将文件解压缩到app/code/Flurrybox/EnhancedPrivacy目录
  • 在以下命令在Magento 2根目录中运行
    php bin/magento module:enable Flurrybox_EnhancedPrivacy
    php bin/magento setup:upgrade
    php bin/magento setup:di:compile
    php bin/magento setup:static-content:deploy
    

用法和功能

  • 此模块的配置位于“商店 > 配置 > 客户 > 客户配置 > 隐私(GDPR)”。
  • 可以在“我的账户 > 隐私设置”中进行账户删除、匿名化或导出。
  • 客户可以将包含个人、愿望单、报价和地址数据的.csv文件的.zip存档导出其数据。
  • 客户可以删除或匿名化其账户。需要当前密码和原因。账户将在1小时内(或配置中指定的时间)内被删除,在此期间客户可以撤销删除。
  • 如果客户至少下过一次订单,他们无权删除账户,而是会被匿名化。
  • 当客户第一次访问您的商店时,将显示有关cookie政策的弹出通知。

导出数据

除了默认导出实体之外,还可以实现您自己的自定义数据导出。当客户请求导出其个人数据时,您的类实例将由数据导出处理器执行,并将新文件添加到数据存档中。

  1. 创建一个新的类,实现Flurrybox\EnhancedPrivacy\Api\DataExportInterface接口。
    <?php
    
    declare(strict_types=1);
    
    namespace Vendor\Module\Privacy\Export;
    
    use Flurrybox\EnhancedPrivacy\Api\DataExportInterface;
    use Magento\Customer\Api\Data\CustomerInterface;
    
    class Entity implements DataExportInterface
    {
        /**
         * Executed upon exporting customer data.
         *
         * Expected return structure:
         *      array(
         *          array('HEADER1', 'HEADER2', 'HEADER3', ...),
         *          array('VALUE1', 'VALUE2', 'VALUE3', ...),
         *          ...
         *      )
         *
         * @param \Magento\Customer\Api\Data\CustomerInterface $customer
         *
         * @return array
         */
        public function export(CustomerInterface $customer)
        {
            ...
        }
    }
  2. etc/di.xml中注册导出类
    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
        ...
        <type name="Flurrybox\EnhancedPrivacy\Api\ProcessorsInterface">
            <arguments>
                ...
                <argument name="exportProcessors" xsi:type="array">
                    ...
                    <item name="entity" xsi:type="object">Vendor\Module\Privacy\Export\Entity</item>
                    ...
                </argument>
                ...
            </arguments>
        </type>
        ...
    </config>

删除和匿名化数据

要删除或匿名化第三方集成收集的数据,您可以实现您自己的数据处理程序。

  1. 创建一个新的类,实现Flurrybox\EnhancedPrivacy\Api\DataDeleteInterface接口。
    <?php
    
    declare(strict_types=1);
    
    namespace Vendor\Module\Privacy\Delete;
    
    use Flurrybox\EnhancedPrivacy\Api\DataDeleteInterface;
    use Magento\Customer\Api\Data\CustomerInterface;
    
    class Entity implements DataDeleteInterface
    {
        /**
         * Executed upon customer data deletion.
         *
         * @param \Magento\Customer\Api\Data\CustomerInterface $customer
         *
         * @return void
         */
        public function delete(CustomerInterface $customer)
        {
            ...
        }
        
        /**
         * Executed upon customer data anonymization.
         *
         * @param \Magento\Customer\Api\Data\CustomerInterface $customer
         *
         * @return void
         */
        public function anonymize(CustomerInterface $customer)
        {
            ...
        }
    }
  2. etc/di.xml中注册处理器类
    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
        ...
        <type name="Flurrybox\EnhancedPrivacy\Api\ProcessorsInterface">
            <arguments>
                <argument name="deleteProcessors" xsi:type="array">
                    ...
                    <item name="entity" xsi:type="object">Vendor\Module\Privacy\Delete\Entity</item>
                    ...
                </argument>
            </arguments>
        </type>
        ...
    </config>

版权和许可

版权(c)2018 Flurrybox,Ltd。根据GNU通用公共许可证(“GPL”)v3.0