Questions tagged «catalog»

应该用于有关目录模块的问题。

5
如何在Mage_Catalog_Model_Resource_Product_Collection上设置商店ID?
这项任务是微不足道的。我需要获取启用了平面目录的特定商店视图的产品列表。最明显的解决方案如下: $collection = Mage::getResourceModel('catalog/product_collection') ->setStore($storeId); 实际上,setStore()方法在这里没有什么区别,因为方法是在_initSelect()方法Mage_Catalog_Model_Resource_Product_Collection基于商店ID获得平面表的名称之后调用的。由于尚未设置商店ID,因此它将采用当前商店ID。 因此,显而易见的解决方法是在获取模型之前设置当前商店ID。 Mage::app()->setCurrentStore($storeId); $collection = Mage::getResourceModel('catalog/product_collection'); 会的。但仅当您需要一次收集一次时。如果您需要循环获取一个集合,或者只需要两个背对背集合,则将无法为其设置特定的商店。 原因是Mage_Catalog_Model_Resource_Product_Flat该类具有其自己的_storeId属性,并且在构造函数中将其设置为当前商店ID。这就是为什么它将被第一次设置。然后由于某种原因(天堂知道我希望有一个)在Mage_Eav_Model_Entity_Collection_Abstract::_init每个资源模块中被作为单例获取。因此,没有第二个调用的构造函数。 这一切看起来都非常错误,以至于我很确定我错了,这不是另一个(或两个)Magento错误。希望有人能对此有所启发。

8
初级Magento开发人员职位面试中的问题
首先,我想说的是,我希望我不会将这个问题发到错误的地方,如果我愿意,请告诉我应该在哪里发布(如果在stackexchange世界中的任何地方合适)。 我有一些针对Magento初级开发人员职位的采访。我有一些Magento开发经验,但是我从未接受过这些工作的采访,所以我不确定会发生什么。 我将不胜感激所有的评论和答案,并且我认为这篇文章可能对尝试进入magento的其他初级开发人员很有帮助。
33 product  cart  catalog 

5
为什么我不能使用loadBySku()通过SKU加载产品?
概要 我想通过SKU加载产品,有很多文章,博客文章,堆栈溢出结果等。我只想知道-为什么通过SKU加载产品必须如此困难? // This method does not work (Of all, I expect this to work) $product = Mage::getModel('catalog/product')->loadBySku($sku); // These do not work either $product = Mage::getModel('catalog/product')->loadByAttribute($sku, 'sku'); $product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku); // This does not work $product = Mage::getModel('catalog/product')->load($sku, 'sku'); 当然,我现在对Magento期望simple做的事情太多了(简单是Magento显然不熟悉的概念) // This works: $product = Mage::getModel('catalog/product'); $product->load($product->getIdBySku($sku));

3
is_salable来自哪里?
注意:如果您一直在通过PHP代码编辑产品,请在之后将它们重新编入管理员的索引中,并节省大量时间尝试找出为什么它们在下面没有像我一样显示出来... 我正在兜圈子,试图弄清楚is_salable产品的设置方式,从而弄清楚为什么我的产品现在展示。 我发现在代码中只有一个地方可以设置它: $salable = $this->isAvailable(); 但是我无法弄清楚如何或从何处获得此信息,因为当我遵循时,isAvailable它似乎只是循环回去...。 /app/code/core/Mage/Catalog/Model/Product.php public function isSalable() { Mage::dispatchEvent('catalog_product_is_salable_before', array( 'product' => $this )); $salable = $this->isAvailable(); $object = new Varien_Object(array( 'product' => $this, 'is_salable' => $salable )); Mage::dispatchEvent('catalog_product_is_salable_after', array( 'product' => $this, 'salable' => $object )); return $object->getIsSalable(); } 从这里跟随$ this-> isAvailable()之后,它会走几行: **public function isAvailable() …
27 catalog  core 

