Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\InventoryCatalog\Api;

/**
* Service returns Default Source Id
*
* @api
*/
interface DefaultSourceProviderInterface
{
/**
* Get Default Source id
*
* @return int
*/
public function getId(): int;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\InventoryCatalog\Api;

/**
* Service returns Default Stock Id
*
* @api
*/
interface DefaultStockProviderInterface
{
/**
* Get Default Stock Id
*
* @return int
*/
public function getId(): int;
}
23 changes: 23 additions & 0 deletions app/code/Magento/InventoryCatalog/Model/DefaultSourceProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\InventoryCatalog\Model;

use Magento\InventoryCatalog\Api\DefaultSourceProviderInterface;

/**
* Service returns Default Source Id
*/
class DefaultSourceProvider implements DefaultSourceProviderInterface
{
/**
* @inheritdoc
*/
public function getId(): int
{
return 1;
}
}
23 changes: 23 additions & 0 deletions app/code/Magento/InventoryCatalog/Model/DefaultStockProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\InventoryCatalog\Model;

use Magento\InventoryCatalog\Api\DefaultStockProviderInterface;

/**
* Service returns Default Stock Id
*/
class DefaultStockProvider implements DefaultStockProviderInterface
{
/**
* @inheritdoc
*/
public function getId(): int
{
return 1;
}
}
29 changes: 25 additions & 4 deletions app/code/Magento/InventoryCatalog/Setup/InstallData.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
use Magento\InventoryApi\Api\StockRepositoryInterface;
use Magento\InventoryApi\Api\AssignSourcesToStockInterface;
use Magento\Framework\Api\DataObjectHelper;
use Magento\InventoryCatalog\Api\DefaultSourceProviderInterface;
use Magento\InventoryCatalog\Api\DefaultStockProviderInterface;

/**
* Install Default Source, Stock and link them together
Expand Down Expand Up @@ -53,28 +55,44 @@ class InstallData implements InstallDataInterface
*/
private $assignSourcesToStock;

/**
* @var DefaultSourceProviderInterface
*/
private $defaultSourceProvider;

/**
* @var DefaultStockProviderInterface
*/
private $defaultStockProvider;

/**
* @param SourceRepositoryInterface $sourceRepository
* @param SourceInterfaceFactory $sourceFactory
* @param StockRepositoryInterface $stockRepository
* @param StockInterfaceFactory $stockFactory
* @param AssignSourcesToStockInterface $assignSourcesToStock
* @param DataObjectHelper $dataObjectHelper
* @param DefaultSourceProviderInterface $defaultSourceProvider
* @param DefaultStockProviderInterface $defaultStockProvider
*/
public function __construct(
SourceRepositoryInterface $sourceRepository,
SourceInterfaceFactory $sourceFactory,
StockRepositoryInterface $stockRepository,
StockInterfaceFactory $stockFactory,
AssignSourcesToStockInterface $assignSourcesToStock,
DataObjectHelper $dataObjectHelper
DataObjectHelper $dataObjectHelper,
DefaultSourceProviderInterface $defaultSourceProvider,
DefaultStockProviderInterface $defaultStockProvider
) {
$this->sourceRepository = $sourceRepository;
$this->sourceFactory = $sourceFactory;
$this->stockRepository = $stockRepository;
$this->stockFactory = $stockFactory;
$this->assignSourcesToStock = $assignSourcesToStock;
$this->dataObjectHelper = $dataObjectHelper;
$this->defaultSourceProvider = $defaultSourceProvider;
$this->defaultStockProvider = $defaultStockProvider;
}

/**
Expand All @@ -96,7 +114,7 @@ public function install(ModuleDataSetupInterface $setup, ModuleContextInterface
private function addDefaultSource()
{
$data = [
SourceInterface::SOURCE_ID => 1,
SourceInterface::SOURCE_ID => $this->defaultSourceProvider->getId(),
SourceInterface::NAME => 'Default Source',
SourceInterface::ENABLED => 1,
SourceInterface::DESCRIPTION => 'Default Source',
Expand All @@ -119,7 +137,7 @@ private function addDefaultSource()
private function addDefaultStock()
{
$data = [
StockInterface::STOCK_ID => 1,
StockInterface::STOCK_ID => $this->defaultStockProvider->getId(),
StockInterface::NAME => 'Default Stock'
];
$source = $this->stockFactory->create();
Expand All @@ -134,6 +152,9 @@ private function addDefaultStock()
*/
private function assignStockToSource()
{
$this->assignSourcesToStock->execute([1], 1);
$this->assignSourcesToStock->execute(
[$this->defaultSourceProvider->getId()],
$this->defaultStockProvider->getId()
);
}
}
11 changes: 11 additions & 0 deletions app/code/Magento/InventoryCatalog/etc/di.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\InventoryCatalog\Api\DefaultStockResolverInterface" type="Magento\InventoryCatalog\Model\DefaultStockResolver"/>
<preference for="Magento\InventoryCatalog\Api\DefaultSourceResolverInterface" type="Magento\InventoryCatalog\Model\DefaultSourceResolver"/>
</config>