Newsroom

Prestashop: requêtes SQL pour nettoyer les transporteurs et copier les tranches de poids

Nettoyage

Prestashop a une curieuse façon de gérer les transporteurs, ce qui fait que très vite les tables sont remplies pour rien. La suppression ne supprime pas vraiment, le champ deleted est à 1 bref.
Pour nettoyer tout ça, voici la procédure à suivre:

  1. Nettoyer la table ldt_carrier:

    DELETE from `ldt_carrier` WHERE deleted=1

  2. Nettoyer les autres tables correspondantes en supprimant tout ce qui avait un lien vec les données supprimées:


DELETE from `ldt_carrier_group` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);
DELETE from `ldt_carrier_lang` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);
DELETE from `ldt_carrier_shop` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);
DELETE from `ldt_carrier_tax_rules_group_shop` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);
DELETE from `ldt_carrier_zone` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);
DELETE from `ldt_range_price` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);
DELETE from `ldt_range_weight` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);
DELETE from `ldt_delivery` WHERE id_carrier NOT IN (SELECT id_carrier FROM ldt_carrier);

Copie de tranches

Lorsqu'on a renseigné toutes nos tranches de poids pour un tarnsporteur, on a pas particulièrement envie de refaire le travail pour le 2ème voici donc comment copier les tranches d'un transporteur à l'autre:

  1. récuper les ids des transporteur source (qui a déjà les tranches) et destination (qui veut récupérer les tranches en les copiant) en regardant dnas votre backoffice, Expédition/Transporteurs la colonne ID.
  2. Exécutez la requêtes en remplaçant par vos ids:


INSERT INTO ldt_range_weight(
SELECT NULL , id_carrier_destination, delimiter1, delimiter2
FROM ldt_range_weight
WHERE id_carrier =id_carrier_source) ;

 

Commentaires 2

Guest - Alex Giannelli

le jeudi 17 décembre 2015 14:09

Merci pour ton article ! Même s'il date de début 2014, ça m'a permis d'identifier rapidement les tables gérant les prix de livraison affectées aux zones. Je complète donc avec quelques infos : pour Prestashop 1.6, si l'on souhaite exécuter des requêtes SQL afin de remplir en masse les frais de livraison des transporteurs en fonction des zones, les 2 tables principales sont ps_range_weight et ps_delivery. Il peut y en avoir d'autres pour des cas plus complexes. Merci et à bientôt !

Merci pour ton article ! Même s'il date de début 2014, ça m'a permis d'identifier rapidement les tables gérant les prix de livraison affectées aux zones. Je complète donc avec quelques infos : pour Prestashop 1.6, si l'on souhaite exécuter des requêtes SQL afin de remplir en masse les frais de livraison des transporteurs en fonction des zones, les 2 tables principales sont ps_range_weight et ps_delivery. Il peut y en avoir d'autres pour des cas plus complexes. Merci et à bientôt ! :)

Guest - Coco

le mardi 20 décembre 2016 23:00

Merci Alex,
J'ai pu solutionner un PB de tranches "qui se chevauchent" grâce à vous.

Merci Alex, J'ai pu solutionner un PB de tranches "qui se chevauchent" grâce à vous.
Pas encore de commentaire
avatar du commentateur
Guest
lundi 27 septembre 2021

Image Captcha

captcha

By accepting you will be accessing a service provided by a third-party external to https://www.pulsar-agency.com/