Jamesbrendamour's picture
|
download
raw
4.78 kB
---
title: Getting Started - Sage Intacct SDK for PHP | Sage Intacct Developer
url: https://developer.intacct.com/tools/sdk-php/getting-started/
---
# Getting Started - Sage Intacct SDK for PHP | Sage Intacct Developer
Overview
Getting Started
List AR Invoices
List Vendors (Legacy)
CRUD Customer
Custom Object Function
Troubleshooting
* Set up
* Understand the code
* Run the example
* Extra credit
+ Log level and format
* What’s next?
---
This tutorial will get you up and running quickly with the Sage Intacct SDK for PHP.
Make sure you meet the system requirements before continuing.
---
## Set up
1. Download or clone the Sage Intacct SDK for PHP examples.
2. Create a new PHP project for the examples in your IDE of choice (PHPStorm, NetBeans, etc.).
3. Note that the `composer.json` file in the project root specifies the Sage Intacct SDK for PHP (`intacct/intacct-sdk-php`) as a dependency.
4. Open a terminal window in the root folder and run `composer install`.
This creates a `vendor` folder and adds the Sage Intacct SDK for PHP libraries and dependencies.
5. Create a `.credentials.ini` file in the root folder and provide your developer/sandbox credentials as follows:
```xml
[default]
sender_id = "mysenderid"
sender_password = "mysenderpassword"
company_id = "mycompanyid"
user_id = "myuserid"
user_password = "myuserpassword"
```
The `default` profile is automatically used unless overridden in the `ClientConfig` or by environment variables.
**Note:** The credentials file is excluded from source control via the `.gitignore` file. You should take precautions to secure this file.
---
## Understand the code
1. Take a look at `bootstrap.php` in the project root and note that it:
* Includes the Composer autoloader:
```xml
$loader = require __DIR__ . '\vendor\autoload.php';
```
* Sets up a Monolog HTML logger.
```xml
$logger = new \Monolog\Logger('intacct-sdk-php-examples');
```
* Creates a client config that relies on your credentials file:
```xml
$clientConfig = new ClientConfig();
$clientConfig->setProfileFile(__DIR__ . '/.credentials.ini');
```
* Creates an online client that uses the client config:
```xml
$client = new OnlineClient($clientConfig);
```
2. Open `getting-started.php` and note that it:
* Requires `bootstrap.php`:
```xml
require __DIR__ . '/bootstrap.php';
```
* Constructs a `Read` object to get information about a customer with the record number 33:
```xml
$read = new Read();
$read->setObjectName('CUSTOMER');
$read->setFields([
'CUSTOMERID',
'NAME',
'RECORDNO',
'STATUS',
]);
$read->setKeys([
33
]);
```
* Executes the query using the online client instance (`$client`) that was instantiated in the bootstrap file:
```xml
$response = $client->execute($read);
$result = $response->getResult();
```
## Run the example
1. Run the `getting-started.php` file:
```xml
php getting-started.php
```
2. Observe the terminal output, for example:
```xml
Result:
[{"CUSTOMERID":"C-9829","NAME":"Jenifer Jones","RECORDNO":"33","STATUS":"active"}]
```
3. If you don’t get a result, replace the example record number with one or more that can be found in your company, for example:
```xml
$read->setKeys([
12, 10, 44
]);
```
4. Open the generated `logs/intacct.html` file in your browser and review the entries.
The SDK provided one debug entry for the HTTP request with the Sage Intacct endpoint (/ia/xml/xmlgw.phtml HTTP/1.1), and another for the single response. The response includes the request control ID, which defaults to the timestamp of the request, and the function control ID, which defaults to a random UUID.
---
## Extra credit
### Log level and format
1. Add the following lines to the bottom of the bootstrap file to change the SDK’s log message format and log level:
```xml
$formatter = new \Intacct\Logging\MessageFormatter(
'"{method} {target} HTTP/{version}" {code}'
);
$client->getConfig()->setLogLevel(\Psr\Log\LogLevel::INFO);
$client->getConfig()->setLogMessageFormatter($formatter);
```
2. Run the PHP file again, then open `logs/intacct.html` and review the new entries at the bottom. Note the response code is listed after the HTTP method in the second INFO block.
```xml
"POST /ia/xml/xmlgw.phtml HTTP/1.1" 200
```
---
## What’s next?
* Read the SDK overview for high level information.
* Try an example that lists AR invoices based on attributes of associated customers.
* Browse the reference documentation for the SDK.
Provide feedback

Xet Storage Details

Size:
4.78 kB
·
Xet hash:
1d773759aadc83924fa20b9421c652ed609a458799bf1dd99b7c0804b82c75e2

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.