v1.0.5
1.0.5.0A Laravel 5 wrapper for Xero's PHP API
The Requires
- drawmyattention/xero-php dev-attachmentfix
by Amo Chohan
v1.0.3
1.0.3.0A Laravel 5 wrapper for Xero's PHP API
The Requires
- drawmyattention/xero-php 1.2.1
by Amo Chohan
Wallogit.com
2017 © Pedro Peláez
A Laravel 5 wrapper for Xero's PHP API
A Laravel 5 wrapper for calcinai/xero-php (a custom API for integrating with Xero)., (*2)
Require the package, (*3)
composer require drawmyattention/xerolaravel "1.0.*"
Add the Service Provider to your config/app.php under providers, (*4)
'DrawMyAttention\XeroLaravel\Providers\XeroServiceProvider',
**Register the Facades within config/app.php under aliases, (*5)
'XeroPrivate'=> 'DrawMyAttention\XeroLaravel\Facades\XeroPrivate',
Publish the configuration file, (*6)
php artisan vendor:publish
This will create a xero/config.php within your config directory. (Note: Ensure that you have generated the
necessary tokens and have generated the RSA keys required by Xero for authentication.) Edit the relevant values in the
config.php file., (*7)
Ensure that the location of the RSA keys matches the required format (file://absolutepath), (*8)
This Service Provider current wraps the calcinai/xero-php version 1.1.* package., (*9)
Additionally, you must have PHP installed with the following extensions:, (*10)
There are two ways to use the classes: via the IoC container, or via a Facade. They both offer the same functionality, so use each depending on your preference., (*11)
Facade, (*12)
$invoices = XeroPrivate::load('Accounting\\Invoice')->execute();
IoC Container, (*13)
// Create an instance of the class, resolved out of the IoC container
$xero = $this->app->make('XeroPrivate');
$invoices = $xero->load('Accounting\\Invoice')->execute();
Facade, (*14)
$invoice = XeroPrivate::loadByGUID('Accounting\\Invoice', 'inv-0004);
IoC Container, (*15)
$xero = $this->app->make('XeroPrivate');
$invoice = $xero->loadByGUID('Accounting\\Invoice', 'inv-0004);
Facade, (*16)
$invoice = XeroPrivate::loadByGUID('Accounting\\Invoice', 'inv-0004);
$invoice->setStatus('Paid');
XeroPrivate::save($invoice);
IoC Container, (*17)
$xero = $this->app->make('XeroPrivate');
$invoice = $xero->loadByGUID('Accounting\\Invoice', 'inv-0004);
$invoice->setStatus('Paid');
$xero->save($invoice);
/*
* Resolve instances of Xero, XeroInvoice, XeroContact
* and XeroInvoiceLine out of the IoC container.
*/
$xero = $this->app->make('XeroPrivate');
$invoice = $this->app->make('XeroInvoice');
$contact = $this->app->make('XeroContact');
$line1 = $this->app->make('XeroInvoiceLine');
$line2 = $this->app->make('XeroInvoiceLine');
// Set up the invoice contact
$contact->setAccountNumber('DMA01');
$contact->setContactStatus('ACTIVE');
$contact->setName('Amo Chohan');
$contact->setFirstName('Amo');
$contact->setLastName('Chohan');
$contact->setEmailAddress('amo.chohan@gmail.com');
$contact->setDefaultCurrency('GBP');
// Assign the contact to the invoice
$invoice->setContact($contact);
// Set the type of invoice being created (ACCREC / ACCPAY)
$invoice->setType('ACCREC');
$dateInstance = new DateTime();
$invoice->setDate($dateInstance);
$invoice->setDueDate($dateInstance);
$invoice->setInvoiceNumber('DMA-00001');
$invoice->setReference('DMA-00001');
// Provide an URL which can be linked to from Xero to view the full order
$invoice->setUrl('http://yourdomain/fullpathtotheorder');
$invoice->setCurrencyCode('GBP');
$invoice->setStatus('Draft');
// Create some order lines
$line1->setDescription('Blue tshirt');
$line1->setQuantity(1);
$line1->setUnitAmount(99.99);
$line1->setTaxAmount(0);
$line1->setLineAmount(99.99);
$line1->setDiscountRate(0); // Percentage
// Add the line to the order
$invoice->addLineItem($line1);
// Repeat for all lines...
$xero->save($invoice);
$xero = $this->app->make('XeroPrivate');
$attachment = $this->app->make('XeroAttachment')
->createFromLocalFile(storage_path('your_file.pdf'));
$invoice = $xero->loadByGUID('Accounting\\Invoice', 'AMO-00002');
$invoice->addAttachment($attachment);
A Laravel 5 wrapper for Xero's PHP API
A Laravel 5 wrapper for Xero's PHP API