superbrave/partnerize-bundle

一个用于与Partnerize API通信的Symfony扩展包。

安装: 452

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 2

类型:symfony-bundle

v1.0.0 2020-05-29 08:40 UTC

README

一个用于与Partnerize API通信的Symfony扩展包。

概述

提供发送、批准和拒绝Partnerize中转换的方法(不是全部)。

设置

安装

使用此包与所有Symfony扩展包类似。

步骤 1.

打开命令行,进入您的项目目录,并执行以下命令以下载此扩展包的最新版本

$ composer require superbrave/partnerize-bundle

此命令要求您全局安装Composer,如Composer文档的安装章节中所述。

步骤 2.

然后,通过将其添加到项目app/AppKernel.php文件中注册的扩展包列表来启用扩展包。

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Superbrave\PartnerizeBundle\SuperbravePartnerizeBundle(),
        );
        // ...
    }
    // ...
}

步骤 3.

现在,您可以将扩展包的配置添加到您的应用程序中。如果您正在使用Symfony ^4.0,只需将superbrave_partnerize.yml添加到您的包文件夹中,并填写以下配置值

superbrave_partnerize:
    application_key: 'YOUR_APPLICATION_KEY'
    user_api_key: 'YOUR_USER_API_KEY'
    campaign_id: 'YOUR_CAMPAIGN_ID'
    base_uri: (optional, default 'https://api.partnerize.com/')
    tracking_uri: (optional, default 'https://prf.hn/conversion/')

用法

转换

创建

public function createConversion(Sale $sale): string;

您可以使用此扩展包通过Partnerize的API创建转换。`createConversion`方法以一个`Sale`对象作为其参数。此`Sale`对象接受一个`Item`对象的数组,这些对象是正在销售的产品。

`createConversion`方法返回在Partnerize中创建的转换的`conversionId`。

批准

public function approveConversion(string $conversionId): Job;

一旦您的应用程序一侧批准了转换,您可以使用`approveConversion`方法在Partnerize中批准它。此方法只需要`createConversion`方法返回的`conversionId`。

`approveConversion`方法返回一个`Job`对象。

拒绝

public function rejectConversion(string $conversionId, string $reason): Job;

如果您想拒绝一个转换,可以使用`rejectConversion`方法。向该方法提供转换的`conversionId`和拒绝的理由。

`rejectConversion`方法返回一个`Job`对象。

作业

`Job`是一个包含Partnerize端正在执行的工作的数据的对象。创建、批准、拒绝转换将返回该`Job`对象。它会告诉您已推送的当前`status`。

更新

public function getJobUpdate(string $id): Job;

您可以通过调用`getJobUpdate`方法来获取`Job`的更新,此方法仅接受一个参数:您之前收到的`Job`中的`id`。因此,建议在推送内容到Partnerize后将其保存到某处。

此方法将返回您请求的`Job`对象。

响应

public function getJobResponse(string $id): Response;

一旦更新告诉您`Job`的`status`已完成,您可以通过调用`getJobResponse`方法检索`Response`。此方法再次仅接受`jobId`作为第一个参数。

此方法将返回一个`Response`对象,其中包含`Job`执行工作后返回的任何`errors`和/或`conversionItems`。

示例

如果您的应用程序中启用了自动装配,则可以将Partnerize客户端自动装配到一个类中。

class PartnerizeHandler
{
    private $client;

    public function __construct(Superbrave\PartnerizeBundle\Client\PartnerizeClient $client)
    {
        $this->client = $client;     
    }

    public function sendConversionToPartnerize(): void
    {
        $item = new Superbrave\PartnerizeBundle\Model\Item('yourCategory', 1 /* quantity */);
        $item->setProductBrand('productBrand');
        $item->setProductName('productName');
        $item->setProductType('productType');
        $item->setSku('productSku');
        $item->setValue(10.00);
    
        $sale = new Superbrave\PartnerizeBundle\Model\Sale('yourClickReference', 'yourConversionReference');
        $sale->setConversionTime(new \DateTime());
        $sale->setCountry('NL');
        $sale->setCurrency('EUR');
        $sale->setCustomerReference('customer123456')
        $sale->setCustomerType(Superbrave\PartnerizeBundle\Model\Sale::CUSTOMERTYPE_NEW);
        $sale->setVoucher('yourVoucherCode');
        $sale->addItem($item);
        
        $conversionId = $this->client->createConversion($sale);
        $job = $this->client->approveConversion($conversionId);
        
        if ($job->getStatus() === Superbrave\PartnerizeBundle\Model\Job::STATUS_COMPLETE) {
            $response = $this->client->getJobResponse($job->getJobId());
    
            // Use $response->getErrors() and $response->getErrorsCount() to check for any errors
            // Use $response->getConversionItems() to get the conversion that was approved, if it is
            // empty your conversion was already approved (or rejected).
        } else {
            // Wait some time and check again with getJobUpdate()
        }
    }
}

API

如果您需要更多信息或想为此客户端做出贡献,请访问Partnerize API 文档

许可证

此软件包受MIT许可证保护。请参阅软件包中的完整许可证