【发布时间】:2016-10-25 18:00:22
【问题描述】:
有没有办法为所有产品生成 URL 密钥并使用脚本保存它们?
我从数据库中删除了产品的所有 URL 键,但现在我想使用脚本再次生成它们。
// 编辑:我需要在 Magento 2 中执行此操作。忘记指定。
直到现在我才知道:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
$obj = $bootstrap->getObjectManager();
$deploymentConfig = $obj->get('Magento\Framework\App\DeploymentConfig');
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');
$repo = $objectManager->get('Magento\Catalog\Model\ProductRepository');
$collection = $productCollection->create()
->addAttributeToSelect('*')
->load();
foreach ($collection as $product){
$name = $product->getName();
$url = preg_replace('#[^0-9a-z]+#i', '-', $name);
$url = strtolower($url);
echo $url;
$pr = $repo->getById($product->getId());
$pr->setUrlKey($url);
$repo->save($pr);
break;
}
但我收到此错误:
致命错误:在 /home2/magazi70/public_html/vendor/magento/module-catalog/Model/Config/Source/Product/Options 中调用未定义函数 Magento\Catalog\Model\Config\Source\Product\Options__() /Price.php 第 23 行
【问题讨论】:
-
这段时间你的问题解决了吗?
标签: magento2