Existe-t-il un moyen de supprimer plusieurs produits en filtrant avec SKU? J'ai environ 1000 produits à supprimer.
12
La façon la plus rapide de le faire est d'exécuter cette requête directement.
DELETE FROM `catalog_product_entity` WHERE `sku` IN ('SKU1', 'SKU2', ...., 'SKU1000');
Tout devrait bien jaillir. les valeurs d'attribut seront supprimées, les relations de catégorie seront supprimées, les ventes incitatives, les ventes croisées et connexes, etc.
[EDIT]
Il y a un hic à cela. Merci à STW d'avoir repéré cela. Les avis et notes resteront orphelins car il n'y a pas de clé étrangère dans le tableau des produits pour eux.
->delete()
mais esquivera tout code à l'écoute des événements. En stock Magento, il semble que les avis et les évaluations seront orphelins (ils ne seront pas supprimés lorsque leur produit associé le sera).catalog_product_entity_*
tables ont un FK sur leentity_id
terrain sur lecatalog_product_entity.entity_id
terrain. Ils devraient bien cascade.Tout le respect dû à Marius, mais s'il vous plaît n'interagissez pas directement avec la base de données si elle est évitable. Peut - être que les tableaux associés seront mis à jour automatiquement, si votre version de Magento et toutes vos extensions sont exemptes de bogues aux bons endroits. Mais s'ils ne le sont pas, ce genre de chose peut détruire votre site.
Au lieu de cela, vous pouvez utiliser la propre fonction d'importation CSV de Magento.
Listez simplement vos références dans un fichier, aussi simple que:
...etc. Enregistrez ensuite en tant que fichier CSV.
Ensuite, dans Système> Importer / Exporter> Importer, sélectionnez Type d'entité: produits et comportement d'importation: supprimer les entités et importez ce fichier. Et c'est tout!
la source
Mage_ImportExport_Model_Import_Entity_Product::_deleteProducts()
)Vous pouvez le faire par programme. Créez un skustodelete.csv répertoriant tous les skus à supprimer et après cela, voici le code pour continuer
la source
La méthode sans code
Dans la section d'administration sous
Manage Products
trouverait une grille avec tous vos produits. Il y a une colonne appeléeSKU
. Ici, vous pouvez filtrer vos produits en fonction de la valeur.Ensuite, une fois que vous avez filtré par SKU, vous pouvez utiliser les cases à cocher sur le côté gauche pour sélectionner tous les éléments que vous souhaitez supprimer.
Remarquez
select all
qui sélectionnera tous les éléments de la grille complète etselect visible
qui ne sélectionnera que les éléments de la page actuelle de la grille.Une fois que vous avez sélectionné les éléments que vous souhaitez, vous pouvez utiliser le bouton d'action de masse en haut à droite de la grille et sélectionner l'option de suppression.
Cela vous invitera à vous assurer de vouloir supprimer ces éléments. Après avoir sélectionné oui à ce pop-up, il supprimera vos éléments. En fonction de vos paramètres d'index, vous devrez peut-être exécuter une réindexation après ce processus.
la source
Kevin S, vous pouvez supprimer le produit par fichier csv. Suivez simplement l'étape
Étape 1 :
Créez un fichier csv et passez les skus que vous souhaitez supprimer du système. Donnez le nom de fichier sous skus.csv
Étape 2 :
Créez et remplacez un fichier php dans votre répertoire racine. Ensuite, passez le code suivant
Remarque: je vous ai recommandé avant d'exécuter ce code que vous devez obtenir la sauvegarde. J'espère que cela vous aidera.
la source
Parce que lister les tableaux
sont des clés étrangères de catalog_product_entity.
Ainsi, lorsque vous supprimez un enregistrement dans catalog_product_entity, certains enregistrements des tables ci-dessus seront également supprimés.
Code (implémentez la réponse de Marius) supprimez tous les produits qui ont entity_id <= 18069:
la source