prestashop 后端和前端的产品重复
duplication of products in prestashop backend and front
我已经导入了 16 000 个产品,现在我有 57 000 个产品。
任何人都可以帮我删除所有重复的产品,如图所示。
具有不同 ID 和相同引用的产品。
图片后台:
正面图片:
你可以尝试类似的东西,你可以在开发环境中测试它,你应该在你的根项目中创建一个 php 文件。
require_once('config/config.inc.php');
require_once('init.php');
$query = "select id_product,reference from " . _DB_PREFIX_ . "product where active=1";
$res = Db::getInstance()->ExecuteS($query);
foreach($res as $prod){
$query = "select id_product from " . _DB_PREFIX_ . "product where reference=$prod['reference']";
$res = Db::getInstance()->ExecuteS($query);
$count = count($res);
if($count){
foreach ($res as $key => $p) {
if (--$count <= 0) {
// to not delete the last occurrence for a given reference
break;
}
$id_product = $p['id_product'];
$product = new Product((int)$id_product);
if($product->delete())
echo 'product '.$id_product.' is deleted';
}
}
}
我已经导入了 16 000 个产品,现在我有 57 000 个产品。 任何人都可以帮我删除所有重复的产品,如图所示。 具有不同 ID 和相同引用的产品。
图片后台:
正面图片:
你可以尝试类似的东西,你可以在开发环境中测试它,你应该在你的根项目中创建一个 php 文件。
require_once('config/config.inc.php');
require_once('init.php');
$query = "select id_product,reference from " . _DB_PREFIX_ . "product where active=1";
$res = Db::getInstance()->ExecuteS($query);
foreach($res as $prod){
$query = "select id_product from " . _DB_PREFIX_ . "product where reference=$prod['reference']";
$res = Db::getInstance()->ExecuteS($query);
$count = count($res);
if($count){
foreach ($res as $key => $p) {
if (--$count <= 0) {
// to not delete the last occurrence for a given reference
break;
}
$id_product = $p['id_product'];
$product = new Product((int)$id_product);
if($product->delete())
echo 'product '.$id_product.' is deleted';
}
}
}