This repository has been archived on 2026-04-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
PayPal-PHP-SDK/sample/invoice-templates/CreateInvoiceTemplate.php
2016-09-19 16:22:06 -05:00

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;