小编Her*_*tin的帖子

以编程方式更改商店视图级别的产品属性

我很抱歉,如果这个问题是微不足道的,但我一直在努力找到我在这里做错了什么.我试图在商店视图级别更改属性的值,但默认值也会更改,但不应该更改.当然,此属性设置为"store-view-scoped".为了简单起见,我尝试了产品名称.没有成功.

以下是我试过的不成功的测试......

你看到我在做错了吗?

非常感谢.


我的尝试:

$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName('new_name')->save();

$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setStore(STORE_CODE)->setName('new_name')->save();

$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_CODE)->setName('new_name')->save();

$product = Mage::getModel('catalog/product')->setStoreId(STORE_ID)->load(PRODUCT_ID);
$product->setName('new_name')->save();

$product = Mage::getModel('catalog/product')->setStoreId(STORE_ID)->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName('new_name')->save();
Run Code Online (Sandbox Code Playgroud)

我甚至尝试在产品型号加载之前添加以下行...

Mage::app()->setCurrentStore(STORE_ID);
Run Code Online (Sandbox Code Playgroud)

magento

18
推荐指数
2
解决办法
3万
查看次数

Magento - 向system.xml添加一个按钮,并附加方法

我创建了一个模块,它有一个"export like"方法,定期运行,如我在模块的config.xml文件的cron区域中定义的那样.但是我想让用户能够通过在系统配置中添加"立即运行"按钮来按需运行此导出方法,从而使用system.xml文件.

看起来"前端类型"按钮可能正如我所尝试的那样工作,它在配置部分添加了一个微小的可点击按钮.但是我无法在按钮本身上附加方法或标签.

我想在模块的"Grid.php"文件中添加一个按钮,但这不是我想做的,因为它适合我的acl.

下面是我的带有"按钮"前端类型的system.xml文件.

有没有人知道如何:

  • 为按钮添加标签/值
  • 在按钮中添加一个类
  • 单击按钮时添加要调用的方法

非常感谢您的帮助 !

    <?xml version="1.0" encoding="UTF-8"?>
    <config>
     ...
         <fields>
          ...
          <run translate="label">
           <label>Run now</label>
           <frontend_type>button</frontend_type>
           <backend_model>SOME BACKEND MODEL</backend_model>
           <sort_order>20</sort_order>
           <show_in_default>1</show_in_default>
           <show_in_website>1</show_in_website>
           <show_in_store>1</show_in_store>
          </run>
         </fields>
...
    </config>
Run Code Online (Sandbox Code Playgroud)

magento

13
推荐指数
2
解决办法
1万
查看次数

更新布局XML更新中的块类型

我试图在我的主题布局XMLs中更新现有Block的"type"参数.在示例中,我想使用块"catalog/rewrite_navigation"而不是"catalog/navigation"作为引用名称"catalog.topnav".

我已经通过读取核心PHP文件的布局,块,更新等来测试了几种方法,但没有成功.我只是想避免使用unsetChild然后重新创建一个块.

"常规"方式是:

    <reference name="top.menu">
        <action method="unsetChild"><name>catalog.topnav</name></action>
        <block type="catalog/rewrite_navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
    </reference>
Run Code Online (Sandbox Code Playgroud)

但你们有一个线索做这样的事情:

    <reference name="catalog.topnav">
        <action method="setType"><name>catalog/rewrite_navigation</name></action>
    </reference>
Run Code Online (Sandbox Code Playgroud)

通过这样的更新,catalog.topnav的块类型将从"catalog/navigation"更新为"catalog/rewrite_navigation".

非常感谢你的想法!

magento

10
推荐指数
1
解决办法
4032
查看次数

在产品图库中添加一个复选框(如"禁用/排除")

我正在尝试编写一个新的复选框,以便在"禁用"旁边附加到图库中的列.它的行为与数据库中的条目"禁用/排除"=是/否相同.

我们的想法是为图库中的每个图像添加"用作页面"复选框.目标是制作一个JS轮播,所有图片都选中"用作页面".

我做了一些事情,但我做不到:

  • 更新数据库中的数据=>将0或1设置为"页面"字段(见下文)
  • 从数据库中检索数据,然后根据"页面"字段选中/取消选中该复选框.

- >所以我的问题是:如何更新数据库中的数据并在复选框中检索它(0或1取决于字段值)?

非常感谢您的宝贵帮助.


这就是我所做的(1.4.1.0):

1-更新表catalog_product_entity_media_gallery_value

添加了一个新字段(名称为"page"):

  • page tinyint(4)未签名否0

2-对Mage_Catalog_Model_Product_Attribute_Backend_Media类进行了以下更改

第49行:

$localAttributes = array('label', 'position', 'disabled');
Run Code Online (Sandbox Code Playgroud)

$localAttributes = array('label', 'position', 'disabled', 'page');
Run Code Online (Sandbox Code Playgroud)

第223行:

$data['disabled'] = (int) $image['disabled'];
Run Code Online (Sandbox Code Playgroud)

$data['disabled'] = (int) $image['disabled'];
$data['page'] = (int) $image['page'];
Run Code Online (Sandbox Code Playgroud)

