Buckets:
| 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.