0.2 2021-08-16 09:10 UTC

This package is auto-updated.

Last update: 2024-04-17 15:43:29 UTC


README

build

API documentation

https://peoplevox.github.io/Documentation/

Current features

  • data export,
  • data import,
  • code generation for data import templates.

Example usage

use MHD\Peoplevox\Api\Client;
use MHD\Peoplevox\Api\SessionProvider;
use MHD\Peoplevox\Data\Credentials;
use MHD\Peoplevox\Data\SearchClause;

$wsdl = "https://{your-WMS-Web-Address}/resources/integrationservicev4.asmx?wsdl";
$soapClient = new SoapClient($wsdl);
$credentials = new Credentials('clientId', 'username', 'password');

$sessionProvider = new SessionProvider($soapClient, $credentials);
$peoplevoxClient = new Client($soapClient, $sessionProvider);

# get sales orders
$salesOrders = $peoplevoxClient->getData('Sales orders');
# ...

# get sales orders using search clause
$salesOrders = $peoplevoxClient->getData(
    'Sales orders',
    1,
    10,
    SearchClause::fieldValueIn("Customer", ["John Doe", "Jane Doe"])
);
# ...

Save template generation

In order to simplify save requests this library provides SaveTemplateGenerator class. Generated classes' properties will match your templates' configuration and should simplify data imports.

use MHD\Peoplevox\Utils\SaveTemplateGenerator;
use Nette\PhpGenerator\PsrPrinter;

# generate template
$saveTemplateGenerator = new SaveTemplateGenerator(
    $peoplevoxClient,
    new PsrPrinter()
);
$generatedTemplate = $saveTemplateGenerator->generateTemplate(
    'Sales orders',
    'Generated'
);
file_put_contents(
    './Generated/SaveSalesOrdersTemplate.php',
    $generatedTemplate
);

# use generated template
require_once './Generated/SaveSalesOrdersTemplate.php';

$newOrder = new Generated\SaveSalesOrdersTemplate();
$newOrder->SalesOrderNumber = '1234';
$newOrder->Customer = 'John Doe';
# ...

Event subscription

When subscribing to events, please keep in mind, that currently it is not possible to retrieve the list of already subscribed events, neither from the Peoplevox web panel nor API. You should consider saving at least the event type and returned subscription ID to keep track of already subscribed events and be able to unsubscribe in the future.

use MHD\Peoplevox\Api\Client;

$subscriptionId = $peoplevoxClient->subscribePostEvent(
    Client::EVENT_TYPE_AVAILABILITY_CHANGES,
    'https://example.org/ProcessAvailabilityChanges',
    'item={ItemCode}&available={Available}'
);
# save event type and subscription ID