omnisend/php-sdk

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (1.2) of this package.

Simple to use Omnisend API v3 wrapper

1.2 2020-07-24 05:32 UTC

This package is auto-updated.

Last update: 2025-03-29 00:35:56 UTC


README

Simple Omnisend API v3 wrapper in PHP.

Omnisend API v3 documentation can be found here.

Requires PHP > 5.3, cURL or allow_url_fopen to be enabled.

Installation

You can install Omnisend PHP-SDK by either using Composer either by downloading and including it manually.

Install using a composer

  1. Run these commands:
composer require omnisend/php-sdk
composer install
  1. Add the autoloader to your application:
require_once("vendor/autoload.php");

Note: check and correct, if needed, "vendor/autoload.php" path.

Install manually

Download the Omnisend.php file and include it manually:

require_once('Omnisend.php'); 

Note: check and correct if needed "Omnisend.php" path.

Available methods & options

Creating instance with your API Key and options (optional)

$options = array(
    'timeout' => 30,
    'verifySSL' => false
);
$omnisend = new Omnisend('API-KEY', $options);

Available options:

Name Type Description
timeout int Timeout. If not passed - will be calculated depending on PHP max_execution_time
verifySSL bool Default - true. Enable (true) or disable (false) SSL verification.

Available methods

endpoint - endpoint url (ex. 'contacts', 'products/prod123'). See documentation for available endpoints.

queryParams - array of query parameters

fields - array of fields

  • getSnippet() - returns html snippet code
  • get(endpoint, queryParams) - make GET request.
  • push(endpoint, fields, queryParams) - makes POST request. If error occurs (resource exists in Omnisend) - makes PUT request. This method can be used if you don't know if item exists in Omnisend. queryParams - optional.
  • post(endpoint, fields, queryParams) - make POST request. Used to create new item in Omnisend. Will return an error if an item already exists in Omnisend. queryParams - optional.
  • put(endpoint, fields, queryParams) - make PUT request. Used to replace item in Omnisend. Will return an error if an item doesn't exists in Omnisend. queryParams - optional.
  • patch(endpoint, fields, queryParams) - make PATCH request. Used to update item in Omnisend. Will return an error if an item doesn't exists in Omnisend. queryParams - optional.
  • delete(endpoint, queryParams) - make DELETE request. Used to delete item in Omnisend. Will return an error if an item doesn't exists in Omnisend. queryParams - optional.

Responses

Each method will return false in case of an error, array (see documentation for responses) or true (for empty body (204) responses) in case of a success.

So you can easily check if a request was successful:

$cart = $omnisend->delete('carts/cart-123');
if ($cart) {
    //request was successful
} else {
    //there was an error
}

In case of a failed request, you can get an error description with lastError():

 var_dump($omnisend->lastError());

Output will be an array with:

  • error - error description
  • statusCode - HTTP response status code
  • fields - optional - array of missing required, incorrect or incorrectly formatted fields (passed with a request)

Example:

array {
  ["error"]=> "2 error(s) found. Check 'fields' array for details."
  ["statusCode"]=> 400
  ["fields"]=>
  array {
    [0]=>
    array {
      [0]=> "cartSum: field required but not found in Json"
    }
    [1]=>
    array {
      [0]=> "currency: field required but not found in Json"
    }
  }
}

Examples

  1. Create an instance with your API key and options (optional)
$omnisend = new Omnisend('your-api-key');
  1. Make a request, for example, create a new contact in Omnisend:
$contacts = $omnisend->post(
  'contacts',
   array(
       "email" => "vanessa.kensington@example.com", 
       "firstName" => "Vanessa", 
       "lastName" => "Kensington", 
       "status" => "subscribed", 
       "statusDate" => "2018-12-11T10:29:43+00:00"
    )
);
  1. Check if a request was successful:
if ($contacts) {
    //request was successful

    //print response
    print_r($contacts); 
    //get contactID from response
    $contactID = $contacts['contactID'];
} else {
    //there was an error
    print_r($omnisend->lastError());
}

See more examples in examples/examples.php