Установить значение атрибута в magento 2 - PullRequest
0 голосов
/ 08 февраля 2019

Я создал пользовательский атрибут my_shipping_charge в magento 2 программно.Я установил значение по умолчанию «0» для этого атрибута.Он отлично работает, когда я создаю новый продукт.Но что, если я хочу установить этот атрибут для уже созданного продукта, что мне делать?Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 12 февраля 2019

Для уже созданных продуктов нам придется обновлять вручную, если коллекция продуктов больше, можно запустить файл в корне.В этом корневом файле мы можем загрузить всю коллекцию продуктов и установить значение настраиваемого атрибута для всех продуктов и сохранить его.

Пользовательский файл в корневой папке будет выглядеть следующим образом:

<?php
use \Magento\Framework\App\Bootstrap;
require __DIR__ . "/app/bootstrap.php";
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$instance = \Magento\Framework\App\ObjectManager::getInstance();
$state = $objectManager->get('\Magento\Framework\App\State');
$state->setAreaCode('frontend');
$product_collections = $instance ->get('\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');
$collections = $product_collections->create();
$shippingCharge = "custom value";
foreach ($collections as $product) {
    $product->setMyShippingCharge($shippingCharge);
    $product->save();
}
?>

$ shippingCharge будет пользовательским значением, которое нужно обновить.Запустите корневой файл в терминале и переиндексируйте.И проверь из админки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...