3
为什么以及何时使用“平面目录”?
在研究magento网站的速度问题时,我得到了一些链接,人们说可以使“平面目录”提高性能和速度。 问题在于,为什么默认情况下未启用它是速度问题。 会使“平面目录”产生一些不利影响吗? 我的magento网站上有100种产品和500种捆绑产品,由于我一次要加载36种产品,因此速度是一个很大的问题。 启用“平面目录”是否可以解决我的问题?


2
什么时候应该使用类别平板选项?
作为后续到前一个问题,我想知道: 什么时候应该使用类别平板选项? 在谷歌搜索时,我发现了一个建议,即“ 当您有很多类别时 ” 启用它。但是多少钱呢? 我很容易理解,就性能而言,激活产品的平板电脑是一个不错的决定,但是对于目录而言,它真的同样重要吗? 从中得出什么结论呢?我刚刚了解到,启用平面类别表会导致无法保存类别产品排名。至少不像没有flat选项那样简单(向Marius寻求帮助)。还有其他可提及的事情吗? 提前致谢 :)

7
管理员页面中的致命错误
我已经安装了magento 1.7,并且到目前为止效果还不错。 我每天进口产品。如果有任何新的制造商,则将其添加到基于“制造商”属性的下拉列表中。 今天,我在属性后端添加了新的制造商选项,并成功导入了产品。 但是之后,我尝试在Magento管理站点中打开任何页面,最终显示以下错误消息 致命错误:在第36行的/var/www/html/app/code/core/Mage/Catalog/Model/Category.php中无法覆盖最终方法Mage_Core_Model_Abstract :: clearInstance() 该课程的线36刚刚开始卷曲{ class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract { <-- this is line 36 我已经检查过,Mage_Catalog_Model_Category但是没有用name定义的方法clearInstance。真烦人。 仅供参考:我没有碰到一个单一的代码字符,我只是使用ADMIN网站导入产品并添加了一些必需的属性

3
目录规则每日更新不起作用
我面临Magento的目录规则每日更新不起作用的问题。这意味着当目录规则的到期日期到来时,产品价格没有任何变化,因此我必须在管理员中按规则应用按钮。Cron已配置并正常工作。看来catalogulule / observer :: dailyCatalogUpdate方法应该每天自动检查并应用规则,但事实并非如此(我也尝试过手动启动它)。这是Magento的核心代码: <!--file: app/code/core/Mage/CatalogRule/etc/config.xml--> <crontab> <jobs> <catalogrule_apply_all> <schedule> <cron_expr>*/1 * * * *</cron_expr> </schedule> <run> <model>catalogrule/observer::dailyCatalogUpdate</model> </run> </catalogrule_apply_all> </jobs> ... </crontab> 观察员: /*file app/code/core/Mage/CatalogRule/Model/Observer.php*/ public function dailyCatalogUpdate($observer) { Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange(); return $this; } 我成功修改了如下观察者方法: /*file app/code/core/Mage/CatalogRule/Model/Observer.php*/ public function dailyCatalogUpdate($observer) { Mage::getModel('catalogrule/rule')->getResourceCollection() ->walk(array( Mage::getResourceSingleton('catalogrule/rule'), 'updateRuleProductData' )); Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange(); return $this; …
15 rules  catalog  cron 

2
Magento 2-使用\ Magento \ Catalog \ Block \ Adminhtml \ Product \ Widget \ Chooser有多个选择吗?
使用此代码 $chooser = $this->_layout->createBlock('\Magento\Catalog\Block\Adminhtml\Product\Widget\Chooser'); var_dump(get_class_methods($chooser)); $configChooser = [ 'button' => [ 'open' => __('Select Products'), 'type' => '\Magento\Catalog\Block\Adminhtml\Product\Widget\Chooser', ] ]; $chooser->setConfig($configChooser) ->setFieldsetId($fieldsetData->getId()) ->prepareElementHtml($productChooser); 我可以在我的自定义表单中为我的自定义字段获得一个非常不错的产品选择器,但是我需要它能够选择多个产品。我可以设置选择器配置吗?


5
使用产品商店视图范围的URL密钥的商店开关上的404
默认情况下URL Key,产品页面上的“全局范围”。 编辑: 如FlorinelChis所建议,范围可以是“管理”属性中的更改。但是,这破坏了商店视图切换器的行为。 这已在1.7.0.2上经过测试,并带有示例数据并启用了“将商店代码添加到URL”: 编辑产品并为特定的商店视图(法语)设置其他网址 重新索引 在英语商店视图中打开网站上的产品页面 切换为法语:您将拥有页面URL包含 /French/ 切换回英语-> 404页面错误(网址缺少商店代码 /default/ 如何使其与商店视图/语言开关一起正常工作? 细节: 英文网址: /default/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html 法语的网址: /french/sony-vaio-vgn-txn27n-b-11-1-notebook-pc-french.html 如果我在此页面上的英语网站上-> /default/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html 然后我改用法语: 我得到了这个URL(商店代码丢失了): MAGEDOMAIN/sony-vaio-vgn-txn27n-b-11-1-notebook-pc-french.html 所以magento正确地重写了url,但是由于某种原因错过了商店代码 参考: 当然,这与/core/model/store.php和有关/core/model/url/rewrite.php,尤其是与那些方法有关: Mage_Core_Model_Url_Rewrite::rewrite Mage_Core_Model_Store::getCurrentUrl 更新 如果您使用的是1.9.1 @Vinai修复程序将无法正常工作,请检查我添加的新答案

3
找出产品所属的类别
我在后端打开了一个产品,但是当我切换到“类别”选项卡时,类别树已完全折叠。我将不得不扩展所有类别,以查看产品所属的类别。 如何快速(在后端)查看产品所属的类别?

2
如何获得所有允许货币的产品价格?
我有两个商店视图的设置。 第一个商店视图具有基准,唯一的一种货币设置为USD。第二种有2种允许的货币-美元和欧元。EUR是显示的默认值之一,USD被设置为基数。 所有产品的价格均仅设置为美元,欧元的汇率设置为0.75。该产品的价格为14美元。 我的代码去了: // Store ID 2 - default currency EUR, base currency USD // $product is instance of Magento\Catalog\Model\Product $priceInfo = $product->getPriceInfo(); $price = $priceInfo->getPrice('regular_price')->getValue(); 此代码始终会提取正确的欧元价格(10.50)。但是我同时需要价格-美元和欧元,但是我没有找到如何将货币转换为任何getPrice方法的方法。 我试图用Magento\Directory\Helper\Data转换: $helper->currencyConvert($price, 'EUR', 'USD'); 但是,当美元的实际价格为14美元时,它给了我13.99美元-因此计算错误。 您知道如何获得两种商店货币的产品价格吗?非常感谢!

3
Magento2产品列表-显示产品选项
目前,我正在研究新的Magento 2主题。对于此主题,我想在产品列表中显示所有产品选项(自定义选项和选项构成可配置产品)。这样,用户可以快速将产品添加到购物车中。 我尝试在其中添加product.info块catalog_category_view.xml并为该块设置产品。显示每个产品的选项,问题是显示的选项仅来自第一个产品。因此,所有其他产品都有此选项。 -更新- 我设法显示了产品选项,但是价格没有更新。有人可以指出我正确的方向吗? <form id='product_addtocart_form_<?php echo $product->getId(); ?>' class="c-product__details__add-to-cart" data-role="tocart-form" action="<?php echo $postParams[ 'action' ]; ?>" method="post"> <input type="hidden" name="product" value="<?php echo $postParams[ 'data' ][ 'product' ]; ?>"> <input type="hidden" name="<?php echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php echo $postParams[ 'data' ][ Action::PARAM_NAME_URL_ENCODED ]; ?>"> <?php echo $block->getBlockHtml('formkey') ?> <div class="product-options-wrapper" …

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.