Projekt

Allgemein

Aktionen

GX-Task #47190

geschlossen

Deleter vom Produkt-Service löschen nicht in allen relevanten Tabellen

Von Moritz Bunjes vor fast 9 Jahren hinzugefügt. Vor etwa 8 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
Mirko Janssen
Kategorie:
Refactoring
Zielversion:
% erledigt:

100%

Steps to reproduce:
Betroffene Versionen:
3.1.1.0 beta3
Release Notes Langtext:

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

Vorgänger von GX-Entwicklung - GX-Task #51830: ProductsWriteService im Löschvorgang des Admin implementierenErledigtMirko Janssen

Aktionen
Aktionen #4

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.)

Aktionen #9

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

Aktionen #12

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.

Aktionen #14

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:

  1. xtc_get_customers_statuses (fetch customer status ids)
  2. 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!

Aktionen