Magento

Magento电子商务平台用户的问答

3
在产品保存上创建自定义选项
每当创建产品时,我都在为我的产品自动创建自定义选项。到目前为止,我所得到的是一个在catalog_product_save_before事件上触发并运行以下代码的观察者: //check that we haven't made the option already $options = $product->getProductOptions(); foreach ($options as $option) { if ($option['title'] == 'Auto Date & Time' && $option['type'] == 'date_time' && !$option['is_delete']) { //we've already added the option return; } } $options[] = array( 'title' => $product->getDateLabel(), 'type' => 'date_time', 'is_require' => …


2
如何获得具有“属性值”(option_id)的属性“选项标签/属性文本”?
假设我有一个属性,它是选项的集合(下拉列表/多重选择)。 我可以检索给定产品的属性值: $store_id = [something]; $productId = [something]; // this is a select/multiselect $attribute_code = [something]; $option_id = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, $attribute_code, $store_id ); $option_label = ??? 现在,我得到了属性option_id,它是一个数值... ...加载我的属性值的前端属性标签的最佳方法是什么?(不加载完整产品) 解决方案感谢Marius: // Not loading the product - just creating a simple instance $product = Mage::getModel('catalog/product') ->setStoreId($store_id) ->setData($attribute_code,$option_id); $option_label = $product->getAttributeText($attribute_code);

