Completed
Pull Request — 5.6 (#2830)
by Jeroen
14:14
created

src/Kunstmaan/SeoBundle/Helper/OrderConverter.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Kunstmaan\SeoBundle\Helper;
4
5
/**
6
 * Class OrderConverter
7
 */
8
class OrderConverter
9
{
10
    /**
11
     * Converts an Order object to an Array.
12
     *
13
     * @return array
0 ignored issues
show
Consider making the return type a bit more specific; maybe use array<string,string|array>.

This check looks for the generic type array as a return type and suggests a more specific type. This type is inferred from the actual code.

Loading history...
14
     */
15
    public function convert(Order $order)
16
    {
17
        $orderItems = [];
18
19
        foreach ($order->orderItems as $orderItem) {
20
            /* @var OrderItem $orderItem */
21
            $orderItems[] = [
22
                'sku' => $orderItem->getSKU(),
23
                'quantity' => $this->formatNumber($orderItem->getQuantity()),
24
                'unit_price' => $this->formatNumber($orderItem->getUnitPrice()),
25
                'taxes' => $this->formatNumber($orderItem->getTaxes()),
26
                'category_or_variation' => $orderItem->getCategoryOrVariation(),
27
                'name' => $orderItem->getName(),
28
            ];
29
        }
30
31
        return [
32
            'transaction_id' => $order->getTransactionID(),
33
            'store_name' => $order->getStoreName(),
34
            'total' => $this->formatNumber($order->getTotal()),
35
            'taxes_total' => $this->formatNumber($order->getTaxesTotal()),
36
            'shipping_total' => $this->formatNumber($order->getShippingTotal()),
37
            'city' => $order->getCity(),
38
            'state_or_province' => $order->getStateOrProvince(),
39
            'country' => $order->getCountry(),
40
            'order_items' => $orderItems,
41
        ];
42
    }
43
44
    /**
45
     * Formats a number to a format google an easily comprehend.
46
     *
47
     * @param $number number
48
     *
49
     * @return string
50
     */
51
    protected function formatNumber($number)
52
    {
53
        return number_format($number, 2, '.', '');
54
    }
55
}
56