jjzjj

php - Magento:在设置脚本中向分组产品添加新属性

coder 2024-04-27 原文

我正在为分组产品开发一个小型 Magento 扩展程序。此扩展需要另一个属性,所以我想我可以编写一个设置脚本,为分组产品添加一个新属性。但几乎所有我尝试在 Magento 中做的事情,结果都比我预期的要复杂得多。 Magento 官方论坛没有真正的帮助,所以我希望在这里得到一些支持:)

新属性应该只出现在分组产品的“常规”选项卡中;简单产品、可配置产品、捆绑产品等应保持不变。该属性应该独立于所选属性集,就像它是系统属性一样。

为此,我认为我可以将属性添加到分组产品的实体中,但正如我发现的那样,没有针对分组产品的特殊实体,只有一般产品的实体“catalog_product”。因此我的下一个想法是,我需要将属性添加到“catalog_product”实体,然后将其分配给正确的属性组,以便它仅适用于分组产品。

问题是我对 Magento 还不是很深入,我完全不知道我应该如何找到相应的属性组,或者我的想法是否会奏效,也许我完全走错了路:/

只是让你知道我到目前为止得到了什么: 我在扩展的配置文件中注册了我的设置脚本并且它正在执行,唯一的问题是设置脚本本身,它看起来像下面的 atm,因为 - 正如我所说 - 我还没有任何线索:

$installer = $this;
$installer->startSetup();
$installer->addAttribute("catalog_product", "my_attrib_name", array( /* just a placeholder */ ));
$installer->endSetup();

非常基本...

最佳答案

我现在想出了自己做这件事的方法。我的做法是正确的,我只需要找到相应的参数即可。

addAttribute() 调用现在如下所示:

// ...
$installer->addAttribute(
    "catalog_product", // Entity the new attribute is supposed to be added to
    "my_attrib_code", // attribute code
     array( // Array containing all settings:
        "type" => "varchar",
        "label" => "My attribute",
        "note" => "Insert additional information about the attribute here",
        "input" => "text",
        "global" => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
        // Dont know if this is really necessary, but it makes sure 
        // the attribute is created as a system attribute:
        "user_defined" => false,
        // This makes sure the attribute only applies to grouped products
        "apply_to" => Mage_Catalog_Model_Product_Type::TYPE_GROUPED
    )
);
// ...

现在安装程序添加的属性是系统属性,它会自动添加到每个属性集的“常规”组中,并且不能更改/移动。如我所愿,它也仅适用于分组产品。

关于php - Magento:在设置脚本中向分组产品添加新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351031/

有关php - Magento:在设置脚本中向分组产品添加新属性的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  3. ruby-openid:执行发现时未设置@socket - 2

    我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass

  4. ruby-on-rails - 按天对 Mongoid 对象进行分组 - 2

    在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev

  5. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  6. ruby - 将 Bootstrap Less 添加到 Sinatra - 2

    我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它

  7. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  8. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  9. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  10. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

随机推荐