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.
You can install Omnisend PHP-SDK by either using Composer either by downloading and including it manually.
- Run these commands:
composer require omnisend/php-sdk
composer install
- Add the autoloader to your application:
require_once("vendor/autoload.php");
Note: check and correct, if needed, "vendor/autoload.php" path.
Download the Omnisend.php
file and include it manually:
require_once('Omnisend.php');
Note: check and correct if needed "Omnisend.php" path.
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) - makesPUT
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.
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"
}
}
}
- Create an instance with your API key and options (optional)
$omnisend = new Omnisend('your-api-key');
- Make a request, for example, create a new contact in Omnisend:
$contacts = $omnisend->post(
'contacts',
array(
"email" => "[email protected]",
"firstName" => "Vanessa",
"lastName" => "Kensington",
"status" => "subscribed",
"statusDate" => "2018-12-11T10:29:43+00:00"
)
);
- 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