所以我找到了一个关于动态期权定价问题的答案,但这导致我感到难过。我可以理解大部分答案,但是当谈到XML和模块实现时,我已经迷失了。
这是我想要做的事情:
http://www.magentocommerce.com/boards/viewthread/260544/#t348802
需要覆盖 Mage_Catalog_Model_Product_Type_Price 模型和 Mage_Catalog_Block_Product_View_Options 块。
修改后的Price.php位于
的 /app/core/local/rtega/dynamicPrice/Model/Product/Type/Price.php 的
修改后的Options.php位于
的 /app/core/local/rtega/dynamicPrice/Block/Product/View/Options.php 的
在
中有rtega_dynamicPrice.xml的 /应用的/ etc /模块/ 的
下面是
中的当前config.xml的 /应用程序/核心/本地/ rtega / dynamicPrice的/ etc / 的
<?xml version="1.0"?>
<config>
<modules>
<rtega_dynamicPrice>
<version>1.0.0</version>
</rtega_dynamicPrice>
</modules>
<global>
<blocks>
<catalog>
<rewrite>
<product_view_options>rtega_dynamicPrice_Block_Product_View_Options</product_view_options>
</rewrite>
</catalog>
</blocks>
<catalog>
<product>
<type>
<configurable>
<price_model>rtega_dynamicPrice_Model_Product_Type_Price</price>
</configurable>
</type>
</product>
</catalog>
</global>
</config>
非常感谢任何帮助!
答案 0 :(得分:3)
要提三件事。
首先,我不知道Magento将如何处理你的&#34; rtega&#34;和&#34; dynamicPrice&#34;。这可能会导致现在或将来出现问题。我推荐的外壳是&#34; Rtega&#34;和&#34; Dynamicprice&#34;。但它可能没问题。
其次,你的块重写xml看起来很好,但目录模型的重写是不正确的。我希望看到:
<config>
...
<global>
...
<models>
<catalog>
<rewrite>
<product_type_price>rtega_dynamicPrice_Model_Product_Type_Price</product_type_price>
</rewrite>
</catalog>
</models>
...
</global>
...
</config>
考虑这个问题的最佳方法是将其分解为首先如何实例化原始模型。在这种情况下,我们会打电话给
Mage::getModel("catalog/product_type_price");
所以第一个xml节点是&#34; models&#34;,因为这是一个模型,下一个xml节点是斜杠(目录)之前的部分,然后添加一个重写标记,然后在斜杠变为下一个xml节点,如下所示:
<models>
<catalog>
<rewrite>
<product_type_price>
第三,在这种情况下,看到您提到的文件位于以下位置非常重要:
/app/core/local/rtega/dynamicPrice/Model/Product/Type/Price.php and
/app/core/local/rtega/dynamicPrice/Block/Product/View/Options.php
如果你还没有这样做,你需要定义这样的类:
class rtega_dynamicPrice_Model_Product_Type_Price extends Mage_Catalog_Model_Product_Type_Price {
然后重新定义要修改的函数。
我希望这对你有所帮助!