# ivyforms/1.5/backend/src/Factory/Payment/OrderFactory.php

The Innovative Form Builder – IvyForms, version 1.5. 43 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/1.5/code/backend/src/Factory/Payment/OrderFactory.php
- Raw: https://pluginprobe.com/plugins/ivyforms/1.5/raw/backend/src/Factory/Payment/OrderFactory.php
- Modified: 2026-10-05T14:37:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/1.5/code/backend/src/Factory/Payment/OrderFactory.php#L10-L20`.

```php
<?php

namespace IvyForms\Factory\Payment;

use IvyForms\Entity\Payment\Order as OrderEntity;
use IvyForms\ValueObjects\Payment\Order as OrderValueObject;

/**
 * Factory for order entities.
 */
class OrderFactory
{
    /**
     * @param array<string, mixed> $data
     * @return OrderEntity
     */
    public static function create(array $data): OrderEntity
    {
        $orderObject = new OrderValueObject(
            (int) ($data['id'] ?? 0),
            (int) ($data['entryId'] ?? 0),
            (string) ($data['squareOrderId'] ?? ''),
            (string) ($data['status'] ?? 'OPEN'),
            isset($data['squareCustomerId']) ? (string) $data['squareCustomerId'] : null,
            (int) ($data['amount'] ?? 0),
            (string) ($data['currency'] ?? 'USD'),
            isset($data['dateCreated']) ? (string) $data['dateCreated'] : null
        );

        $order = new OrderEntity($orderObject);

        if (isset($data['id'])) {
            $order->setId((int) $data['id']);
        }

        if (isset($data['dateCreated'])) {
            $order->setDateCreated((string) $data['dateCreated']);
        }

        return $order;
    }
}

```
