Chargeback Help

Provision Response

Response

There are multiple way of making / working with a provision response.

  1. 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);
    
  2. 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
        )

)

© 2025 Chargeback Help. All rights reserved.