GX-Task #47190
geschlossenDeleter vom Produkt-Service löschen nicht in allen relevanten Tabellen
100%
Deleter-Klasse des Produkt-Services löscht aus allen relevanten Tabellen, neue öffentliche Methoden im ProductWriteService mit äquivalenter Logik zum löschen
Beschreibung
Die Deleter von Produkt- und Kategorie-Service sollten in allen Tabellen löschen, wo auch aktuell gelöscht wird, wenn im Gambio Admin ein Produkt bzw. eine Kategorie gelöscht wird, um Lösch-Anomalien zu vermeiden.
Checkliste 0/0
Zugehörige Tickets
Von Moritz Bunjes vor fast 9 Jahren aktualisiert
Für eine saubere Lösung wollen wir weiter ausholen und zwischen ProductService und ProductRepository einen ProductDeleter schalten, der das Produkt als Gesamtheit sieht und alles zum Produkt löscht. Das ProductRepository soll sich nur um die Kerndaten vom Produkt kümmern.
Zielversion ist GX3.3.
Nonito wird dies noch konzipieren (UML uws.)
Von Daniel Wu vor mehr als 8 Jahren aktualisiert
- Tracker wurde von GX-Bug zu GX-Task geändert
- Status wurde von Feedback zu Anerkannt geändert
- Zugewiesen an wurde von Nonito Capuno zu Daniel Wu geändert
Nonito nochmal drauf ansprechen
Von Daniel Wu vor etwa 8 Jahren aktualisiert
Ich habe keine Rücksprache mit Nonito darüber gehalten, aber ich bin der Meinung, dass das einfach umgesetzt werden sollte, weil es sinnvoll ist.
Von Tobias Schindler vor etwa 8 Jahren aktualisiert
Die Analyse hat folgendes ergeben:
Tabellen, die von der alten Lösch-Logik berücksichtigt werden:
Ohne Bedingung, by product_id:
specials, products, products_images, products_to_categories, products_description, products_attributes, customers_basket, customers_basket_attributes, gm_prd_img_alt, gm_gmotion, gm_gmotion_products, categories_index, products_quantity_unit, products_google_categories, products_item_codes
products_content:
check duplicate contents, if none exists, remove content file. Delete database record in every case
Remove products_image and mo_images (logic should exist in current deleter version)
Remove related additional field values[ descriptions]:
additional_field_values, additional_field_values_descriptions
Remove related feature sets:
feature_set_to_products (by products_id), feature_index, feature_set, feature_set_values (by related feature_set_id)
Remove product properties
customers_basket (products_id LIKE "%x'.$combiId.'"'), remove properties image if exist,
products_properties_combis, products_properties_combis_values, products_properties_index, products_properties_admin_select, products_properties_combis_defaults
Remove from (dynamic) personal_offers_by_customers_status_ table:
- xtc_get_customers_statuses (fetch customer status ids)
- loop around statuses and remove records of dynamic table, use customer status id as table suffix
Remove related reviews:
reviews, reviews_description
call xtc_reset_cache_block with categories and also_purchased as arguments
Umsetzung folgt nun!