CreateDefaultSource.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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\InventoryCatalog\Setup\Operation;
  8. use Magento\Framework\App\ResourceConnection;
  9. use Magento\InventoryApi\Api\Data\SourceInterface;
  10. use Magento\InventoryCatalogApi\Api\DefaultSourceProviderInterface;
  11. /**
  12. * Create default source during installation
  13. */
  14. class CreateDefaultSource
  15. {
  16. /**
  17. * @var DefaultSourceProviderInterface
  18. */
  19. private $defaultSourceProvider;
  20. /**
  21. * @var ResourceConnection
  22. */
  23. private $resource;
  24. /**
  25. * @param DefaultSourceProviderInterface $defaultSourceProvider
  26. * @param ResourceConnection $resource
  27. */
  28. public function __construct(
  29. DefaultSourceProviderInterface $defaultSourceProvider,
  30. ResourceConnection $resource
  31. ) {
  32. $this->defaultSourceProvider = $defaultSourceProvider;
  33. $this->resource = $resource;
  34. }
  35. /**
  36. * Create default source
  37. *
  38. * @return void
  39. */
  40. public function execute()
  41. {
  42. $connection = $this->resource->getConnection();
  43. $sourceData = [
  44. SourceInterface::SOURCE_CODE => $this->defaultSourceProvider->getCode(),
  45. SourceInterface::NAME => 'Default Source',
  46. SourceInterface::ENABLED => 1,
  47. SourceInterface::DESCRIPTION => 'Default Source',
  48. SourceInterface::LATITUDE => 0,
  49. SourceInterface::LONGITUDE => 0,
  50. SourceInterface::COUNTRY_ID => 'US',
  51. SourceInterface::POSTCODE => '00000',
  52. ];
  53. $connection->insert($this->resource->getTableName('inventory_source'), $sourceData);
  54. }
  55. }