Merci pour ton aide, ça m'a permis de réfléchir aux outils que j'utilisais.
Avant de faire quoi que ce soit avec la base de donnée, il m'a été bon de voir l'introduction sur le design EAV, je remet le lien wikipédia :
http://en.wikipedia.org/wiki/Entity-Attribute-Value_model
Je suis parvenu à faire ce que je voulais, c'est un bon exercice !!
Générer un liste des doublons sur clef d'url :
| Code : |
select count(value) as valuecount, value
from catalog_product_entity_varchar cpev
left join eav_attribute ea
on cpev.attribute_id = ea.attribute_id
where attribute_code = 'url_key'
group by value
having valuecount > 1;
|
Mise en majuscules de la première lettre de certains attributs
| Code : |
update
catalog_product_entity_varchar cpev
left join eav_attribute ea
on cpev.attribute_id = ea.attribute_id
set
value = concat(upper(substring(cpev.value, 1, 1)), substring(cpev.value from 2))
where
ea.is_user_defined = true
and ea.backend_type = 'varchar'
and cpev.value is not null
and cpev.value != '';
|
Pour vérifier avant un commit :
| Code : |
select
cpev.value,
ea.attribute_code
from
catalog_product_entity_varchar cpev
left join eav_attribute ea
on cpev.attribute_id = ea.attribute_id
where
ea.is_user_defined = true
and ea.backend_type = 'varchar'
and cpev.value is not null
and cpev.value != '';
|
Pour la première image qui représente un produit, permet d'afficher l'image dans la zone "Plus d'images".
| Code : |
update catalog_product_entity_media_gallery_value set disabled = false where position = 1;
|
Tri par dernière modification (Il existe peut être une meilleure façon de faire)
Ce point m'est très utile. Attention je ne sais pas s'il est correct d'ajouter directement des enregistrements de valeurs d'attributs.
Je ne mesure pas non plus l'impact de performances, notament sur les catalogues à plat.
Je n'ai pas remarqué d'anomalie ni de ralentissement sur un catalogue de 1500 références.
Dans l'administration, je crée un attribut de code 'admin_updated_at' de type date, étiqueté "Dernière mise à jour".
Cet attribut ne sera pas visible dans le front office, aussi je sélectionne toutes les propriétés à 'Non'.
J'associe cet attribut au groupe d'attributs par défaut, et par extension, à tous les autres groupes.
Je peux alors sélectionner l'attribut pour l'affichage dans l'extension 'Enhanced Product Grid'.
Cela m'offrira alors la possibilité d'ordonner les produits du catalogue par rapport à cet attribut.
Reste à remplir automatiquement l'attribut avec la date de modification du produit.
Mofifier un produit dans l'admin en prenant soin de saisir une date de dernière modification.
Examiner la table catalog_product_entity_datetime et adapter les valeurs à la requête suivante :
La requête permet d'insérer la valeur d'attribut date de dernière modification pour chaque produit.
Elle modifie la valeur si celle ci est déjà en base.
| Code : |
insert into catalog_product_entity_datetime (
value_id,
entity_type_id,
attribute_id,
store_id,
entity_id,
value
)
select
null as value_id,
4 as entity_type_id,
529 as attribute_id,
0 as store_id,
cpe.entity_id,
cpe.updated_at
from
catalog_product_entity as cpe
on duplicate key update
value = cpe.updated_at;
|
A partir de ça je peux retrouver les derniers produits modifiés dans la gestion des produits de l'extension 'Enhanced Product Grid'...