AbstractItem.php 737 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Checkout\CustomerData;
  7. use Magento\Quote\Model\Quote\Item;
  8. /**
  9. * Abstract item
  10. *
  11. * @api
  12. * @since 100.0.2
  13. */
  14. abstract class AbstractItem implements ItemInterface
  15. {
  16. /**
  17. * @var Item
  18. */
  19. protected $item;
  20. /**
  21. * {@inheritdoc}
  22. */
  23. public function getItemData(Item $item)
  24. {
  25. $this->item = $item;
  26. return \array_merge(
  27. ['product_type' => $item->getProductType()],
  28. $this->doGetItemData()
  29. );
  30. }
  31. /**
  32. * Get item data. Template method
  33. *
  34. * @return array
  35. */
  36. abstract protected function doGetItemData();
  37. }