2016-03-30 13 views
3

Ich habe versucht, dies für die Vergangenheit viele Tage zu tun. Nicht ganz logisch. Hier ist was ich mache.Wie implementiert man ein Gitter wie verwandte Produkte in Magento?

Ich möchte für Zuordnung Videos zu Produkten eine Magento 1.9.x Erweiterung erstellen. Ich habe den Videos Teil abgeschlossen. Ich bin fest, wie man sie bestimmten Produkten zuordnen kann. Ich möchte Raster in der Produktbearbeitungsseite anzeigen, genau wie Related, Upsell, Cross Sell-Produkte. Dieses Raster sollte mit den Videoinformationen aus meinem benutzerdefinierten Modell ausgefüllt werden.

Ich habe viel recherchiert und konnte Artikel finden, die erklären, wie man einem bestimmten Produkt andere Produkte zuordnet. Ich habe auch Artikel über die Arbeit der Grid Serializer gelesen. Aber kein Artikel spricht über die Zuordnung meiner benutzerdefinierten Modell (Tabelle) -Entitäten mit einem bestimmten Produkt. Ich habe auch versucht, die Logik der verwandten Produkte durchzugehen, aber ich verstehe es nicht ganz.

Ich habe bis hier getan. Ich zeige meine Videos im Raster.

enter image description here

Aber ich bin nicht in der Lage, sie zu retten. Sie funktionieren auch nicht, wenn ich versuche, ein vorhandenes Produkt zu bearbeiten. Dies liegt daran, dass ich mit der Logik nicht klar bin. Könnte jemand etwas Licht dazu sagen? Ich werde jede Art von Hilfe zu schätzen wissen. Vielen Dank!

Antwort

0

In Ihrem Raster Serializer haben Sie die Parameternamen für die ausgewählten Videos etwas wie gewählt:

<action method="initSerializerBlock"> 
        <grid_block_name>[[videos grid class]]</grid_block_name> 
        <data_callback>getSelectedProducts</data_callback> 
        <hidden_input_name>selected_videos</hidden_input_name> 
        <reload_param_name>selected</reload_param_name> 
       </action> 

Wenn nicht, ist es einfach hinzufügen. Jetzt sollten Sie einen Beobachter erstellen, um die ausgewählten Videos dem aktuellen Produkt beim Speichern zuzuordnen. Sie können es zum Ereignis catalog_product_prepare_save in adminhtml hinzufügen.

$selectedVideos = Mage::app()->getRequest()->getPost('selected_videos', []); 
$product->setData('custom_attribute_for_videos', 
        Mage::helper('adminhtml/js')->decodeGridSerializedInput($selectedVideos) 
       ); 

custom_attribute_for_videos ist der Code des Attributs Produkt (vom Typ Array), die Sie verwenden, um gehen, Videos zu Produkten zu verknüpfen: die aufgerufene Methode sollte so etwas wie zu tun. Andernfalls können Sie bei Bedarf die gemeinsame Tabelle (products_videos) erstellen und die Beziehungen dort speichern, indem Sie die Daten (das Video und die Produkt-IDs) im Beobachter auf das Beziehungsmodell setzen und speichern.

Verwandte Themen