-
Notifications
You must be signed in to change notification settings - Fork 3
Orders
Reindert Vetter edited this page Jan 7, 2022
·
39 revisions
For how to handle the exceptions correctly, see Exceptions.
To load more information see Extra Information.
use \PlugAndPay\Sdk\Service\Client;
use \PlugAndPay\Sdk\Service\OrderService;
$client = new Client($token);
$service = new OrderService($client);
$order = $service->find(1);
$createdAt = $order->createdAt();
$deletedAt = $order->deletedAt();
$id = $order->id();
$invoiceNumber = $order->invoiceNumber();
$isFirst = $order->isFirst();
$isHidden = $order->isHidden();
$invoiceStatus = $order->invoiceStatus();
$mode = $order->mode();
$reference = $order->reference();
$source = $order->source();
$subtotal = $order->subtotal()->value();
$total = $order->total()->value();
$updatedAt = $order->updatedAt();
To load more information see Extra Information.
use \PlugAndPay\Sdk\Enum\OrderIncludes;
use \PlugAndPay\Sdk\Service\Client;
use \PlugAndPay\Sdk\Service\OrderService;
$client = new Client($token);
$service = new OrderService($client);
$orders = $service->include(OrderIncludes::BILLING, OrderIncludes::COMMENTS)->get();
use \PlugAndPay\Sdk\Service\Client;
use \PlugAndPay\Sdk\Service\OrderService;
$client = new Client($token);
$service = new OrderService($client);
$orders = $service->get(function(OrderFilter $filter) {
$filter
->affiliateId(1234)
->checkoutId(1234)
->contractId(1234)
->contractType(\PlugAndPay\Sdk\Enum\ContractType::SUBSCRIPTION)
->country('NL')
->direction(\PlugAndPay\Sdk\Enum\Direction::DESC)
->discountCode('sale123')
->email('maarten.veenstra@example.net')
->hasBump(true)
->hasTax(true)
->invoiceStatus(\PlugAndPay\Sdk\Enum\InvoiceStatus::FINAL)
->isDeleted(true)
->isFirst(true)
->isHidden(true)
->isUpsell(true)
->limit(1)
->mode(\PlugAndPay\Sdk\Enum\OrderMode::LIVE)
->page(2)
->paymentStatus(\PlugAndPay\Sdk\Enum\PaymentStatus::PAID)
->productId(1234)
->productTag('color-blue')
->query('Piet Niet')
->sinceInvoiceDate(new DateTime())
->sincePaidAt(new DateTime())
->sort(\PlugAndPay\Sdk\Enum\OrderSortType::PAID_AT)
->source(\PlugAndPay\Sdk\Enum\OrderSource::API)
->untilInvoiceDate(new DateTime())
->untilPaidAt(new DateTime());
});
When creating an order, to load more information see Extra Information.
use \PlugAndPay\Sdk\Entity\Address;
use \PlugAndPay\Sdk\Entity\Billing;
use \PlugAndPay\Sdk\Entity\Comment;
use \PlugAndPay\Sdk\Entity\Contact;
use \PlugAndPay\Sdk\Entity\Item;
use \PlugAndPay\Sdk\Entity\Money;
use \PlugAndPay\Sdk\Entity\Order;
use \PlugAndPay\Sdk\Entity\Payment;
use \PlugAndPay\Sdk\Entity\PaymentRequest;
use \PlugAndPay\Sdk\Enum\OrderIncludes;
use \PlugAndPay\Sdk\Enum\PaymentRequestType;
use \PlugAndPay\Sdk\Enum\PaymentStatus;
use \PlugAndPay\Sdk\Enum\TaxExempt;
use \PlugAndPay\Sdk\Service\Client;
use \PlugAndPay\Sdk\Service\OrderService;
$client = new Client($token);
$service = new OrderService($client);
$order = (new Order())
->setTaxExempt(TaxExempt::REVERSE)
->setTaxIncluded(true)
->setHidden(false)
->setBilling((new Billing())
->setAddress((new Address())
->setCity('Rijnsburg')
->setCountry('NL')
->setStreet('Koestraat')
->setHouseNumber('55 b')
->setZipcode('2231 JE')
)
->setContact((new Contact())
->setCompany('RosLie B.V.')
->setEmail('test@test.nl')
->setFirstName('Bilal')
->setLastName('de Wit')
->setTelephone('0678786754')
->setWebsite('roslie.nl')
->setVatIdNumber('NL000099998B57')
)
)
->setComments(
[
(new Comment())->setValue('the comment'),
]
)
->setItems(
[
(new Item())
->setAmount(new Money(10.))
->setLabel('the-label')
->setQuantity(2)
->setTaxByRateId(123)
->setProductId(123),
]
)
->setPayment((new Payment())
->setStatus(PaymentStatus::PROCESSING))
->setPaymentRequest((new PaymentRequest())
->setType(PaymentRequestType::LINK)
->setIban('NL55INGB0000000000')
->setName('John Doe')
)
->setTags(['first_tag', 'second_tag']);
$order = $service->create($order);
$orderId = $order->id();
See Extra Information to load more information in your response. For now, you cannot update order items and discounts.
use \PlugAndPay\Sdk\Entity\Order;
use \PlugAndPay\Sdk\Enum\OrderIncludes;
use \PlugAndPay\Sdk\Service\Client;
use \PlugAndPay\Sdk\Service\OrderService;
$client = new Client($token);
$service = new OrderService($client);
$orderId = 12;
$order = $service->update($orderId, function(Order $order) {
$order->setTags(['first_tag', 'second_tag']);
$order->payment()->setStatus(PaymentStatus::PROCESSING);
$order->billing()->contact()->setEmail('rosalie39@example.net');
})
use \PlugAndPay\Sdk\Service\Client;
use \PlugAndPay\Sdk\Service\OrderService;
$client = new Client($token);
$service = new OrderService($client);
$orderId = 12;
$service->delete($orderId)
By using the include method you can get more information. It is important that you only request the information you need.
use \PlugAndPay\Sdk\Enum\OrderIncludes;
$service
->include(
OrderIncludes::BILLING,
OrderIncludes::COMMENTS,
OrderIncludes::ITEMS,
OrderIncludes::PAYMENT,
OrderIncludes::TAGS,
OrderIncludes::TAXES,
)
->find(1);
$order = $service
->include(\PlugAndPay\Sdk\Enum\OrderIncludes::BILLING)
->find(1);
$billing = $order->billing();
$company = $billing->company();
$email = $billing->email();
$firstName = $billing->firstName();
$lastName = $billing->lastName();
$telephone = $billing->telephone();
$website = $billing->website();
$city = $billing->address()->city();
$country = $billing->address()->country();
$street = $billing->address()->street();
$houseNumber = $billing->address()->houseNumber();
$zipcode = $billing->address()->zipcode();
$order = $service
->include(\PlugAndPay\Sdk\Enum\OrderIncludes::COMMENTS)
->find(1);
$comment = $order->comments()[0];
$createdAt = $comment->createdAt();
$id = $comment->id();
$updatedAt = $comment->updatedAt();
$value = $comment->value();
/** @var \PlugAndPay\Sdk\Entity\Order $order */
$order = $service
->include(\PlugAndPay\Sdk\Enum\OrderIncludes::DISCOUNTS)
->find(1);
$discount = $order->discounts()[0];
// Or receive all discounts per item:
$order->items()[0]->discounts()[0];
$value = $discount->amount()->value();
$currency = $discount->amount()->currency();
$code = $discount->code();
$type = $discount->type();
$order = $service
->include(\PlugAndPay\Sdk\Enum\OrderIncludes::ITEMS)
->find(1);
$item = $order->items()[0];
$discount = $item->discounts()[0]->amount()->value();
$discountCode = $item->discounts()[0]->code();
$id = $item->id();
$label = $item->label();
$productId = $item->productId();
$quantity = $item->quantity();
$subtotal = $item->subtotal()->value();
$order = $service
->include(\PlugAndPay\Sdk\Enum\OrderIncludes::PAYMENT)
->find(1);
$payment = $order->payment();
$orderId = $payment->orderId();
$paidAt = $payment->paidAt();
$status = $payment->status();
$url = $payment->url();
$order = $service
->include(\PlugAndPay\Sdk\Enum\OrderIncludes::TAGS)
->find(1);
$tags = $order->tags();
$order = $service
->include(\PlugAndPay\Sdk\Enum\OrderIncludes::TAXES)
->find(1);
// All taxes
$tax = $order->taxes()[0];
$tax->amount()->value()
$tax->rate()->percentage()
// Tax per item
$item = $order->items()[0];
$itemTaxValue = $item->tax()->amount()->value();
$itemTaxPercentage = $item->tax()->rate()->percentage();