Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AttributeCollectionProvider.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
10 use Magento\Eav\Model\Entity\AttributeFactory;
12 use Magento\ImportExport\Model\Export\Factory as CollectionFactory;
15 
20 {
24  private $collection;
25 
29  private $attributeFactory;
30 
36  public function __construct(
37  CollectionFactory $collectionFactory,
38  AttributeFactory $attributeFactory
39  ) {
40  $this->collection = $collectionFactory->create(Collection::class);
41  $this->attributeFactory = $attributeFactory;
42  }
43 
48  public function get(): Collection
49  {
50  if (count($this->collection) === 0) {
52  $sourceCodeAttribute = $this->attributeFactory->create();
53  $sourceCodeAttribute->setId(SourceItemInterface::SOURCE_CODE);
54  $sourceCodeAttribute->setDefaultFrontendLabel(SourceItemInterface::SOURCE_CODE);
55  $sourceCodeAttribute->setAttributeCode(SourceItemInterface::SOURCE_CODE);
56  $sourceCodeAttribute->setBackendType('varchar');
57  $this->collection->addItem($sourceCodeAttribute);
58 
60  $skuAttribute = $this->attributeFactory->create();
62  $skuAttribute->setBackendType('varchar');
63  $skuAttribute->setDefaultFrontendLabel(SourceItemInterface::SKU);
64  $skuAttribute->setAttributeCode(SourceItemInterface::SKU);
65  $this->collection->addItem($skuAttribute);
66 
68  $statusIdAttribute = $this->attributeFactory->create();
69  $statusIdAttribute->setId(SourceItemInterface::STATUS);
70  $statusIdAttribute->setDefaultFrontendLabel(SourceItemInterface::STATUS);
71  $statusIdAttribute->setAttributeCode(SourceItemInterface::STATUS);
72  $statusIdAttribute->setBackendType('int');
73  $statusIdAttribute->setFrontendInput('select');
74  $statusIdAttribute->setSourceModel(StockStatus::class);
75  $this->collection->addItem($statusIdAttribute);
76 
78  $quantityAttribute = $this->attributeFactory->create();
79  $quantityAttribute->setId(SourceItemInterface::QUANTITY);
80  $quantityAttribute->setBackendType('decimal');
81  $quantityAttribute->setDefaultFrontendLabel(SourceItemInterface::QUANTITY);
82  $quantityAttribute->setAttributeCode(SourceItemInterface::QUANTITY);
83  $this->collection->addItem($quantityAttribute);
84  }
85 
86  return $this->collection;
87  }
88 }
$skuAttribute
__construct(CollectionFactory $collectionFactory, AttributeFactory $attributeFactory)
addItem(\Magento\Framework\DataObject $item)
Definition: Collection.php:399