forked from LiveCarta/PayPal-PHP-SDK
73 lines
2.4 KiB
PHP
73 lines
2.4 KiB
PHP
<?php
|
|
|
|
// # Create Invoice Template Sample
|
|
// This sample code demonstrate how you can create
|
|
// an invoice template.
|
|
|
|
use PayPal\Api\Currency;
|
|
use PayPal\Api\InvoiceItem;
|
|
use PayPal\Api\MerchantInfo;
|
|
use PayPal\Api\Template;
|
|
use PayPal\Api\TemplateData;
|
|
use PayPal\Api\TemplateSettings;
|
|
use PayPal\Api\TemplateSettingsMetadata;
|
|
|
|
require __DIR__ . '/../bootstrap.php';
|
|
|
|
// ### Invoice Template Item
|
|
$invoiceTemplateDataItem = new InvoiceItem();
|
|
$invoiceTemplateDataItem
|
|
->setName("Nutri Bullet")
|
|
->setQuantity(1)
|
|
->setUnitPrice(new Currency('{ "currency": "USD", "value": "50.00" }'));
|
|
|
|
// ### Invoice Template Data
|
|
$invoiceTemplateData = new TemplateData();
|
|
$invoiceTemplateData
|
|
->setTaxCalculatedAfterDiscount(false)
|
|
->setTaxInclusive(false)
|
|
->setNote("Thank you for your business")
|
|
->setLogoUrl("https://pics.paypal.com/v1/images/redDot.jpeg")
|
|
->addItem($invoiceTemplateDataItem)
|
|
->setMerchantInfo(new MerchantInfo('{ "email": "jaypatel512-facilitator@hotmail.com" }'));
|
|
|
|
// ### Template Settings
|
|
$displayPreferences = new TemplateSettingsMetadata();
|
|
$displayPreferences->setHidden(true);
|
|
|
|
$settingDate = new TemplateSettings();
|
|
$settingDate
|
|
->setFieldName("items.date")
|
|
->setDisplayPreference($displayPreferences);
|
|
|
|
|
|
// ### Template
|
|
$invoiceTemplate = new Template();
|
|
$invoiceTemplate
|
|
->setName("Hours Template" . rand())
|
|
->setDefault(true)
|
|
->setUnitOfMeasure("HOURS")
|
|
->setTemplateData($invoiceTemplateData)
|
|
// This is another way of initializing the object.
|
|
->addSetting(new TemplateSettings('{ "field_name": "custom", "display_preference": { "hidden": true } }'))
|
|
->addSetting($settingDate);
|
|
|
|
// For Sample Purposes Only.
|
|
$request = clone $invoiceTemplate;
|
|
|
|
try {
|
|
// ### Create Invoice Template
|
|
// Create an invoice by calling the invoice->create() method
|
|
// with a valid ApiContext (See bootstrap.php for more on `ApiContext`)
|
|
$invoiceTemplate->create($apiContext);
|
|
} catch (Exception $ex) {
|
|
// NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
|
|
ResultPrinter::printError("Create Invoice Template", "Template", null, $request, $ex);
|
|
exit(1);
|
|
}
|
|
|
|
// NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
|
|
ResultPrinter::printResult("Create Invoice Template", "Template", $invoiceTemplate->getTemplateId(), $request, $invoiceTemplate);
|
|
|
|
return $invoiceTemplate;
|