AssignDefaultSourceToDefaultStock.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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\StockSourceLinkInterface;
  10. use Magento\InventoryCatalogApi\Api\DefaultSourceProviderInterface;
  11. use Magento\InventoryCatalogApi\Api\DefaultStockProviderInterface;
  12. /**
  13. * Assign default source to default stock
  14. */
  15. class AssignDefaultSourceToDefaultStock
  16. {
  17. /**
  18. * @var DefaultStockProviderInterface
  19. */
  20. private $defaultStockProvider;
  21. /**
  22. * @var DefaultSourceProviderInterface
  23. */
  24. private $defaultSourceProvider;
  25. /**
  26. * @var ResourceConnection
  27. */
  28. private $resource;
  29. /**
  30. * @param DefaultStockProviderInterface $defaultStockProvider
  31. * @param DefaultSourceProviderInterface $defaultSourceProvider
  32. * @param ResourceConnection $resource
  33. */
  34. public function __construct(
  35. DefaultStockProviderInterface $defaultStockProvider,
  36. DefaultSourceProviderInterface $defaultSourceProvider,
  37. ResourceConnection $resource
  38. ) {
  39. $this->defaultStockProvider = $defaultStockProvider;
  40. $this->defaultSourceProvider = $defaultSourceProvider;
  41. $this->resource = $resource;
  42. }
  43. /**
  44. * Assign default source to stock
  45. *
  46. * @return void
  47. */
  48. public function execute()
  49. {
  50. $connection = $this->resource->getConnection();
  51. $stockSourceLinkData = [
  52. StockSourceLinkInterface::SOURCE_CODE => $this->defaultSourceProvider->getCode(),
  53. StockSourceLinkInterface::STOCK_ID => $this->defaultStockProvider->getId(),
  54. StockSourceLinkInterface::PRIORITY => 1,
  55. ];
  56. $connection->insert($this->resource->getTableName('inventory_source_stock_link'), $stockSourceLinkData);
  57. }
  58. }