megachriz / afasprofit
An API to connect to Afas Profit written in PHP.
Installs: 10 152
Dependents: 0
Suggesters: 0
Security: 0
Stars: 16
Watchers: 5
Forks: 10
Open Issues: 2
pkg:composer/megachriz/afasprofit
Requires
- php: >=8.1
- drupal/core-plugin: ^9.0|^10.0|^11.0
- megachriz/classtools: ^1.3
- openlss/lib-array2xml: ~0.0
- symfony/dependency-injection: >=4.4 <8.0.0
- symfony/finder: >=4.4 <8.0.0
Requires (Dev)
- kzykhys/php-csv-parser: ~1.4
- phpunit/phpunit: ~8.5
- symfony/event-dispatcher: >=4.4 <8.0.0
Suggests
- kzykhys/php-csv-parser: To use the getListFromCsv() method from the service 'afas.country.manager'.
- symfony/event-dispatcher: To react on Profit calls.
This package is not auto-updated.
Last update: 2026-02-26 16:18:03 UTC
README
An API to connect to Afas Profit written in PHP.
Features:
- Getting data from Profit GetConnectors.
- Insert, update or delete data into Profit using Profit UpdateConnectors.
- Getting files from Profit using Profit Subjectconnectors.
- Getting UpdateConnectors XML Schema's using the Profit DataConnector.
Usage
Get data from Profit (GetConnector):
use Afas\Core\Server;
// Initialize server.
$server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234');
// Get data from GetConnector 'Products', filter by 'sku'.
$products = $server->get('Products')
->filter('sku', '2612')
->execute()
->asArray();
Insert data into Profit (UpdateConnector):
use Afas\Core\Server;
// Initialize server.
$server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234');
// Insert an order into Profit.
$server->insert('FbSales', [
'OrNu' => 'test_001',
'DbId' => 123456,
'War' => 1,
'FbSalesLines' => [
[
'ItCd' => 1201,
'QuUn' => 1,
],
[
'ItCd' => 1202,
'QuUn' => 1,
],
],
])
->execute();
Update data into Profit (UpdateConnector):
use Afas\Core\Server;
// Initialize server.
$server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234');
// Update an existing order, change quantity of existing item.
$server->update('FbSales', [
'OrNu' => 'test_001',
'FbSalesLines' => [
[
'GuLi' => '{6BA270E1-BFA7-4B67-86FF-72391A2CB5E3}',
'QuUn' => 2,
],
],
])
->execute();
Delete data from Profit (UpdateConnector):
use Afas\Core\Server;
// Initialize server.
$server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234');
$server->delete('FbSales', [
'OrNu' => 'test_001',
])
->execute();
Get a file from Profit (SubjectConnector):
use Afas\Afas;
use Afas\Core\Connector\SubjectConnector;
use Afas\Core\Server;
// Initialize server.
$server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234');
// Create Soap client.
/** @var \Afas\Component\Soap\SoapClientInterface $client */
$client = Afas::service('afas.soap_client_factory')->create($server);
// Create SubjectConnector.
$connector = new SubjectConnector($client, $server);
// To get an attachment, pass a subject ID and a file ID.
$attachment = $connector->getAttachment(300001, '8D36870843A516C2514D74BE69F87E15');
Get a XML Schema for a Profit UpdateConnector from Profit (DataConnector):
use Afas\Afas;
use Afas\Core\Connector\DataConnector;
use Afas\Core\Server;
// Initialize server.
$server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234');
// Create Soap client.
/** @var \Afas\Component\Soap\SoapClientInterface $client */
$client = Afas::service('afas.soap_client_factory')->create($server);
// Create DataConnector.
$connector = new DataConnector($client, $server);
// Get schema.
/** @var \Afas\Core\Result\DataConnectorResult $result */
$result = $connector->getXmlSchema('FbSales');
// Save complete schema.
file_put_contents('FbSales.xsd', $result->asArray()[0]['Schema']);
// Or save without custom fields.
file_put_contents('FbSales.xsd', $result->removeCustomFieldsFromSchema()[0]['Schema']);