如何在Magento中实现相关产品的网格?

时间:2016-03-30 13:06:51

标签: php magento magento-1.9

过去很多天我一直试图完成这项工作。不太了解逻辑。这就是我在做什么。

我想为为产品分配视频创建 Magento 1.9.x 扩展程序。我已经完成了视频部分。我被困在如何将它们分配给特定产品。我想在产品编辑页面中显示网格,就像Related,Upsell,Cross Sell产品一样。应使用我的自定义模型中的视频信息填充此网格。

我已经研究了很多,我可以找到解释如何将其他产品分配给特定产品的文章。我还阅读了有关 Grid Serializer 的工作的文章。但没有文章谈到将我的自定义模型(表)实体与特定产品分配。我也试图通过相关产品的逻辑,但我不太了解它。

我到这儿做了。我正在网格中显示我的视频。

enter image description here

但我无法保存它们。当我尝试编辑现有产品时,它们也不起作用。这是因为我不清楚逻辑。有人可以分享一下吗?将获得任何形式的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

在网格序列化程序中,您选择了所选视频的参数名称,如:

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

如果没有,只需添加即可。 现在,您应该创建一个观察者,以便在保存时将所选视频与当前产品相关联,您可以将其添加到adminhtml中的事件catalog_product_prepare_save中。 被调用的方法应该做类似的事情:

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

custom_attribute_for_videos是您要用于将视频与产品相关联的产品属性(类型数组)的代码。否则,只要需要,您可以创建联合表(products_videos)并通过将观察者中的数据(视频和产品ID)设置为关系模型并保存它来保存关系。

相关问题