RequestQuantityProcessor.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Checkout\Model\Cart;
  8. use Magento\Framework\Locale\ResolverInterface;
  9. class RequestQuantityProcessor
  10. {
  11. /**
  12. * @var ResolverInterface
  13. */
  14. private $localeResolver;
  15. /**
  16. * RequestQuantityProcessor constructor.
  17. * @param ResolverInterface $localeResolver
  18. */
  19. public function __construct(
  20. ResolverInterface $localeResolver
  21. ) {
  22. $this->localeResolver = $localeResolver;
  23. }
  24. /**
  25. * Process cart request data
  26. *
  27. * @param array $cartData
  28. * @return array
  29. */
  30. public function process(array $cartData): array
  31. {
  32. $filter = new \Zend\I18n\Filter\NumberParse($this->localeResolver->getLocale());
  33. foreach ($cartData as $index => $data) {
  34. if (isset($data['qty'])) {
  35. $data['qty'] = is_string($data['qty']) ? trim($data['qty']) : $data['qty'];
  36. $cartData[$index]['qty'] = $filter->filter($data['qty']);
  37. }
  38. }
  39. return $cartData;
  40. }
  41. }