Magento EAV:如何硬删除属性值?

2023-12-23

在进入细节之前,让我们先问清楚这个问题:


有没有办法hard删除属性value来自产品?

By hard我的意思是,从数据库中删除该行,而不仅仅是将值设置为 null 或空。


现在,详细信息:

我目前在 Magento 上遇到一个问题。

我商店中的许多产品都有与产品无关的用户定义属性。例如,假设我们有一个bag产品,以及其他产品,例如T 恤、连衣裙、裤子,etc.:

Our bag产品只有可配置的 1 个属性:color.

Our T-Shirt产品有 2 个可配置属性:color and T 恤尺寸.

Our Dress产品有 2 个可配置属性:color and 服装尺码

我当前的问题是当我检索我的Bag来自数据库的产品,存储在我的产品中的属性是:color, T 恤尺寸 and 服装尺码.

我怀疑这是因为在我们的商店中您可以更改产品的属性集(感谢 FlagBit ChangeAttributeSet 社区扩展)。

我认为袋子产品是用特定的属性集创建的,然后有人将属性集更改为另一个,然后又更改了另一个。这将导致产品从其已更改为的所有属性集中获取所有属性。但这只是一个原因,可能还有其他原因。实际上,我目前并没有寻找导致我的产品具有不相关属性的具体原因。

我今天想要reset我的产品。我所说的重置是指删除与我的产品无关的属性。就我的情况而言bag,这意味着删除T 恤尺寸 and 服装尺码属性。并由removing I mean 永久删除这些属性来自对象。

我的问题是,我找不到该怎么做。我尝试将属性设置为 NULL 并保存产品,但是当我再次查询产品时,我仍然在数据中获取该属性,且值为空。我不希望属性值为空,我希望属性不存在。

这是一个代码示例,解释了我尝试的一些内容:

$product = Mage::getModel('catalog/product')->load(1234); //Let's assume that my bag product ID is 1234

Mage::log($product->getData());

/* This last line dump all my products datas and contains among other things:

[...]=>...
[color]=>3
[tshirt_size]=>34
[dress_size]=>45
[...]=>...

*/

如果我做一个:

$product->setData('tshirt_size',null);
$product->setData('dress_size',null);
$product->save();

然后再说一遍:

$product = Mage::getModel('catalog/product')->load(1234);
 Mage::log($product->getData());

    /* I get:

    [...]=>...
    [color]=>3
    [tshirt_size]=>null
    [dress_size]=>null
    [...]=>...

    */

我不想那样。我想:

/*

[...]=>...
[color]=>3
[...]=>...

*/

事实上,我的数组中仍然有条目,这意味着数据库中的实际行不会被删除。我想要删除这些行。

更令人沮丧的是,当我执行以下操作时:

$product->getAttributes();

它返回我可以为我的产品设置的所有属性without不相关的属性 - 这是有道理的,因为不相关的属性不在我的产品的属性集中。

那么,问题又是:

有没有办法hard删除属性value来自产品?

By hard我的意思是,从数据库中删除该行,而不仅仅是将值设置为 null 或空。

感谢您的帮助!

Hugues.

仅供参考:我正在使用 Magento 1.6.1.0 (但它并没有真正改变任何东西)


我终于不得不解决这个问题,虽然@vBuck很接近,但我总是能够在属性集中切换后查询旧数据,如果我切换回来,我会看到不应该存在的旧数据。今天,我有同样的需要确保随机数据被删除。以下是我处理这个话题的方法。

为了在从一个集合切换到另一个集合时以编程方式删除属性,您必须首先查看新集合的所有条目,然后获取所有属性的列表,检查该列表并(这是重要的部分)将其从正确的实体表。例如,我想去掉一个值500 GB当我切换时,它位于示例 Magento 数据中Western Digital 500GB HD - 7200RPM from Hard Drive to Shoes。为此,我必须删除catalog_product_entity_text它存储在的表。这意味着我必须找到与产品 ID 相等的条目,然后将其从实体类型表中删除。

