2 Stimmen

Manuelles Hinzufügen benutzerdefinierter Optionen zu vorhandenen Produkten

Ich versuche, einige benutzerdefinierte Optionen zu bereits vorhandenen Produkten in Magento hinzuzufügen. Scheint gut zu funktionieren, ich habe die benötigten Zeilen in den folgenden Tabellen hinzugefügt:

catalog_product_option
catalog_product_option_title
catalog_product_option_type_value
catalog_product_option_type_price
catalog_product_option_type_title

Ich habe auch aktualisiert has_options y required_options für das richtige Produkt, in den folgenden Tabellen:

catalog_product_entity
catalog_product_flat_1
catalog_product_flat_2
catalog_product_flat_3

Wenn ich das Produkt öffne, werden die Optionen nicht angezeigt, eher weniger. Die Schaltfläche zum Bestellen verschwindet. Wenn ich das Produkt öffne bearbeiten Seite, werden die Optionen angezeigt. Nach dem Speichern wird sie auch im Frontend angezeigt.

Was übersehe ich?

Aktualisierung: Nachdem ich buchstäblich jede Abfrage, die nach einem Speichervorgang ausgeführt wurde, manuell durchgegangen war, entdeckte ich, was mir fehlte. Wenn ein Produkt Optionen hat, muss es diese in einer anderen Vorlage (oder wie auch immer es in Magento genannt wird). Um dies zu tun, müssen Sie den Wert für das Attribut ändern options_container .

Es gibt also eine einfache Lösung dafür. Schauen Sie einfach nach dem attribute_id in der Tabelle eav_attribute . Führen Sie dann einfach die folgende Abfrage für jedes Produkt aus:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId;

Das wird schon klappen! :)

0voto

Guido Hendriks Punkte 5566

Nachdem ich buchstäblich jede Abfrage, die nach einem Speichervorgang ausgeführt wurde, manuell überprüft hatte, fand ich heraus, was mir fehlte. Wenn ein Produkt Optionen hat, muss es diese in einer anderen Vorlage (oder wie auch immer es in Magento genannt wird). Um dies zu tun, müssen Sie den Wert für das Attribut ändern options_container .

Es gibt also eine einfache Lösung dafür. Schauen Sie einfach nach dem attribute_id in der Tabelle eav_attribute . Führen Sie dann einfach die folgende Abfrage für jedes Produkt aus:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId;

Das wird schon klappen! :)

0voto

Nick McCormack Punkte 520

Sie sollten wirklich nicht direkt auf die Datenbank zugreifen, egal aus welchem Grund. Dies untergräbt die Leistungsfähigkeit und den Einfallsreichtum eines EAV-Systems.

  1. Erweitern Sie Mage.php, wenn Sie außerhalb von Magento sind (wenn nicht, ignorieren Sie es)
  2. Erstellen Sie eine Sammlung der Entitäten, die Sie manipulieren möchten
  3. Diese Sammlung zum Schreiben/Lesen von Daten verwenden
  4. Ersparen Sie sich spätere Kopfschmerzen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X