2017 © Pedro Peláez
 

library traction-php

Traction API Library

image

noetix/traction-php

Traction API Library

  • Thursday, October 9, 2014
  • by noetix
  • Repository
  • 3 Watchers
  • 5 Stars
  • 4,003 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 5 Forks
  • 1 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

About

Traction is a relationship marketing platform that makes it easy to manage multi-channel campaigns and build brand advocacy through the effective use of data., (*1)

This is a PHP implementation of their API., (*2)

  • PHP 5.3+ Library
  • Curl Transport (via [Buzz][2])

Example

Classic API

<?php

use Traction\Request\Type\Customer;
use Traction\Request\Promotion;
use Traction\Handler;

// use the customer class to structure your customer information
$customer = new Customer;
$customer->setEmailOpt(Customer::OPT_IN);
$customer->setFirstName('John');
$customer->setLastName('Smith');
$customer->setEmail('john@example.com');

// create a promotion request
$promo = new Promotion;
$promo->setPromotionId(12345);
$promo->setMatchKey(Promotion::MATCHKEY_EMAIL);
$promo->setMatchValue('john@example.com');
$promo->setCustomer($customer);
$promo->addCustomAttribute('123456', 'here is a custom field');
$promo->addSnippet('use array fields');
$promo->addSnippet('as arrays!');

// create an instance of the request handler
$handler = new Handler(array(
    'endpoint_id' => '12345',
    'user_id'     => 'foo',
    'password'    => 'bar'
    ));

// send it
$response = $handler->submit($promo);

Dynamic API

use Traction\Request\Competition;
use Traction\DynamicHandler;

// Create Entry
$comp = new Competition();
$comp->addAttribute('EMAIL', $entry->getEmail());
$comp->addAttribute('FIRSTNAME', $entry->getFirstName());
$comp->addAttribute('LASTNAME', $entry->getSurname());
$comp->addAttribute('LNDM_DATE_OF_BIRTH', $entry->getDob()->format('d/m/Y'));
$comp->addAttribute('LNDM_PHONE_NUMBER', $entry->getMobile());
$comp->addAttribute('LNDM_ADDRESS_1', $entry->getStreet());
$comp->addAttribute('LNDM_STATE_NAME', $entry->getState());
$comp->addAttribute('LNDM_SUBURB', $entry->getSuburb());
$comp->addAttribute('LNDM_POSTCODE', $entry->getPostcode());
$comp->setSubscribe($entry->getOptin());

// create an instance of the request handler
$handler = new DynamicHandler(array(
    'connection' => 'd2342afexxxadfas23r',
    'password'    => 'bar'
));

// send it
$response = $traction->submit($comp);
return $response->getCustomerId();

The Versions

09/10 2014
24/09 2012