我试图对我的Magento商店中的Checkout控制器进行一些更改,但是,当我尝试将控制器文件放入我的本地目录时,它似乎并不尊重本地文件.
我已经检查过这些文件在它们各自的代码池中的相同位置,并且文件被命名为相同的东西,它只是不会这样做.
这些是我拥有的两个文件的文件路径.
Magento中的结帐文件有什么特别之处可以阻止它们被覆盖吗?
我想创建一个基类,我的程序中的所有类都将扩展.我想做的一件事是找到一种统一的方法来存储对象内的所有实例变量.
我想到的是使用HashMap存储对象的键/值对,然后通过get和set方法公开这些值.
到目前为止我的代码如下:
package ocaff;
import java.util.HashMap;
public class OcaffObject {
private HashMap<String, Object> data;
public OcaffObject() {
this.data = new HashMap<String, Object>();
}
public Object get(String value) {
return this.data.get(value);
}
public void set(String key, Object value) {
this.data.put(key, value);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然功能上有效,但我很好奇这个实现是否存在任何实际问题,或者有更好的方法可以做到这一点?
在我的日常工作中,我是一名PHP程序员,我的目标是模仿我在PHP中用于Java的功能.
我为我们的Magento商店开发了一个自定义搜索引擎,我正在尝试按照特定的顺序加载产品集合(我根据我设计的算法对结果进行了排序).
我可以正确加载产品集合,但它不是我希望它的顺序.这里基本上是它如何工作:
我的数据库查询基本上带有PHP数组的产品ID.对于这个例子,让我们说它看起来像这样:
$entity_ids = array(140452, 38601 );
Run Code Online (Sandbox Code Playgroud)
现在我可以转换140452和38601,每次产品系列都以相同的顺序返回.我希望产品集合与实体ID的ID顺序相同.
我用来创建我的集合的代码如下:
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('entity_id', array('in' => $entity_ids))
->setPageSize($results_per_page)
->setCurPage($current_page)
->load();
Run Code Online (Sandbox Code Playgroud)
有没有办法将排序顺序设置为$ entity_ids数组的顺序?
我想在"我的帐户"页面上创建一个链接,该链接仅在特定条件下显示.
现在我通过在布局XML文件中添加以下条目来始终显示链接:
<customer_account>
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="nie"><name>nie</name><path>nie</path><label>NIE Admin</label></action>
</reference>
</customer_account>
Run Code Online (Sandbox Code Playgroud)
我假设有一种方法来编码,以便它只在某些情况下显示.
我正在尝试获得仅具有某些类别的销售价格的产品列表.现在我正在尝试使用产品集合来获取这些数据.我不确定如何仅限制特定类别的集合.这是我到目前为止:
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4)
->addAttributeToFilter('special_price', array('neq' => ""))
->addAttributeToFilter('discontinued', array('neq' => 1))
->setPageSize(10)
->setOrder('price', 'ASC')
;
Run Code Online (Sandbox Code Playgroud)
已停用的属性是我们使用的自定义属性,因此产品不会显示,也不会显示404.
有没有办法使用产品模型并限制到某些类别?
现在,我的Zend Framework应用程序的视图脚本位于application/views/scripts目录中.是否可以将此位置更改为可配置的位置?
我假设这在index.php文件或我的application.ini文件中的某个地方.
我为Magento创建了一些自定义模块,当我尝试为模块分配权限时(选中复选框),当我单击"保存"时,取消选中该框.
有人有主意吗?听起来有点像我的config.xml文件中的内容,所以我会在这里发布以防万一:
<config>
<modules>
<Wpe_Vendorlist>
<version>0.1.0</version>
</Wpe_Vendorlist>
</modules>
<admin>
<routers>
<vendorlist>
<use>admin</use>
<args>
<module>Wpe_Vendorlist</module>
<frontName>vendorlist</frontName>
</args>
</vendorlist>
</routers>
</admin>
<adminhtml>
<menu>
<customer>
<children>
<items module="vendorlist">
<title>SO Vendor List</title>
<sort_order>999</sort_order>
<action>vendorlist/adminhtml_vendorlist</action>
</items>
</children>
</customer>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<Wpe_Vendorlist>
<title>Vendorlist Module</title>
<sort_order>10</sort_order>
</Wpe_Vendorlist>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<vendorlist>
<file>vendorlist.xml</file>
</vendorlist>
</updates>
</layout>
</adminhtml>
<global>
<models>
<vendorlist>
<class>Wpe_Vendorlist_Model</class>
<resourceModel>vendorlist_mysql4</resourceModel>
</vendorlist>
<vendorlist_mysql4>
<class>Wpe_Vendorlist_Model_Mysql4</class>
<entities>
<vendorlist>
<table>vendorlist</table>
</vendorlist>
</entities>
</vendorlist_mysql4>
</models>
<resources>
<vendorlist_setup>
<setup>
<module>Wpe_Vendorlist</module>
</setup>
<connection> …Run Code Online (Sandbox Code Playgroud) 显然,当您购买企业版时,您从Varien获得的支持几乎毫无价值,所以我希望这里的某个人可以带领我朝着正确的方向前进.
在Magento中,我想创建一个int类型的product属性.当我从管理面板创建属性时,它将其创建为varchar.
我最终要做的是创建一个总销售属性,以便我可以使用它来按类别显示中的大多数销售产品进行分类.它是varchar的问题是,当你按此排序时,它将它排序为字符串而不是数字.
Varien告诉我,为了使它成为一个整数,我必须对数据库进行更新.在我看来,我必须将eav_attribute表中的backend_type列更改为int,并且希望将值移动到catalog_product_entity_int表而不是将其移至catalog_product_entity_varchar表.这有意义吗?有没有其他人这样做过?
现在我有那个问题,这是我应该从Varien的支持中得到的吗?到目前为止,他们的支持似乎毫无用处.看来问这么简单的事情并不是什么大问题(特别是因为我问他们该怎么做,而不是为我做这件事)
我想知道Magento是否有可能连接到其主数据库,以及另一个不包含Magento核心信息的数据库?
例如,我希望能够从存储在不同服务器上的不同数据库的WordPress安装中查询表吗?
我的第一直觉是使用mysql_connect创建一个新的数据库连接,但是这样做是不对的.
有没有更"合适"的方法来实现这一目标?
当我尝试从具有层级定价的Magento Enterprise 1.8脚本中保存产品模型时,我发现了一些奇怪的行为.
以此代码为例:
// This product has a tier price
$product = Mage::getModel('catalog/product')->load(194760);
$product->setName('Changed Product Title');
$product->save();
Run Code Online (Sandbox Code Playgroud)
保存获取异常时(详见下文).但是,如果我在模型中没有任何改变,我就不会得到例外.我有一种感觉,这是因为我没有更新任何东西,所以Magento没有那么多工作.
// Same product, but I changed nothing and it works
$product = Mage::getModel('catalog/product')->load(194760);
$product->save();
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我正在设置或修改等级价格信息,我能够成功保存产品(等待我不创建任何重复的内容)
// This works pending the tier price does not already exist
$mud_array = array();
$mud_array[] = array(
'website_id' => 0,
'cust_group' => 32000,
'price_qty' => 5,
'price' => 6
);
$product = Mage::getModel('catalog/product')->load(194760);
$product->setTierPrice($mud_array);
$product->save();
Run Code Online (Sandbox Code Playgroud)
我看到的例外情况如下:
致命错误:未捕获异常'Mage_Eav_Model_Entity_Attribute_Exception',消息'SQLSTATE [23000]:完整性约束违规:1062重复条目'194760-1-0-5.0000-0',用于/ path/to/magento/app /中的关键字"UNQ_CATALOG_PRODUCT_TIER_PRICE"代码/核心/法师/ EAV /型号/实体/ Abstract.php:61
因此,当产品中存在等级价格并且您尝试更改模型内的任何内容时,它似乎会尝试重新插入所有等级价格信息.
谁看过这个吗?有办法解决这个问题吗?感谢您的任何帮助,您可以提供.