Magento自动识别性别的插件

redmaomail 2024-07-24 18:12 阅读数 66 #Magento

红帽云邮外贸主机

今天我们要为客户创建一个Magento自动识别性别的插件。插件基于Rapleaf的个性化API。Rapleaf公司提供人口统计和消费者个人数据(年龄,性别,婚姻状况,收入等),不能用作商业电子邮件。他们的合作伙伴,一些大(小)型数据公司将数据汇总并绑定到邮箱地址。你可以创建一个免费的Rapleaf账户来获取API。 让我们开始吧。

Alwayly_Autogender.xml

首先,我们要在/app/etc/modules文件夹里创建Alwayly_Autogender.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Alwayly_Autogender>
           <active>true</active>
            <codePool>local</codePool>
        </Alwayly_Autogender>
   </modules>
</config>

config.xml

第二步是在 /app/code/local/Alwayly/Autogender/etc文件夹里创建config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Alwayly_Autogender>
            <version>0.1.0</version>
        </Alwayly_Autogender>
    </modules>
    <global>
        <models>
            <alwayly_autogender>
                <class>Alwayly_Autogender_Model</class>
            </alwayly_autogender>
        </models>
        <events>
            <customer_register_success>
                <observers>
                    <alwayly_autogender_add_email>
                        <class>alwayly_autogender/observer</class>
                        <method>getGender</method>
                    </alwayly_autogender_add_email>
                </observers>
            </customer_register_success>
        </events>
    </global>
</config>

Observer.php

最后一步是/app/code/local/Alwayly/Autogender/Model文件夹里创建Observer.php

<?php
 
class Alwayly_Autogender_Model_Observer
{
    public function getGender($observer = null)
    {
        if($observer)
        {
            try
            {
                $customer = $observer->getCustomer();
 
                $api_key = '... your api key ...';
 
                $client = new Zend_Http_Client();
 
                $client->setUri('https://personalize.rapleaf.com/v4/dr?api_key=' . $api_key .
                                '&email=' . urlencode($customer->getEmail()) .
                                '&first=' . urlencode($customer->getFirstname()) .
                                '&last=' . urlencode($customer->getLastname())
                );
 
                $client->setConfig(array('maxredirects' => 0, 'timeout' => 2));
 
                $response = $client->request();
 
                if ($response->getStatus() < 200 || $response->getStatus() >= 300)
                {
                    Mage::log(
                        sprintf("Rapleaf query failed. (status: %s), (message: %s)",
                            $response->getStatus(),
                            strip_tags($response->getBody())),
                        null,
                        'rapleaf_api.log',
                        false);
                }
                else
                {
                    $data = json_decode($response->getBody(), true);
                    if(array_key_exists('gender', $data))
                    {
                        $customer->setGender(
                            Mage::getResourceSingleton('customer/customer')
                                ->getAttribute('gender')
                                ->getSource()
                                ->getOptionId($data['gender'])
                        );
                    }
                }
            }
            catch (Exception $e)
            {
                Mage::log(
                    sprintf("Exception in Rapleaf query. (message: %s)",
                       strip_tags($e->getMessage())),
                    null,
                    'rapleaf_api.log',
                    false);
            }
        }
    }
}

电商网站开发服务


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机