Git Product home page Git Product logo

zohocrmclient's Introduction

ZohoCRMClient

Scrutinizer Quality Score Build Status

Provides a clean readable PHP API to the Zoho Rest API.

Usage

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Leads', 'yourAuthKey');

$records = $client->getRecords()
    ->selectColumns('First Name', 'Last Name', 'Email')
    ->sortBy('Last Name')->sortAsc()
    ->since(date_create('last week'))
    ->request();

echo 'Content: ' . print_r($records, true) . PHP_EOL;

Enabling logging

You can enable logging by adding the following line after instantiating the client:

$client->setLogger($myPsrLogger);

The logger should implement the PSR LoggerInterface. If the transport being used implements LoggerAwareInterface, this call will chaing to set the logger for the transport as well. The build in transport supports this.

Choosing a different Zoho realm

ZohoCRMClient will by default connect to the API at crm.zoho.com. If you wish to connect to a different one, you can supply the TLD as the third parameter to the constructor. For example, customer on the EU realm should instantiate the client like this:

$client = new ZohoCRMClient('Leads', 'yourAuthKey', 'eu');

Using custom transport

If we wish, you can supply a custom transport class to ZohoCRMClient, as shown here:

$buzzTransport = new BuzzTransport(
    new \Buzz\Browser(new \Buzz\Client\Curl()),
    'https://crm.zoho.com/crm/private/xml/'
);
$buzzTransport->setLogger($logger);

$transport = new XmlDataTransportDecorator(
    new AuthenticationTokenTransportDecorator(
        'yourAuthKey',
        $buzzTransport
    )
);

$client = new ZohoCRMClient('Leads', $transport);

Implemented Calls

At the moment only the following calls are supported

It is rather easy to add new calls, look at one of the classes in the Request dir for examples. After the Request class is made it might be necessary to alter the parsing of the response XML in the XmlDataTransportDecorator class.

More examples

insertRecords()

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Contacts', 'yourAuthKey');

$records = $client
            ->insertRecords()
            ->addRecord([
                'Email' => '[email protected]',
                'First Name' => 'John'
            ])
            ->request();

Optionally, you can add onDuplicateUpdate() or onDuplicateError() to the chain, before request(), to instruct Zoho to either update or fail on duplicated records. Duplicate checking depends on the module being targeted, see the list in the Zoho documentation.

The $records array will contain an entry for each record you have tried to create, which on success will contain the ID of the new (or updated) record.

updateRecords()

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Contacts', 'yourAuthKey');

$records = $client
            ->updateRecords()
            ->addRecord([
                'Id' => '(ID returned from insert, search, ...)'
                'Last Name' => 'Smith'
            ])
            ->request();

Specifying the ID per record is necessary when updating multiple records. Alternatively, you may call id() to set the ID if you are only updating a single record. Setting the ID per record works in either case.

searchResults()

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Contacts', 'yourAuthKey');

$records = $client
            ->searchRecords()
            ->criteria('Email:[email protected]')
            ->request();

See the Zoho documentation for the full explanation of how to write the criteria.

zohocrmclient's People

Contributors

christiaan avatar runemoennike avatar gwagner avatar deathnerd avatar

Watchers

James Cloos avatar The Digital Orchard avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.