PHP code example of be-lenka / exponea-api

1. Go to this page and download the library: Download be-lenka/exponea-api library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

be-lenka / exponea-api example snippets


use belenka\ExponeaApi\Client;

$client = new Client([
    'public_key' => getenv('EXPONEA_PUBLIC_KEY'),
    'private_key' => getenv('EXPONEA_PRIVATE_KEY'),
    'project_token' => getenv('EXPONEA_PROJECT_TOKEN'),
]);
try {
    $systemTime = $client->tracking()->getSystemTime()->wait(); // returns SystemTime object
} catch (...) { ... }

$event = new Consent(
    new RegisteredCustomer('[email protected]'),
    Consent::CATEGORY_NEWSLETTER,
    Consent::ACTION_GRANT
);
try {
    $client->tracking()->addEvent($event)->wait(); // does not return anything
} catch (...) { ... }

$purchase = new Purchase(
    new RegisteredCustomer('[email protected]'),
    'PREFIX12345', // purchase id
    [
        new Item('012345', 2.99, 1),
    ], // purchase items
    'COD' // payment method
);
$purchaseItem = new PurchaseItem(
    new RegisteredCustomer('[email protected]'),
    'PREFIX12345', // purchase id
    '012345', // item id
    2.99, // price
    2, // quantity
    'SKU012345', // sku (stock keeping unit)
    'Product name',
    new Category('CAT1', 'Some > Category > Breadcrumb')
);

try {
    $properties = [
        'fidelity_points' => 657,
        'first_name' => 'Marian',
    ];

    $client->tracking()->updateCustomerProperties(
        new RegisteredCustomer('[email protected]'), $properties
    )->wait();
} catch (...) { ... }

try {
    $catalog = new Catalog('<exponea_catalog_id>');

    $response = $this->client
        ->catalog()
        ->getCatalogName($catalog)
        ->wait()
    ;
} catch (...) { ... }

try {
    $catalog = new Catalog('<exponea_catalog_id>');
    $catalog->setQueryParameters([
        'query' => 1,
        'field' => 'item_id',
        'count' => 1
    ]);

    $response = $this->client
        ->catalog()
        ->getCatalogItems($catalog)
        ->wait()
    ;
} catch (...) { ... }

try {
    $catalog = new Catalog('<exponea_catalog_id>');
    $catalog->setItemID(1);

    $response = $this->client
        ->catalog()
        ->getCatalogItem($catalog)
        ->wait()
    ;
} catch (...) { ... }

try {
    $catalogItem = new CatalogItem(1, '<exponea_catalog_id>');
    $catalogItem->setProperties([
        'code' => 'product_code',
        'active' => false,
        'title' => 'product title'
        // etc ...
    ]);

    $response = $this->client
        ->catalog()
        ->createCatalogItem($catalogItem)
        ->wait()
    ;
} catch (...) { ... }

try {
    $catalogItem = new CatalogItem(1, '<exponea_catalog_id>');
    $catalogItem->setProperties([
        'title' => 'new product title'
        // etc ...
    ]);

    $response = $this->client
        ->catalog()
        ->updateCatalogItem($catalogItem)
        ->wait()
    ;
} catch (...) { ... }