301行

$mediaGalleryData['images'][] = array(
    'file'     => $fileName,
    'position' => $position,
    'label'    => '',
    'disabled' => (int) $exclude
);
Run Code Online (Sandbox Code Playgroud)

$mediaGalleryData['images'][] = array(
    'file'     => $fileName,
    'position' => $position,
    'label'    => '',
    'disabled' => (int) $exclude,
    'page' …
Run Code Online (Sandbox Code Playgroud)

magento

7
推荐指数
2
解决办法
4863
查看次数

在自定义模块上的system.xml中添加日期选择器

正如在主题中所述,我试图在系统>配置区域中为自定义模块添加日期字段及其日期选择器(因此使用etc/system.xml).

我试图从下面的主题中获得灵感: Magento - 在system.xml上添加一个按钮,附加方法

但没有成功.

我确定这是一个创建正确的块或方法来创建自定义html字段的问题,但我无法读取通过Magento矩阵:)

我陷入了需要编写类(Datefield.php)的步骤:

    <?php
            class Namespace_Module_Block_Datefield extends Mage_Adminhtml_Block_System_Config_Form_Field {

             protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
    // ----> Am I wrong in calling ..._Abstract?  Should I call Varien_Data_Form_Element_Date? I've tried but no success either...

$this->setElement($element);

              $html = // ------------------> what to put here? Call a block or some other method?
                      ->setFormat('d-m-Y')
                      ->setLabel($this->__('Choose date'))
                      ->toHtml();

              return $html;
             }
            }    
            ?>
Run Code Online (Sandbox Code Playgroud)

你有诀窍怎么做?

非常感谢.埃尔韦

magento

6
推荐指数
1
解决办法
7404
查看次数

检索属性代码

一个非常小的事情让我疯狂:)

我无法检索/catalog/product/view/type/options/configurable.phtml模板文件中当前属性的属性代码.

当我改变时,在第36行(或在第36行)

echo $_attribute->getLabel()
Run Code Online (Sandbox Code Playgroud)

echo $_attribute->getAttributeId()
Run Code Online (Sandbox Code Playgroud)

我得到eav_attribute了数据库表中存在的正确属性Id .但是,当我尝试

echo $_attribute->getAttributeCode()
Run Code Online (Sandbox Code Playgroud)

我得到一个空字符串,而表中有一个attribute_code字段eav_attribute.

你能帮我找一下属性的属性代码吗?或者,更一般地说:如何获取我们现在为id的属性的属性代码?

非常感谢!

magento

5
推荐指数
1
解决办法
2万
查看次数

在观察者中停止产品保存过程

我目前正在开发一个在后端使用产品编辑的模块.其目的是检索产品所属的类别,并使用所选类别列表填充属性(Brand属性).

管理员必须至少选择一个类别.

我的模块按预期工作,但如果管理员在编辑产品时没有选择任何类别,我不知道如何停止保存过程.

这是工作流程

  • 管理员在产品编辑页面的类别选项卡中选择类别
  • 管理员点击"保存"
  • 我的模块"观察"并收集所有类别

- >如果有选定的类别

  • 我的模块的观察者做了更新Brand属性的东西

- >其他

  • 我的模块的观察者向管理会话添加了一个错误
  • 我的模块的观察者应告诉Magento停止保存产品.但是我该怎么做?

通用问题可能是:如何将"停止保存"参数传递给观察者?

以下是我的config.xml文件示例以及处理我上面解释的工作流程的方法.

非常感谢您的帮助,并享受Magentoing的乐趣!

config.xml中

    <catalog_product_prepare_save>
        <observers>
            <brands_product_save_observer>
                <type>singleton</type>
                <class>brands/observer</class>
                <method>saveProductBrand</method>
            </brands_product_save_observer>
        </observers>
    </catalog_product_prepare_save>
Run Code Online (Sandbox Code Playgroud)

Observer.php

public function saveProductBrand($observer) {
    $product = $observer->getProduct();
    $categoryIds = $product->getCategoryIds();
    if (isset($categoryIds)) {
        foreach ($categoryIds as $categoryId) {
            $isBrandCategory = Mage::getModel('brands/navigation')->isBrandCategory($categoryId);
            if ($isBrandCategory)
                $brandCategories[] = $categoryId;
        }
        if (isset($brandCategories)) {
            $brandId = Mage::getModel('brands/navigation')->getBrand($brandCategories[0]);
            if ($brandId) {
                $attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 140);
                foreach ($attribute->getSource()->getAllOptions(true, true) as $option) {
                    $attributeArray[$option['label']] = $option['value'];
                }
                $categoryName = …
Run Code Online (Sandbox Code Playgroud)

php save magento abort observer-pattern

4
推荐指数
1
解决办法
9784
查看次数

使Magento"继续购物"按钮重定向到最后添加到购物车产品的类别

继续购物按钮在购物车页面上无法正常工作.

单击按钮后,转到主页.

我想去上一个类别页面.

continue magento

1
推荐指数
1
解决办法
8607
查看次数

标签 统计

magento ×8

abort ×1

continue ×1

observer-pattern ×1

php ×1

save ×1