Provision Response
Response
There are multiple way of making / working with a provision response.
- Via array and built in method fromArray()
$payload = [
'order' => [
'id' => '33901',
'date' => '2021-01-01',
'total' => '399.99',
'currency' => 'USD',
'items' => []
],
];
$response = ProvisionResponse::fromArray($payload);
- Via definition accessors:
$response = new ProvisionResponse();
$response->order->id = '#100315';
$response->order->price = '19.99';
$response->order->currency = 'EUR';
Definition Collections:
Usually empty definition collections will be created at object instantiation;
print_r((new ProvisionResponse())->order->items);
MerchantOP\Models\Collection Object
(
[items:protected] => Array
(
)
[definition:protected] => MerchantOP\Models\OrderItem
)
Otherwise, you can manually create needed collection like so:
use MerchantOP\Models\Collection;
use MerchantOP\Models\OrderItem;
$response = new ProvisionResponse();
$items = Collection::of(OrderItem::class);
$response->order->items = $items;
Pushing items to collection:
use MerchantOP\Models\OrderItem;
$response = new ProvisionResponse();
$response->order->items->push(OrderItem::fromArray(['name' => 'Ticket to Mars']));
Updating existing items:
use MerchantOP\Models\OrderItem;
$response = new ProvisionResponse();
$response->order->items[0]->name = 'Unprecious Item';
Extract response payload:
$response = ProvisionResponse::fromArray($payload);
print_r($response->toArray());
Array
(
[order] => Array
(
[id] => #7012
[status] => shipped
[comment] => comment
[email] => email@dotcom
[phone] => 0123456789
[total] => 30.99
[currency] => USD
[items] => Array
(
[0] => Array
(
[name] => iPhone XR
[price] => 699.99
)
)
)
[customer] => Array
(
[id] => 1111
[email] => customer@company.com
[phone] => 001234567
[username] => strawberry
)
)
|