Magento 2, будучи багатофункціональною платформою електронної комерції, дозволяє створювати продукти з адмін панелі. Є доволі багато опцій, які вам треба заповнити, щоб створити простий продукт в Magento 2, що, очевидно, займає певний час.

Проте, якщо вам доведеться створити величезну кількість продуктів, особливо під час розробки або тестування?

У цьому випадку найпростішим буде створити продукти програмно. І це саме те, про що ви дізнаєтесь в цій статті.

Використовуйте наступний метод для того, щоб програмно створити простий продукт в Magento 2:

getObjectManager();
$state = $objectManager->get('\Magento\Framework\App\State');
$state->setAreaCode('frontend');

$product = $objectManager->create('Magento\Catalog\Model\Product');

try {
    $product->setName('Test Product');
    $product->setTypeId('simple');
    $product->setAttributeSetId(4);
    $product->setSku('test-SKU');
    $product->setWebsiteIds(array(1));
    $product->setVisibility(4);
    $product->setPrice(array(1));
    $product->setImage('/testimg/test.jpg');
    $product->setSmallImage('/testimg/test.jpg');
    $product->setThumbnail('/testimg/test.jpg');
    $product->setStockData(array(
            'use_config_manage_stock' => 0,
            'manage_stock' => 1,
            'min_sale_qty' => 1,
            'max_sale_qty' => 2,
            'is_in_stock' => 1,
            'qty' => 100
        )
    );

    $product->save();

    // Adding Custom option to product
    $options = array(
        array(
            "sort_order" => 1,
            "title" => "Custom Option 1",
            "price_type" => "fixed",
            "price" => "10",
            "type" => "field",
            "is_require" => 0
        ),
        array(
            "sort_order" => 2,
            "title" => "Custom Option 2",
            "price_type" => "fixed",
            "price" => "20",
            "type" => "field",
            "is_require" => 0
        )
    );
    foreach ($options as $arrayOption) {
        $product->setHasOptions(1);
        $product->getResource()->save($product);
        $option = $objectManager->create('\Magento\Catalog\Model\Product\Option')
            ->setProductId($product->getId())
            ->setStoreId($product->getStoreId())
            ->addData($arrayOption);
        $option->save();
        $product->addOption($option);
    }
} catch (\Exception $e) {
    echo $e->getMessage();
}

Важко було?

Це найпростіший спосіб програмного створення простих продуктів з деякими кастомними атрибутами в Magento 2. Якщо ви не бачите продукт на вітрині магазину, зробіть reindex та очистіть кеш Magento 2.

Однак, як уже згадувалося раніше, Magento дозволяє створювати кілька типів продуктів. Тож якщо вас це цікавить, ознайомтеся з цією статтею про Типи продуктів в Magento 2 та дізнайтеся більше про інші продукти, їхні відмінності та поради щодо керування ними.