4
结帐时出现“请指定送货方式”异常
我一直在生产中获取此错误的异常日志,但无法在本地或暂存环境中重现该问题,因此很难进行故障排除。 产生此错误的Mage_Sales_Model_Service_Quote::_validate()原因是$rate返回的$rate = $address->getShippingRateByCode($method)为空。 我添加了一些日志记录,以尝试更好地了解正在发生的事情,并且可以看到其中$method包含正确的运输方法。 我最好的猜测是,在此过程中的某个时候,运费应在应有的时候删除。 我注意到,每次发生此异常时,都会在合法异常(例如无效的信用卡)之后立即发生。我试图通过使用无效的信用卡(然后是有效的信用卡)来重现该问题,但是对于我而言,无论是分期,制作还是本地,都无法重现。 我最初的预感是,可能在第一个有效异常之后某处丢失了运输方法,但事实并非如此,因为$method在抛出此异常时,我认为该方法具有正确的值。 我正在使用的checkout模块是AwesomeCheckout-据我所知,在创建应该在此处引起问题的订单时,它实际上没有任何自定义逻辑,但可能是相关的。 更新:我添加了一些代码以尝试重新收集丢失的费率。 protected function _validate() { if (!$this->getQuote()->isVirtual()) { $address = $this->getQuote()->getShippingAddress(); $addressValidation = $address->validate(); if ($addressValidation !== true) { Mage::throwException( Mage::helper('sales')->__('Please check shipping address information. %s', implode(' ', $addressValidation)) ); } $method= $address->getShippingMethod(); $rate = $address->getShippingRateByCode($method); /** * Start Customization */ …


4
如何从Magento一页结帐中删除步骤?
我正在使用CE 1.7,目前正在尝试从Onepage结帐中删除送货,送货方式和付款步骤。我已经从中删除了步骤local\mage\checkout\block\onepage\abstract.php。我的问题来自尝试从帐单信息发展到我单击“继续”时进行审阅时,它加载的加载下一步图片比静止图片要多。任何想法将不胜感激。

3
Magento EE 1.13中设置的EcomDev_PHPUnit
我正在尝试按照EE 1.13中的说明设置EComDev_PHPUnit https://github.com/EcomDev/EcomDev_PHPUnit 好,第一个障碍是让modman工作,但是我放弃了,并手动复制了模块。现在第二个问题在步骤2中:当我执行时 php ecomdev-phpunit.php -a magento-config --db-name $DB_NAME --base-url http://your.magento.url/ 我得到一个例外,说 PHP Fatal error : Class 'Mage_Core_Model_Factory' not found in '../../../shell/abstract.php' on line 88 我去了并在abstract.pho中用require_once添加了工厂路径,但是随后抛出一个错误,提示缺少另一个类... 有人遇到过这个吗?我在VirtualBox中使用Ubuntu 12.10。任何帮助,将不胜感激。 解决方案或临时解决方案: 我必须添加 require_once '../app/code/core/Mage/Core/Model/Factory.php'; require_once '../app/Mage.php'; 作为的第一行 ../shell/ecomdev-phpunit.php 这使它工作正常。我不确定这是对还是错:)专家建议会受到欢迎(stackexchange不允许我在提出问题的8小时内添加解决方案,并且我的声誉较低,因此在此处添加答案)

7
从类别ID获取产品集合
我正在尝试从类别ID获取产品集合。我尝试过的几件事在块中: $category = Mage::getModel('catalog/category')->load(123) ->getProductCollection(); 和 $category = Mage::getModel('catalog/category')->load(123); $products = $category->getProductCollection()->addCategoryFilter($category) ->addAttributeToFilter('type_id', 'simple') ->addAttributeToSelect('*'); 也尝试只是从phtml做到这一点 $oCatId = Mage::getModel('catalog/category')->load(769); $products->addCategoryFilter($oCatId); 这些都不起作用,但是我也没有看到任何错误。我看到了另一个似乎是相同问题的帖子:Magento-从特定类别获取产品,但是该方法对我也不起作用。谢谢你的帮助!

4
使用Composer安装Magento Base
我知道有很好的方法(从Connect)和GitHub(如果提供了composer.json)安装Magento模块。 (如http://magebase.com/magento-tutorials/composer-with-magento/中所述) 是否还可以使用Composer安装基本的Magento软件包(例如CE 1.7.0.2)? 有人已经尝试过吗?(如果成功或失败)

2
Google CDN jQuery,带有Magento布局XML中的本地后备
我已完成以下操作,以在Magento中包含来自Google CDN的jQuery: <default> <reference name="head"> <block type="core/text" name="google.cdn.jquery"> <action method="setText"> <text><![CDATA[<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script type="text/javascript">jQuery.noConflict();</script>]]> </text> </action> </block> </reference> </default> 但是,当我想通过本地后备实现(效果很好)来实现时,我最终将其添加到.phtml中,如下所示: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script> if (!window.jQuery) { document.write('<script src="/path/to/your/jquery"><\/script>'); } </script> 是否有一个更优雅的这样的方式在local.xml中,而不是推回退入<text>节点,因为我有做的jQuery.noConflict? 编辑: 提请注意问题的另一部分-是否有包含jQuery的社区模块适合您?如果他们有本地jQuery,那就很好-如果他们使用Google CDN-甚至更好。如果不存在,我很乐意创建一个。 是否有任何扩展插件可以处理此问题,而无需我自己引导它?

5
设置访问受限的Magento登台环境
我正在尝试找出设置具有某些访问限制的暂存环境的最佳方法。 一个简单的解决方案是抛出基本身份验证,但是在测试性能优化以及我想访问它的其他类似外部服务时,我将无法针对它进行指点Google Page Speed Insights。 可以将它与robots.txt完全公开,以防止其出现在搜索引擎中。但我担心的是,robots.txt中任何错误的风险都很高,我宁可不必为此担心。 如果您不阻止搜索引擎(或者如果有人忽略它),那么您将吸引现场客户向您的登台站点下订单,这不会使他们满意。 甚至更糟的是,如果您不小心将robots.txt部署到生产环境中,则会损失所有的Google果汁和大量的销售收入。 因此,我喜欢的选项是简单的IP地址限制。但是,我希望能够添加/删除限制而不必重新启动Nginx,只是为了最大程度地降低更改时的风险。 因此,我开始倾向于一个快速模块,该模块在启用后将查看开发人员IP地址,并且仅在用户的IP地址(或X_FORWARDED_FOR)与之匹配时才允许访问该站点(前端和后端)。 想知道这听起来像是一个合理的解决方案,还是我遗漏了更简单的东西。 更新:鉴于robots.txt可以通过本机后端交换机控制,并且演示商店通知将阻止任何合法的客户订单,并且由于我真的不担心对登台站点的公共访问,所以我喜欢Phil的解决方案。 但是对于任何想限制访问其暂存站点的人来说,我认为Kris的解决方案是必经之路。 更新2:不能100%确定应在“系统配置”>“设计”>“ HTML头”中选择robots.txt选项,但是在我的情况下-从简短的搜索看来这很常见-我只有一个扁平的robots.txt文本文件正被使用的地方,因此不考虑config选项。 因此,我现在要使用维护模块:https : //github.com/aleron75/Webgriffe_Maintenance
18 staging 

1
如何在没有自定义模块的情况下打孔全页缓存
我们的整个页面缓存似乎基于会话。如果我打开带有chrome的隐身窗口并访问其中一个页面,它将预热缓存,并且第二页的加载要快得多,但是,如果我关闭该窗口并打开一个新的隐身窗口,则该页面不再位于完整的页面缓存,必须再次进行预热。我们认为这是因为侧边栏向用户显示了购物车中的内容。 我已经将该html移到了一个新的phtml文件,将布局xml块摆平了,现在我正在处理cache.xml文件。 我为cache.xml找到的所有示例都引用了模块,但是,我没有为布局xml块使用模块,而是使用core / template。 有没有机会有人可以阐明不需要模块和/或模型的xml缓存块?

1
为什么SOAPv2 WS-I无法更新许多属性之一?
我将Magento CE 1.7.0.2与SOAPv2和WS-I结合使用。我正在尝试使用catalogProductUpdate-Method 更新产品。 下面的代码示例中的描述已更新,但制造商属性(= select)未更新。的结果catalogProductUpdate是bool(true)。 我尝试了一些(不太好,但我很拼命;-)),例如: 分配整数值777来$manufacturer->value设置值 在extra_attributes字段之内/之外,设置产品ID(但我确定需要在Additional_attributes中设置) 将制造商名称设置为$manufacturer->value而不是值777 码: $newProductData = new stdClass(); $additionalAttrs = array(); $manufacturer = new stdClass(); $manufacturer->key = "manufacturer"; $manufacturer->value = "777"; $additionalAttrs['single_data'][] = $manufacturer; $newProductData->description = "Description Test1"; $newProductData->additional_attributes = $additionalAttrs; $result = $client->catalogProductUpdate((object)array('sessionId' => $sessionId, 'productId' => "2110000010058 ", 'productData' => (object)$newProductData, …

6
Magento-向现有可配置产品添加/删除属性
正确的步骤是什么-而不是删除产品,然后再次开始向现有可配置产品添加或删除属性。 创建可配置产品时,系统会要求您选择要用于该产品的属性。 我有很多产品,现在我需要删除一些最初选择的属性,有些还需要添加最初没有选择的属性。 感谢您提供任何帮助-删除产品似乎并不是解决此问题的最佳方法。尤其是与产品相关的许多其他事物。

6
如何设置表单字段的默认值?
我有一个管理表单字段(文本框), $fieldset->addField('ajax_time_interval', 'text', array( 'label' => Mage::helper('dealroom')->__('Page Refresh Time Interval'), 'class' => 'required-entry', 'required' => true, 'name' => 'ajax_time_interval', )); 我需要为此文本字段设置默认值。我尝试过,设置'value' => '120',在里面。但是它不起作用。 $fieldset->addField('ajax_time_interval', 'text', array( 'label' => Mage::helper('dealroom')->__('Page Refresh Time Interval'), 'class' => 'required-entry', 'required' => true, 'name' => 'ajax_time_interval', 'value' => '120', )); 如何在该字段中设置默认值?
18 magento-1 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.