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 дозволяє створювати кілька типів продуктів. Тож якщо вас це цікавить, ознайомтеся з цією статтею про  та дізнайтеся більше про інші продукти, їхні відмінності та поради щодо керування ними.