我能够做到这一点,但之后无法找到杂散数据。通过数据库搜索和切换回旧属性集并查找数据都证实了这一点。你可以在这里找到一切

https://gist.github.com/jeremyBass/6581038#file-attribute-clean-switch-md https://gist.github.com/jeremyBass/6581038#file-attribute-clean-switch-md

在 CE 1.7.0.2、1.8.0.0 中测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento EAV:如何硬删除属性值? 的相关文章

  • 如何在 Magento 中更改订单起始编号

    有没有办法在 Magento 中更改订单起始编号而不更改已有的订单号 我只想为所有新订单设置 170000xxxx Thanks Look in eav entity store并找到increment last id 更新此号码 确保en
  • 如何从 Magento 的报价中删除项目?

    在结账过程中 我有时想以编程方式从会话的报价中删除项目 所以我尝试了这段代码 quote Mage getSingleton checkout session gt getQuote all quote items quote gt get
  • Magento 1.7.0.0 上的 SOAP V2 url 是什么

    1 7 0 0 版本中访问 Magento SOAP V2 的 url 是否已更改 当我尝试访问 上的服务 时http www somedomain com api v2 soap wsdl 1 http www somedomain co
  • 如何更改客户 ID 和订单 ID?

    当前 CustomerID 从 1 开始 而生成的第一个订单已OrderID 100000001 有什么方法可以改变这些字段 所以创建的第一个客户已经 顾客号码900000001并且创建的第一个订单有OrderID 900000001 通过
  • 如何配置 Magento Enterprise 使用 Solr 作为主要搜索引擎?

    我尝试寻找文档 但它非常稀疏 我编写了以下指南 希望它可以帮助人们节省 2 3 个小时的安装 设置和配置时间 与 MySQL 全文搜索标准设置相比 使用 Solr 带来的性能提升非常惊人 在您的 Magento 安装中让它工作绝对值得花时间
  • 将现有属性添加到所有属性集

    我有一个existing嵌入代码的属性 我需要将此属性与 120 多个现有属性集相关联 如果我知道属性集 ID 如何以编程方式将该属性添加到所有属性集 我发现为这个问题编写代码很有趣 所以这里是有效的解决方案 在 php 脚本 包括 mag
  • 在购物车页面上显示分级定价

    如果我在这个页面上 http 结账 购物车 对于购物车中的产品 我想显示分级定价 与商品页面上显示的定价相同 如果有 我的尝试是添加
  • 查找商店的根类别

    我正在使用 Magento 1 6 1 版 我需要获取商店的根类别 我在谷歌中搜索没有得到任何好的想法 代码 请问如何获取商店的根类别 Mage app gt getStore gt getRootCategoryId 上面的代码给出了默认
  • Magento CSRF 保护

    我正在 Magento 中查看自定义表单 我看到了这些教程 http fastdivision com 2012 03 29 diy magento create ajax login registration forms for your
  • 安装新的 Magento 扩展需要注销/登录,否则您会在管理页面中收到 404

    两个不同的人告诉我 以下是 Magento 的一个已知问题 安装新扩展时 管理员尝试访问 配置扩展程序 并获取 404 页面 去的方法 解决此问题的方法是注销然后登录到他的管理面板 在设计扩展时有没有办法解决这个问题 这方面有一个悬而未决的
  • 如何在注册和结账过程中更改magento中的“送货信息”标签

    我想将 帐单信息 标签文本更改为 运输和帐单信息 我尝试使用 Mage Checkout csv 但这没有帮助 请提出解决方案 谢谢你 Use the 翻译文件translate csv在你的主题中 出于演示目的 我将使用默认包 app d
  • Magento:两种基于重量的统一运费

    尝试按如下方式设置我的运费 如果购物车总重量低于 1 公斤 则运费为 3 68 英镑 如果购物车总重量超过 1 公斤 则运费为 6 68 英镑 如果购物车总价超过 100 英镑 则免运费 我设法使用 6 68 英镑的统一费率将所有这些结合在
  • 如何定义基于标签的组织结构?

    原标题 有没有办法在基于标签的组织方法上强制建立关系结构 我有一些实体 它们有一系列属性 一些属性影响实体可以具有的其他属性 许多属性被组织成组 并且有时实体被要求具有来自某些组的一定数量的属性 或者可能具有来自某些组的一定范围的属性 有没
  • 您常见的 Magento 配置错误有哪些? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Magento 将所见即所得添加到自定义前端表单

    我正在编写一个模块 并且正在搜索如何将内置所见即所得编辑器添加到前端的文本区域 有可能的 有谁知道 如何实施 因此 我将其保留为最终解决方案 以防万一有人需要它 1 将此代码放入您希望编辑器直接显示的 phtml文件中 2 在代码第6行可以
  • 如何轻松调试布局 Xml 警告/错误?

    我陷入了这个错误 Warning simplexml load string Entity line 46 parser error Comment not terminated in lib Varien Simplexml Config
  • Magento:设置刚刚创建的网站的配置值?

    我正在以编程方式创建网站 用户等 问题是 创建网站时 我无法立即设置配置值 Code
  • 访问 Magento 购物车和/或结帐中的运费

    请注意 这个问题是关于运费 而不是价格 有一个重要的区别 即运输方式为店主支付的费用是多少 而不是客户支付的费用 The shipping tablerate数据库表包括一个cost字段 该字段填充在Mage Shipping Model
  • 如何从 Magento One Page Checkout 获取发布数据?

    为了在 Magento Checkout 中添加客户评论字段 我在相应的模板文件中添加了一个文本字段 并使用如下观察器将评论添加到订单中 comment strip tags Mage app gt getRequest gt getPar
  • Paypal Express Checkout 坚持使用电话号码,即使选项已关闭(从 Magento 拨打)

    我在 Magento 中使用 Paypal 快速结帐 选项 我没有使用任何快速结帐按钮 这只是因为我在从网站付款标准返回时遇到问题 在 Paypal 的网站付款首选项中 我已将 联系电话号码 字段设置为关闭 我还在 Magento 方面进行

