diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php
new file mode 100644
index 0000000000000..11a2d585d8da6
--- /dev/null
+++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php
@@ -0,0 +1,57 @@
+itemFactory = $itemFactory;
+ $this->configReader = $configReader;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getItems($storeId)
+ {
+ $items[] = $this->itemFactory->create([
+ 'url' => '',
+ 'priority' => $this->configReader->getPriority($storeId),
+ 'changeFrequency' => $this->configReader->getChangeFrequency($storeId),
+ ]);
+
+ return $items;
+ }
+}
diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php
new file mode 100644
index 0000000000000..b18dd73fb2836
--- /dev/null
+++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php
@@ -0,0 +1,64 @@
+scopeConfig = $scopeConfig;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getPriority($storeId)
+ {
+ return (string)$this->scopeConfig->getValue(
+ self::XML_PATH_PRIORITY,
+ ScopeInterface::SCOPE_STORE,
+ $storeId
+ );
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getChangeFrequency($storeId)
+ {
+ return (string)$this->scopeConfig->getValue(
+ self::XML_PATH_CHANGE_FREQUENCY,
+ ScopeInterface::SCOPE_STORE,
+ $storeId
+ );
+ }
+}
diff --git a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php
new file mode 100644
index 0000000000000..0edfd253f0c1d
--- /dev/null
+++ b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php
@@ -0,0 +1,72 @@
+getConfigReaderMock();
+ $itemFactoryMock = $this->getItemFactoryMock();
+ $resolver = new StoreUrlItemResolver($configReaderMock, $itemFactoryMock);
+ $items = $resolver->getItems(1);
+
+ $this->assertCount(1, $items);
+ foreach ($items as $item) {
+ $this->assertSame('daily', $item->getChangeFrequency());
+ $this->assertSame('1.0', $item->getPriority());
+ }
+ }
+
+ /**
+ * @return SitemapItemInterfaceFactory|MockObject
+ */
+ private function getItemFactoryMock()
+ {
+ $itemFactoryMock = $this->getMockBuilder(SitemapItemInterfaceFactory::class)
+ ->setMethods(['create'])
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $itemFactoryMock->expects($this->any())
+ ->method('create')
+ ->willReturnCallback(function ($data) {
+ $helper = new ObjectManager($this);
+
+ return $helper->getObject(SitemapItem::class, $data);
+ });
+
+ return $itemFactoryMock;
+ }
+
+ /**
+ * @return ConfigReaderInterface|MockObject
+ */
+ private function getConfigReaderMock()
+ {
+ $configReaderMock = $this->getMockForAbstractClass(ConfigReaderInterface::class);
+ $configReaderMock->expects($this->any())
+ ->method('getPriority')
+ ->willReturn('1.0');
+ $configReaderMock->expects($this->any())
+ ->method('getChangeFrequency')
+ ->willReturn('daily');
+
+ return $configReaderMock;
+ }
+}
diff --git a/app/code/Magento/Sitemap/etc/adminhtml/system.xml b/app/code/Magento/Sitemap/etc/adminhtml/system.xml
index 57c426c68e83f..8814d7dcf67bd 100644
--- a/app/code/Magento/Sitemap/etc/adminhtml/system.xml
+++ b/app/code/Magento/Sitemap/etc/adminhtml/system.xml
@@ -51,7 +51,19 @@
Valid values range from 0.0 to 1.0.
-
+
+
+
+
+ Magento\Sitemap\Model\Config\Source\Frequency
+
+
+
+ Magento\Sitemap\Model\Config\Backend\Priority
+ Valid values range from 0.0 to 1.0.
+
+
+
@@ -94,7 +106,7 @@
-
+
@@ -106,7 +118,7 @@
validate-number validate-greater-than-zero
-
+
diff --git a/app/code/Magento/Sitemap/etc/config.xml b/app/code/Magento/Sitemap/etc/config.xml
index 6f14ff728ac4f..36b2cc2207422 100644
--- a/app/code/Magento/Sitemap/etc/config.xml
+++ b/app/code/Magento/Sitemap/etc/config.xml
@@ -25,6 +25,10 @@
daily
all
+
+ 1
+ daily
+
0
diff --git a/app/code/Magento/Sitemap/etc/di.xml b/app/code/Magento/Sitemap/etc/di.xml
index e627b3b50fff9..4c4a5f98f737a 100644
--- a/app/code/Magento/Sitemap/etc/di.xml
+++ b/app/code/Magento/Sitemap/etc/di.xml
@@ -25,12 +25,18 @@
+ - Magento\Sitemap\Model\ItemProvider\StoreUrl
- Magento\Sitemap\Model\ItemProvider\Category
- Magento\Sitemap\Model\ItemProvider\CmsPage
- Magento\Sitemap\Model\ItemProvider\Product
+
+
+ Magento\Sitemap\Model\ItemProvider\StoreUrlConfigReader
+
+
Magento\Sitemap\Model\ItemProvider\CategoryConfigReader
diff --git a/app/code/Magento/Sitemap/i18n/en_US.csv b/app/code/Magento/Sitemap/i18n/en_US.csv
index 29ecd7e22773e..8a7ac86e2fb47 100644
--- a/app/code/Magento/Sitemap/i18n/en_US.csv
+++ b/app/code/Magento/Sitemap/i18n/en_US.csv
@@ -64,3 +64,4 @@ ID,ID
"Link for Google","Link for Google"
"Last Generated","Last Generated"
Action,Action
+"Store Url Options","Store Url Options"