Guten Morgen Robert,
ohne deine Shopversion, oder die vorgenommene Änderung zu kennen, ist es nicht einfach, eine konkrete Lösung anzubieten.
Grundsätzlich muss entweder der Datenbankbefehl, der den Bestand reduziert nicht ausgeführt werden, oder ein zusätzlicher Befehl setzt den Bestand wieder hoch, wenn das Attribut verwendet wird.
Welche Option zu verwenden ist, und wo du diese einfügst, hängt auch von den Einstellungen des Shops ab.
in der Shopversion 2.0.4.x gibt es diese Möglichkeiten:
A) checkout_prozess.php (nicht updatesicher):
Der Datenbankbefehl in Zeile 230
xtc_db_query("UPDATE ".TABLE_PRODUCTS."
SET products_quantity = '".$stock_left."'
WHERE products_id = '".xtc_get_prid($order->products[$i]['id'])."'");
Darf nicht ausgeführt werden, wenn das Attribut verwendet wird.
B) checkout_prozess.php (nicht updatesicher):
Hinter diesem Code-Block
// update attribute stock
if ($update_attr_stock === true) {
xtc_db_query("UPDATE ".TABLE_PRODUCTS_ATTRIBUTES."
SET attributes_stock=attributes_stock - '".$order->products[$i]['qty']."'
WHERE products_id='".xtc_get_prid($order->products[$i]['id'])."'
AND options_values_id='".$order->products[$i]['attributes'][$j]['value_id']."'
AND options_id='".$order->products[$i]['attributes'][$j]['option_id']."'
");
}
wird der Bestand des Produkts zurückgesetzt, wenn $order->products[$i]['attributes'][$j]['option_id'] == 13.
Beides kann auch Updatesicher implementiert werden, indem die bestellte Anzahl wieder addiert wird.
Dafür sind entsprechende Dateien hier anzulegen:
Für Lösung A)
includes/extra/checkout/checkout_process_products
Für Lösung B)
includes/extra/checkout/checkout_process_attributes/
Die Anpassung sollte ein Programmierer deines Vertrauens durchführen.
Viele Grüße
Andreas