Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
source_items_for_virtual_on_multi_source.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
10 use Magento\InventoryApi\Api\Data\SourceItemInterfaceFactory;
14 
16 $dataObjectHelper = Bootstrap::getObjectManager()->get(DataObjectHelper::class);
18 $sourceItemFactory = Bootstrap::getObjectManager()->get(SourceItemInterfaceFactory::class);
20 $sourceItemsSave = Bootstrap::getObjectManager()->get(SourceItemsSaveInterface::class);
22 $defaultSourceProvider = Bootstrap::getObjectManager()->get(DefaultSourceProviderInterface::class);
23 
50  // VIRT-1
51  [
52  SourceItemInterface::SOURCE_CODE => 'eu-1',
53  SourceItemInterface::SKU => 'VIRT-1',
54  SourceItemInterface::QUANTITY => 2,
55  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
56  ],
57  [
58  SourceItemInterface::SOURCE_CODE => 'eu-2',
59  SourceItemInterface::SKU => 'VIRT-1',
60  SourceItemInterface::QUANTITY => 12,
61  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
62  ],
63  [
64  SourceItemInterface::SOURCE_CODE => 'eu-3',
65  SourceItemInterface::SKU => 'VIRT-1',
66  SourceItemInterface::QUANTITY => 12,
67  SourceItemInterface::STATUS => SourceItemInterface::STATUS_OUT_OF_STOCK,
68  ],
69  [
70  SourceItemInterface::SOURCE_CODE => 'eu-disabled',
71  SourceItemInterface::SKU => 'VIRT-1',
72  SourceItemInterface::QUANTITY => 6,
73  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
74  ],
75  [
76  SourceItemInterface::SOURCE_CODE => 'us-1',
77  SourceItemInterface::SKU => 'VIRT-1',
78  SourceItemInterface::QUANTITY => 10,
79  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
80  ],
81 
82  // VIRT-2
83  [
84  SourceItemInterface::SOURCE_CODE => 'eu-1',
85  SourceItemInterface::SKU => 'VIRT-2',
86  SourceItemInterface::QUANTITY => 22,
87  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
88  ],
89  [
90  SourceItemInterface::SOURCE_CODE => 'eu-2',
91  SourceItemInterface::SKU => 'VIRT-2',
92  SourceItemInterface::QUANTITY => 12,
93  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
94  ],
95  [
96  SourceItemInterface::SOURCE_CODE => 'eu-3',
97  SourceItemInterface::SKU => 'VIRT-2',
98  SourceItemInterface::QUANTITY => 4,
99  SourceItemInterface::STATUS => SourceItemInterface::STATUS_OUT_OF_STOCK,
100  ],
101  [
102  SourceItemInterface::SOURCE_CODE => 'eu-disabled',
103  SourceItemInterface::SKU => 'VIRT-2',
104  SourceItemInterface::QUANTITY => 6,
105  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
106  ],
107  [
108  SourceItemInterface::SOURCE_CODE => 'us-1',
109  SourceItemInterface::SKU => 'VIRT-2',
110  SourceItemInterface::QUANTITY => 3,
111  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
112  ],
113 
114  // VIRT-3
115  [
116  SourceItemInterface::SOURCE_CODE => 'eu-1',
117  SourceItemInterface::SKU => 'VIRT-3',
118  SourceItemInterface::QUANTITY => 4.5,
119  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
120  ],
121  [
122  SourceItemInterface::SOURCE_CODE => 'eu-2',
123  SourceItemInterface::SKU => 'VIRT-3',
124  SourceItemInterface::QUANTITY => 6.7,
125  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
126  ],
127  [
128  SourceItemInterface::SOURCE_CODE => 'eu-3',
129  SourceItemInterface::SKU => 'VIRT-3',
130  SourceItemInterface::QUANTITY => 0,
131  SourceItemInterface::STATUS => SourceItemInterface::STATUS_OUT_OF_STOCK,
132  ],
133  [
134  SourceItemInterface::SOURCE_CODE => 'eu-disabled',
135  SourceItemInterface::SKU => 'VIRT-3',
136  SourceItemInterface::QUANTITY => 3.89,
137  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
138  ],
139  [
140  SourceItemInterface::SOURCE_CODE => 'us-1',
141  SourceItemInterface::SKU => 'VIRT-3',
142  SourceItemInterface::QUANTITY => 3.12,
143  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
144  ],
145 
146  // VIRT-4
147  [
148  SourceItemInterface::SOURCE_CODE => 'eu-1',
149  SourceItemInterface::SKU => 'VIRT-4',
150  SourceItemInterface::QUANTITY => 1,
151  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
152  ],
153  [
154  SourceItemInterface::SOURCE_CODE => 'eu-2',
155  SourceItemInterface::SKU => 'VIRT-4',
156  SourceItemInterface::QUANTITY => 0,
157  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
158  ],
159  [
160  SourceItemInterface::SOURCE_CODE => 'eu-3',
161  SourceItemInterface::SKU => 'VIRT-4',
162  SourceItemInterface::QUANTITY => 1,
163  SourceItemInterface::STATUS => SourceItemInterface::STATUS_OUT_OF_STOCK,
164  ],
165  [
166  SourceItemInterface::SOURCE_CODE => 'eu-disabled',
167  SourceItemInterface::SKU => 'VIRT-3',
168  SourceItemInterface::QUANTITY => 1,
169  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
170  ],
171  [
172  SourceItemInterface::SOURCE_CODE => 'us-1',
173  SourceItemInterface::SKU => 'VIRT-4',
174  SourceItemInterface::QUANTITY => 1,
175  SourceItemInterface::STATUS => SourceItemInterface::STATUS_IN_STOCK,
176  ],
177 ];
178 
180 foreach ($sourcesItemsData as $sourceItemData) {
182  $sourceItem = $sourceItemFactory->create();
183  $dataObjectHelper->populateWithArray($sourceItem, $sourceItemData, SourceItemInterface::class);
185 }