Je suis très nouveau sur QuickBooks. J'ai créé un compte d'essai dans Quick Books et je veux ajouter des clients, créer des factures ou des choses similaires à mon compte. J'ai téléchargé le SDK php depuis github. Maintenant, je n'ai aucune idée de comment commencer, d'où commencer pour ajouter le client à mon compte après que le client a passé la commande à partir de mon site Web. Quelqu'un peut-il m'aider avec une documentation détaillée ou des exemples pour que je puisse avancer. Je n'ai aucune connaissance du connecteur d'application Web. Je suis totalement nouveau. Merci..
Cela va être une réponse en deux parties, car vous n'avez pas spécifié si vous utilisez QuickBooks ONLINE ou QuickBooks pour WINDOWS.
Le processus sera différent en fonction de celui que vous utilisez, alors faites attention aux en-têtes gras ci-dessous:
Pour QuickBooks EN LIGNE:
Si vous utilisez QuickBooks open source PHP DevKit de GitHub, alors le meilleur endroit pour commencer est le QuickBooks en ligne avec PHP quick-start guide.
La toute première chose à faire est d'enregistrer votre application auprès d'Intuit. Lorsque vous faites cela, Intuit vous donnera ces variables:
Vous allez remplacer ces variables dans le fichier config.php inclus dans l'exemple. Vous mettrez également à jour ces valeurs pour pointer vers votre application:
Au-delà, vous pouvez laisser toutes les autres variables dans config.php à leurs valeurs par défaut.
Si vous visitez ensuite le fichier index.php, il vous invitera à vous connecter à QuickBooks. Vous pouvez vous connecter, puis visiter les fichiers d'exemple. Voici quelques exemples d'ajout de clients/commandes à QuickBooks en ligne:
Le code finit par ressembler à quelque chose comme:
$CustomerService = new QuickBooks_IPP_Service_Customer();
$Customer = new QuickBooks_IPP_Object_Customer();
$Customer->setTitle('Mr');
$Customer->setGivenName('Keith');
$Customer->setMiddleName('R');
$Customer->setFamilyName('Palmer');
$Customer->setDisplayName('Keith R Palmer Jr ' . mt_Rand(0, 1000));
// Phone #
$PrimaryPhone = new QuickBooks_IPP_Object_PrimaryPhone();
$PrimaryPhone->setFreeFormNumber('860-532-0089');
$Customer->setPrimaryPhone($PrimaryPhone);
// Bill address
$BillAddr = new QuickBooks_IPP_Object_BillAddr();
$BillAddr->setLine1('72 E Blue Grass Road');
$BillAddr->setLine2('Suite D');
$BillAddr->setCity('Mt Pleasant');
$BillAddr->setCountrySubDivisionCode('MI');
$BillAddr->setPostalCode('48858');
$Customer->setBillAddr($BillAddr);
if ($resp = $CustomerService->add($Context, $realm, $Customer))
{
print('Our new customer ID is: [' . $resp . ']');
}
Pour implémenter des fonctionnalités supplémentaires, vous trouverez d'autres exemples inclus dans le code.
Les objets/méthodes disponibles reflètent également la documentation d'Intuit donc vous voudrez regarder cela.
Pour QuickBooks pour WINDOWS:
Pour QuickBooks pour Windows, vous utiliserez le connecteur Web. Encore une fois, commencez par le QuickBooks open source PHP DevKit de GitHub. Utilisez le QuickBooks pour Windows + PHP quick -start guide à la place.
Cela vous guidera dans la configuration d'un service Web Connector simple qui ajoute des clients de test à QuickBooks.
Fondamentalement, vous créez un fichier .QWC que vous chargez dans QuickBooks Web Connector (Démarrer> Tous les programmes> QuickBooks> Web Connector). Ce fichier .QWC pointera vers un script PHP qui négocie la connexion entre QuickBooks et PHP . Tout ce que vous avez à faire dans cet exemple de script est d'échanger cette variable:
Pour chaque nouvelle fonctionnalité que vous souhaitez ajouter, vous finirez par écrire une nouvelle fonction de demande et de réponse, comme détaillé dans les QuickBooks Web Connector + PHP docs .
Votre code finira par ressembler à quelque chose comme:
function _quickbooks_customer_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
{
// You'd probably do some database access here to pull the record with
// ID = $ID from your database and build a request to add that particular
// customer to QuickBooks.
//
// So, when you implement this for your business, you'd probably do
// something like this...:
/*
// Fetch your customer record from your database
$record = mysql_fetch_array(mysql_query("SELECT * FROM your_customer_table WHERE your_customer_ID_field = " . (int) $ID));
// Create and return a qbXML request
$qbxml = '<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="2.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<CustomerAddRq requestID="' . $requestID . '">
<CustomerAdd>
<Name>' . $record['your_customer_name_field'] . '</Name>
<CompanyName>' . $record['your_customer_company_field'] . '</CompanyName>
... lots of other customer related fields ...
</CustomerAdd>
</CustomerAddRq>
</QBXMLMsgsRq>
</QBXML>';
return $qbxml;
*/
// But we're just testing, so we'll just use a static test request:
$xml = '<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="2.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<CustomerAddRq requestID="' . $requestID . '">
<CustomerAdd>
<Name>ConsoliBYTE, LLC (' . mt_Rand() . ')</Name>
<CompanyName>ConsoliBYTE, LLC</CompanyName>
<FirstName>Keith</FirstName>
<LastName>Palmer</LastName>
<BillAddress>
<Addr1>ConsoliBYTE, LLC</Addr1>
<Addr2>134 Stonemill Road</Addr2>
<City>Mansfield</City>
<State>CT</State>
<PostalCode>06268</PostalCode>
<Country>United States</Country>
</BillAddress>
<Phone>860-634-1602</Phone>
<AltPhone>860-429-0021</AltPhone>
<Fax>860-429-5183</Fax>
<Email>[email protected]</Email>
<Contact>Keith Palmer</Contact>
</CustomerAdd>
</CustomerAddRq>
</QBXMLMsgsRq>
</QBXML>';
return $xml;
}
Vous pouvez trouver des références qbXML supplémentaires en utilisant QuickBooks OSR .
Nous fournissons également un wiki avec beaucoup d'exemples de requêtes qbXML que vous pouvez utiliser.
À partir du SDK, utilisez example_ipp_ids_6.php pour ajouter des clients.
Voici le lien vers le code complet sur GitHub:
Et un guide de démarrage rapide:
example_ipp_ids_6.php
<?php
// Turn on some error reporting
error_reporting(E_ALL);
ini_set('display_errors', 1);
header('Content-Type: text/plain');
/**
* Require the QuickBooks library
*/
require_once dirname(__FILE__) . '/../QuickBooks.php';
/**
* Require some IPP/OAuth configuration data
*/
require_once dirname(__FILE__) . '/example_ipp_config.php';
// Set up the IPP instance
$IPP = new QuickBooks_IPP($dsn);
// Set up our IntuitAnywhere instance
$IntuitAnywhere = new QuickBooks_IPP_IntuitAnywhere($dsn, $encryption_key, $oauth_consumer_key, $oauth_consumer_secret);
// Get our OAuth credentials from the database
$creds = $IntuitAnywhere->load($the_username, $the_tenant);
// Tell the framework to load some data from the OAuth store
$IPP->authMode(
QuickBooks_IPP::AUTHMODE_OAUTH,
$the_username,
$creds);
// Print the credentials we're using
//print_r($creds);
// This is our current realm
$realm = $creds['qb_realm'];
// Load the OAuth information from the database
if ($Context = $IPP->context())
{
// Set the DBID
$IPP->dbid($Context, 'something');
// Set the IPP flavor
$IPP->flavor($creds['qb_flavor']);
// Get the base URL if it's QBO
if ($creds['qb_flavor'] == QuickBooks_IPP_IDS::FLAVOR_ONLINE)
{
$IPP->baseURL($IPP->getBaseURL($Context, $realm));
}
print('Base URL is [' . $IPP->baseURL() . ']' . "\n\n");
$CustomerService = new QuickBooks_IPP_Service_Customer();
$Customer = new QuickBooks_IPP_Object_Customer();
$Customer->setName('Willy Wonka #' . mt_Rand(0, 1000));
$Customer->setGivenName('Willy');
$Customer->setFamilyName('Wonka');
$resp = $CustomerService->add($Context, $realm, $Customer);
print_r($Customer);
print('New customer is [' . $resp . ']' . "\n\n");
print("\n\n\n\n");
print('Request [' . $IPP->lastRequest() . ']');
print("\n\n\n\n");
print('Response [' . $IPP->lastResponse() . ']');
print("\n\n\n\n");
}
else
{
die('Unable to load a context...?');
}
Configurez vos clés et votre nom d'utilisateur dans example_ipp_config.php
<?php
/**
* Intuit Partner Platform configuration variables
*
* See the scripts that use these variables for more details.
*
* @package QuickBooks
* @subpackage Documentation
*/
// Your OAuth token (Intuit will give you this when you register an Intuit Anywhere app)
$token = 'c640731cb411db4132b8475b4198a7efae08';
// Your OAuth consumer key and secret (Intuit will give you both of these when you register an Intuit app)
//
// IMPORTANT:
// To pass your tech review with Intuit, you'll have to AES encrypt these and
// store them somewhere safe.
//
// The OAuth request/access tokens will be encrypted and stored for you by the
// PHP DevKit IntuitAnywhere classes automatically.
$oauth_consumer_key = 'qyprdzUiOLX60UK4cMwYhg1QVGfOGT';
$oauth_consumer_secret = '32mIB75pqqPreOADcxRvryC0fBduJhnRr52JfUdf';
// This is the URL of your OAuth auth handler page
$this_url = 'http://localhost/quick/docs/example_ipp_oauth.php';
// This is the URL to forward the user to after they have connected to IPP/IDS via OAuth
$that_url = 'http://localhost/quick/docs/example_ipp_ids_6.php';
// This is a database connection string that will be used to store the OAuth credentials
// $dsn = 'pgsql://username:password@hostname/database';
// $dsn = 'mysql://username:password@hostname/database';
$dsn = 'mysql://root:@localhost/quickbooks';
// You should set this to an encryption key specific to your app
$encryption_key = 'abcd1234';
// The user that's logged in
$the_username = '[email protected]';
// The tenant that user is accessing within your own app
$the_tenant = 12345;
// Initialize the database tables for storing OAuth information
if (!QuickBooks_Utilities::initialized($dsn))
{
// Initialize creates the neccessary database schema for queueing up requests and logging
QuickBooks_Utilities::initialize($dsn);
}