* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PrestashopCheckout\Presenter\Cart; use PrestaShop\Module\PrestashopCheckout\Presenter\PresenterInterface; /** * Present the cart waiting by the create order paypal builder */ class CartPresenter implements PresenterInterface { /** * Present improved cart * * @return array * * @throws \Exception */ public function present() { $context = \Context::getContext(); $productList = $context->cart->getProducts(); $shippingAddress = \Address::initialize((int) $context->cart->id_address_delivery); $invoiceAddress = \Address::initialize((int) $context->cart->id_address_invoice); $currency = \Currency::getCurrencyInstance((int) $context->cart->id_currency); return [ 'cart' => [ 'id' => $context->cart->id, 'shipping_cost' => $context->cart->getTotalShippingCost(null, true), 'totals' => [ 'total_including_tax' => [ 'amount' => $context->cart->getOrderTotal(true), ], ], 'subtotals' => [ 'gift_wrapping' => [ 'amount' => $context->cart->getGiftWrappingPrice(true), ], ], ], 'customer' => \Validate::isLoadedObject($context->customer) ? $context->customer : new \Customer((int) $context->cart->id_customer), 'language' => $context->language, 'products' => $productList, 'addresses' => [ 'shipping' => $shippingAddress, 'invoice' => $invoiceAddress, ], 'currency' => [ 'iso_code' => $currency->iso_code, ], ]; } }