Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
sitemap_products.php
Go to the documentation of this file.
1 <?php
7 // Copy images to tmp media path
9 
12 $config = $objectManager->get(\Magento\Catalog\Model\Product\Media\Config::class);
13 
15 $filesystem = $objectManager->get(\Magento\Framework\Filesystem::class);
17 $mediaDirectory = $filesystem->getDirectoryWrite(DirectoryList::MEDIA);
18 $mediaPath = $mediaDirectory->getAbsolutePath();
19 $baseTmpMediaPath = $config->getBaseTmpMediaPath();
21 
22 copy(__DIR__ . '/magento_image_sitemap.png', $mediaPath . '/' . $baseTmpMediaPath . '/magento_image_sitemap.png');
23 copy(__DIR__ . '/second_image.png', $mediaPath . '/' . $baseTmpMediaPath . '/second_image.png');
24 
26 $product->setTypeId(
27  \Magento\Catalog\Model\Product\Type::TYPE_SIMPLE
28 )->setId(
29  1
30 )->setAttributeSetId(
31  4
32 )->setName(
33  'Simple Product Enabled'
34 )->setSku(
35  'simple_no_images'
36 )->setPrice(
37  10
38 )->setVisibility(
39  \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH
40 )->setStatus(
41  \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
42 )->setWebsiteIds(
43  [1]
44 )->setStockData(
45  ['qty' => 100, 'is_in_stock' => 1, 'manage_stock' => 1]
46 )->save();
47 
49 $productLink = $objectManager->create(\Magento\Catalog\Api\Data\ProductLinkInterface::class);
50 $productLink->setSku('simple_invisible');
51 $productLink->setLinkedProductSku('simple_no_images');
52 $productLink->setPosition(1);
53 $productLink->setLinkType('related');
54 
55 $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Catalog\Model\Product::class);
56 $product->setTypeId(
57  \Magento\Catalog\Model\Product\Type::TYPE_SIMPLE
58 )->setId(
59  2
60 )->setAttributeSetId(
61  4
62 )->setName(
63  'Simple Product Invisible'
64 )->setSku(
65  'simple_invisible'
66 )->setPrice(
67  10
68 )->setVisibility(
69  \Magento\Catalog\Model\Product\Visibility::VISIBILITY_NOT_VISIBLE
70 )->setStatus(
71  \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
72 )->setWebsiteIds(
73  [1]
74 )->setStockData(
75  ['qty' => 100, 'is_in_stock' => 1]
76 )->setRelatedLinkData(
77  [$productLink]
78 )->save();
79 
81 $productLink = $objectManager->create(\Magento\Catalog\Api\Data\ProductLinkInterface::class);
82 $productLink->setSku('simple_disabled');
83 $productLink->setLinkedProductSku('simple_no_images');
84 $productLink->setPosition(1);
85 $productLink->setLinkType('related');
86 
87 $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Catalog\Model\Product::class);
88 $product->setTypeId(
89  \Magento\Catalog\Model\Product\Type::TYPE_SIMPLE
90 )->setId(
91  3
92 )->setAttributeSetId(
93  4
94 )->setName(
95  'Simple Product Disabled'
96 )->setSku(
97  'simple_disabled'
98 )->setPrice(
99  10
100 )->setVisibility(
101  \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH
102 )->setStatus(
103  \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED
104 )->setWebsiteIds(
105  [1]
106 )->setStockData(
107  ['qty' => 100, 'is_in_stock' => 1]
108 )->setRelatedLinkData(
109  [$productLink]
110 )->save();
111 
113 $productLink = $objectManager->create(\Magento\Catalog\Api\Data\ProductLinkInterface::class);
114 $productLink->setSku('simple_with_images');
115 $productLink->setLinkedProductSku('simple_no_images');
116 $productLink->setPosition(1);
117 $productLink->setLinkType('related');
118 
119 $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Catalog\Model\Product::class);
120 $product->setTypeId(
121  \Magento\Catalog\Model\Product\Type::TYPE_SIMPLE
122 )->setId(
123  4
124 )->setAttributeSetId(
125  4
126 )->setName(
127  'Simple Images'
128 )->setSku(
129  'simple_with_images'
130 )->setPrice(
131  10
132 )->setVisibility(
133  \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH
134 )->setStatus(
135  \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
136 )->setImage(
137  '/s/e/second_image.png'
138 )->setSmallImage(
139  '/m/a/magento_image_sitemap.png'
140 )->setThumbnail(
141  '/m/a/magento_image_sitemap.png'
142 )->addImageToMediaGallery(
143  $mediaPath . '/' . $baseTmpMediaPath . '/magento_image_sitemap.png',
144  null,
145  false,
146  false
147 )->addImageToMediaGallery(
148  $mediaPath . '/' . $baseTmpMediaPath . '/second_image.png',
149  null,
150  false,
151  false
152 )->setWebsiteIds(
153  [1]
154 )->setStockData(
155  ['qty' => 100, 'is_in_stock' => 1]
156 )->setRelatedLinkData(
157  [$productLink]
158 )->save();
159 
161 $productLink = $objectManager->create(\Magento\Catalog\Api\Data\ProductLinkInterface::class);
162 $productLink->setSku('simple_with_images');
163 $productLink->setLinkedProductSku('simple_no_images');
164 $productLink->setPosition(1);
165 $productLink->setLinkType('related');
166 
167 $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Catalog\Model\Product::class);
168 $product->setTypeId(
169  \Magento\Catalog\Model\Product\Type::TYPE_SIMPLE
170 )->setId(
171  5
172 )->setAttributeSetId(
173  4
174 )->setName(
175  'Simple Images Two'
176 )->setSku(
177  'simple_with_images'
178 )->setPrice(
179  10
180 )->setVisibility(
181  \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH
182 )->setStatus(
183  \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
184 )->setImage(
185  'no_selection'
186 )->setSmallImage(
187  '/m/a/magento_image_sitemap.png'
188 )->setThumbnail(
189  'no_selection'
190 )->addImageToMediaGallery(
191  $baseTmpMediaPath . '/second_image.png',
192  null,
193  false,
194  false
195 )->setWebsiteIds(
196  [1]
197 )->setStockData(
198  ['qty' => 100, 'is_in_stock' => 1]
199 )->setRelatedLinkData(
200  [$productLink]
201 )->save();
$mediaPath
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60
$filesystem
$mediaDirectory
$objectManager
$baseTmpMediaPath
$productLink