- Installation
- Usage
- Optional PSR transport (no BC break)
- E-commerce (Products / Orders / Customers)
- Testing
- License
- PHP 7.4
- An API Key from MailerLite
- PSR-7 and PSR-18 based HTTP adapter
composer require mailerlite/mailerlite-phpIf you get an error saying “Could not find resource using any discovery strategy.” it means that all the discovery strategies have failed. Most likely, your project is missing the message factories and/or a PRS-7 implementation. To resolve this you may run
$ composer require php-http/curl-client guzzlehttp/psr7 php-http/messageMore information on request parameters: https://developers.mailerlite.com/docs/subscribers.html
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$data = [
'email' => 'subscriber@example.com',
];
$response = $mailerLite->subscribers->create($data);Single record
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$subscriberId = '123';
$response = $mailerLite->subscribers->find($subscriberId);All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->subscribers->get();useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$subscriberId = '123',
$data = [
'fields' => [
'name' => 'Example',
],
];
$response = $mailerLite->subscribers->update($subscriberId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$subscriberId = '123';
$response = $mailerLite->subscribers->delete($subscriberId);More information on request parameters: https://developers.mailerlite.com/docs/campaigns.html
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$data = [
'type' => 'regular',
'name' => 'My new campaign',
'language_id' => 10,
'emails' => [
[
'subject' => 'My new email',
'from_name' => 'me',
'from' => 'me@example.com',
'content' => 'Hello World!',
]
],
'filter' => [],
];
$response = $mailerLite->campaigns->create($data);Single record
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$campaignId = '123';
$response = $mailerLite->campaigns->find($campaignId);All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$data = [
'filter' => ['status' => 'sent'],
];
$response = $mailerLite->campaigns->get($data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$campaignId = '123';
$data = [
'name' => 'Changed campaign name',
'emails' => [
[
'subject' => 'Changed email subject',
'from_name' => 'Changed from name',
'from' => 'changed@example.com',
]
],
];
$response = $mailerLite->campaigns->update($campaignId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$campaignId = '123';
$response = $mailerLite->campaigns->delete($campaignId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$campaignId = '123';
$data = [
'delivery' => 'instant',
];
$response = $mailerLite->campaigns->schedule($campaignId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$campaignId = '123';
$response = $mailerLite->campaigns->cancel($campaignId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$campaignId = '123';
$data = [
'type' => 'opened', ];
$response = $mailerLite->campaigns->getSubscriberActivity($campaignId, $data);More information on request parameters: https://developers.mailerlite.com/docs/groups.html
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$data = [
"name" => "New group",
];
$response = $mailerLite->groups->create($data);Single record
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$groupId = '123';
$response = $mailerLite->groups->find($groupId);All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->groups->get();useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$groupId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->groups->update($groupId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$groupId = '123';
$response = $mailerLite->groups->delete($groupId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$groupId = '123';
$response = $mailerLite->groups->getSubscribers($groupId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$groupId = '123';
$subscriberId = '456';
$response = $mailerLite->groups->assignSubscriber($groupId, $subscriberId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$groupId = '123';
$subscriberId = '456';
$response = $mailerLite->groups->unAssignSubscriber($groupId, $subscriberId);More information on request parameters: https://developers.mailerlite.com/docs/segments.html
All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->segments->get();useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$segmentId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->segments->update($segmentId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$segmentId = '123';
$response = $mailerLite->segments->delete($segmentId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$segmentId = '123';
$response = $mailerLite->segments->getSubscribers($segmentId);More information on request parameters: https://developers.mailerlite.com/docs/fields.html
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$data = [
"name" => "New field",
"type" => "text",
];
$response = $mailerLite->fields->create($data);All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->fields->get();useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$fieldId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->fields->update($fieldId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$fieldId = '123';
$response = $mailerLite->fields->delete($fieldId);More information on request parameters: https://developers.mailerlite.com/docs/forms.html
All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->forms->get('popup', []);Single
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$formId = '123';
$response = $mailerLite->forms->find($formId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$formId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->forms->update($formId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$formId = '123';
$response = $mailerLite->forms->delete($formId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$formId = '123';
$response = $mailerLite->forms->getSignups($formId);More information on request parameters: https://developers.mailerlite.com/docs/automations.html
All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->automations->get([]);Single
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$automationId = '123';
$response = $mailerLite->automations->find($automationId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$automationId = '123';
$data = [
'filter' => [
'status' => 'active',
],
];
$response = $mailerLite->automations->activity($automationId, $data);More information on request parameters: https://developers.mailerlite.com/docs/webhooks.html
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$data = [
"name" => "Name",
"events" => ["subscriber.created"],
"url": "https://www.cartwright.info/eligendi-soluta-corporis-in-quod-ullam",
];
$response = $mailerLite->webhooks->create($data);All records
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->webhooks->get([]);Single
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$webhookId = '123';
$response = $mailerLite->webhooks->find($webhookId);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$webhookId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->webhooks->update($webhookId, $data);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$webhookId = '123';
$response = $mailerLite->webhooks->delete($webhookId);More information about request parameters on https://developers.mailerlite.com/docs/campaign-languages.html
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->campaignLanguages->get();More information about request parameters on https://developers.mailerlite.com/docs/timezones.html
useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$response = $mailerLite->timezones->get();More information about request parameters on https://developers.mailerlite.com/docs/batching.html
E-commerce endpoints follow:
/api/ecommerce/shops/{shopId}/...shopId is provided per call (there is no separate /shops API).
Products
$res = $mailerLite->ecommerceProducts->create('YOUR_SHOP_ID', [
'title' => 'Red T-shirt',
'price' => 19.99,
'currency' => 'USD',
]);
$res = $mailerLite->ecommerceProducts->find('YOUR_SHOP_ID', 'PRODUCT_ID');
$res = $mailerLite->ecommerceProducts->update('YOUR_SHOP_ID', 'PRODUCT_ID', [
'title' => 'New title',
]);Orders
$res = $mailerLite->ecommerceOrders->create('YOUR_SHOP_ID', [
'order_id' => 'ORD-1001',
]);
$res = $mailerLite->ecommerceOrders->find('YOUR_SHOP_ID', 'ORD-1001');
$res = $mailerLite->ecommerceOrders->update('YOUR_SHOP_ID', 'ORD-1001', [
'status' => 'paid',
]);Customers
$res = $mailerLite->ecommerceCustomers->get('YOUR_SHOP_ID', ['limit' => 50]);
$res = $mailerLite->ecommerceCustomers->create('YOUR_SHOP_ID', ['email' => 'user@example.com']);
$res = $mailerLite->ecommerceCustomers->find('YOUR_SHOP_ID', 'CUSTOMER_ID');useMailerLite\MailerLite;
useMailerLite\Http\Adapters\Psr17FactoryAggregate;
useNyholm\Psr7\Factory\Psr17Factory; useGuzzleHttp\ClientasGuzzleHttpClient; $ml = newMailerLite(['api_key' => 'YOUR_API_KEY']);
$psr17 = newPsr17Factory();
$factories = newPsr17FactoryAggregate($psr17, $psr17);
$httpClient = newGuzzleHttpClient();
$ml->enablePsrTransport($httpClient, $factories, 'YOUR_API_KEY', 'https://connect.mailerlite.com');
$ml->subscribers->create(['email' => 'subscriber@example.com']);useMailerLite\MailerLite;
$mailerLite = newMailerLite(['api_key' => 'key']);
$data = [
'requests' => [
[
'method' => 'post',
'path' => 'api/subscribers',
'body' => [
'email' => 'new_subscriber@mail.com'
]
]
]
];
$response = $mailerLite->batches->send($data);composer testIn case you find any bugs, submit an issue directly here in GitHub.
You are welcome to create SDK for any other programming language.
If you have any troubles using our API or SDK free to contact our support by email info@mailerlite.com