随机推荐

  • 如何在可扩展列表视图上插入标题行

    我有一个带有一个可扩展列表视图的 Android 活动 然后我创建了 ExpandableListAdapter 因此我可以单击一个项目 然后可以看到该项目的子项目 还行吧 现在我想为每个项目的子列表插入标准标题 标题 所以我构建了这段代码
  • “返回的颜色将针对指定上下文的主题进行样式设置”是什么意思?

    我最近注意到一个方法 Context getResources getColor int 自 API 23 起已弃用 应该使用 ContextCompat getColor context R color your color 文档对此说道
  • 如何使用重命名重构作为快速修复的一部分?

    我在 DSL 中添加了一个快速修复选项 我想在其中对文档文本进行一些修改 包括重命名某些元素 我可以很好地更改该元素中的文本 但我还想重命名其所有引用 即重命名重构 我怎么做 我可以以某种方式从快速修复内部触发内置的重命名重构吗 或者 如何
  • Gtk-消息:无法加载模块“canberra-gtk-module”

    我的 pygtk 程序将此警告写入 stderr Gtk Message Failed to load module canberra gtk module 自由堪培拉 http 0pointer de lennart projects l
  • MKMapView 无法缩放地图

    我创建了一个非常基本的应用程序 仅显示 MKMapView 和 UserLocation 我有时在绘制这张底图时遇到问题 它只显示地图的一部分 每当我捏缩放地图时 它都无法重新绘制 而只显示空白的灰色图块 每当需要获取新的地图图块时 控制台
  • OpenCV 不报告准确的帧速率/计数

    我有一个 33 秒的视频 正在尝试使用 OpenCV 进行处理 我的目标是确定每个帧对应的时间实例 相对于视频的开始 我这样做是为了能够比较以不同帧速率录制的同一场景的视频帧 什么在起作用 FPS 正确报告为 59 75 这与什么是一致的f
  • Google Cloud Bigtable 客户端连接池

    我通过制作一个虚拟 Web 应用程序来处理向 Bigtable 写入数据和从 Bigtable 读取数据的请求 对 Google Cloud Bigtable 进行了负载测试 一开始 我只使用单个 Bigtable 连接作为单例 并在所有线
  • Eclipse Web 项目依赖项

    这个问题是关于 Eclipse 开发的 我正在尝试在 Eclipse 中创建一个 Web 应用程序 问题是我没有将依赖项 jar 获取到部署的存档中 我创建了一个新的动态 Web 项目并将其链接到另一个 Java 项目 Java 项目引用了
  • 在 Google App 脚本中共享日历

    我正在尝试从电子表格构建日历 然后与域内的适当人员共享它们 我将其作为附加到电子表格的脚本来执行 到目前为止 我可以读取正确的单元格并构建包含事件的日历 但我遇到的问题是弄清楚如何与正确的人共享特定的日历 我四处搜索并找到了相同的通用代码来
  • 尝试对“$(MSBuildVersion)”进行数字比较,结果为“”而不是数字,条件为“$(MSBuildVersion) >= 16.1.0”)”

    当我尝试重新加载已卸载的项目时 出现此错误 如下图所示 它说这条线来自我的Microsoft Managed Core targets 我尝试更新我的 NuGet 包 我尝试将环境变量路径值更改为 msbuild exe 所在的位置 我尝试
  • 内层div的边距影响外层div

    我有三个嵌套的 DIV 元素 如下所示 div div div This br is br a br multiline br testcase br This br is br a br multiline br testcase br
  • 减少可执行文件大小的过程

    我正在生成一个在 ARM 处理器上运行的十六进制文件 我希望将其保持在 32K 以下 它目前比这个大得多 我想知道是否有人可以提供一些关于缩小它的最佳方法的建议 这是我到目前为止所做的 因此 我对其运行 size 以确定十六进制文件有多大
  • 逗号附近的语法不正确

    这是我尝试从会话中获取多个值时的 ASPX 代码片段 我收到错误 逗号附近的语法不正确 在代码片段中标记了该行 SqlCommand cmd1 new SqlCommand select plugin id from profiles pl
  • 根据 PEP257 自动检查文档字符串样式的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 类似的工具pep8 http pypi python org pypi pep8可以检查源代码样式 但他
  • Kotlin 的构造函数重载

    因为我有一个User类有 2 个参数 first name last name 所以我的 kotlin 类是 data class User val first name String val last name String 现在我想要一
  • 高频调用 std::async 可以吗?

    我写了一个小程序 使用std async对于并行性 它让我崩溃了 我很确定有更好的方法可以做到这一点 但现在我只想知道这里发生了什么 我不会发布确切的代码 因为我认为它不会真正产生影响 它基本上看起来像这样 while 1 std vect
  • 如果文件已存在于 pyspark 中,如何覆盖 rdd saveAsPickleFile(path)?

    如何覆盖 当我们节省时间时 RDD 输出对象任何现有路径 test1 975078 56691 2 000 20171001 926 570 1322 975078 42993 1 690 20171001 926 570 1322 975
  • 询问如何在 R 中使用 ggplot 制作世界热图?

    我想制作特定疾病的世界热图 该数据集包含国家 地区列表 纬度 经度和每个国家 地区的案例 数据可用here https drive google com file d 1 EqMEZFHlujsg40gzEo83dN1zY9d9gAJ vi
  • C 中整数表达式的大小

    令我惊讶的是 Xcode 编译 C gnu11 include
  • Magento EAV:如何硬删除属性值?

    在进入细节之前 让我们先问清楚这个问题 有没有办法hard删除属性value来自产品 By hard我的意思是 从数据库中删除该行 而不仅仅是将值设置为 null 或空 现在 详细信息 我目前在 Magento 上遇到一个问题 我商店中的许