如何检查 Magento 产品是否已添加到购物车?

2024-01-01

我想在 Magento 中首次将产品添加到购物车时显示弹出窗口,并且不想在再次添加或更新产品时显示弹出窗口。简而言之,我想知道将要添加到购物车中的产品是第一次出现还是不是第一次出现?


答案很大程度上取决于您想要如何处理父/子类型产品(如果需要)。

如果您只处理简单的产品或者您有父/子类型的产品并且您需要测试子 ID,那么:

$productId = 1;
$quote = Mage::getSingleton('checkout/session')->getQuote();
if (! $quote->hasProductId($productId)) {
    // Product is not in the shopping cart so 
    // go head and show the popup.
}

或者,如果您正在处理父/子类型产品并且只想测试父 ID,则:

$productId = 1;
$quote = Mage::getSingleton('checkout/session')->getQuote();

$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
    if ($item->getData('product_id') == $productId) {
        $foundInCart = true;
        break;
    }
}

EDIT

在评论中提出了为什么要设置注册表值的问题controller_action_predispatch_checkout_cart_add无法在 cart.phtml 中检索。

本质上,注册表值仅在单个请求的生命周期内可用 - 您发布到 checkout/cart/add,然后被重定向到 checkout/cart/index - 因此您的注册表值会丢失。

如果您想在这些之间保留一个值,那么您可以使用会话:

在你的观察者中:

Mage::getSingleton('core/session')->setData('your_var', 'your_value');

检索值

$yourVar = Mage::getSingleton('core/session')->getData('your_var', true);

传递给 getData 的 true 标志将为您从会话中删除该值。

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

如何检查 Magento 产品是否已添加到购物车? 的相关文章

  • 一个人可以在 Magento 社区版上托管多个商店吗?

    一个人可以在 Magento 社区版上托管多个商店吗 以及如何在设置每个新商店时自动为其创建子域 是的 您可以从 Magento 社区版运行多个站点 Magento 官方博客实际上刚刚发布了一篇关于此问题的帖子 您可能想查看一下 http
  • Magento 图片上传表单字段

    我跟着这个链接 http www magentocommerce com wiki 5 modules and development admin how to create pdf upload in backend for own mo
  • 更新某些类别的左列/如何在布局文件中设置类别 ID

    我想要一个在左侧显示某些类别幻灯片的块 但是 我通过引用布局文件中的左列 在所有页面中显示了幻灯片放映块 我们需要幻灯片仅出现在左侧的某个类别 id 225 中 到目前为止我的解决方案路线图 1 将特定类别 url 重写到我的自定义模块 控
  • Magento - 如何创建“十进制”属性类型

    我在网上做了一些搜索 但还没有找到这个问题的任何答案 我遇到的情况是 我需要一个十进制值的产品属性 它必须支持负数和正数 并且还必须可排序 由于某种原因 Magento 没有 十进制 属性类型 唯一使用小数值的类型是 Price 但不支持负
  • 产品和报价项目之间的概念区别是什么

    涉及班级 Mage Sales Model Quote Item and 法师 目录 型号 产品 我通过监听事件 在购物车添加上 得到了它们 我正在尝试从外部来源更新产品的数量信息 到目前为止 我的代码仅基于产品信息 我不确定这是否正确 报
  • 如何在magento中添加自定义模块

    您好 我想为页脚创建一个自定义模块 用于显示新闻标题 还没有使用自定义模块 我该怎么做 谁能告诉我创建自定义模块的简单步骤 Thanks 您会发现的最佳资源是 模块创建器扩展 http www magentocommerce com ext
  • 如何导出带有产品完整 url 的产品 csv

    我想导出包含完整产品 url 的产品 CSV 即包括基本 url 我不想手动执行此操作 是否可以自定义代码 以便产品导出具有完整的 url
  • 在 magento connect 中安装任何扩展时出现错误

    我的商店里有 magento 社区版 7 1 我尝试使用 magento 商店安装扩展 但所有类型的扩展都出现这样的错误 Community Dropifi Dropificontactwidget 无法解析主机 connect20 mag
  • 如何配置 Magento Enterprise 使用 Solr 作为主要搜索引擎?

    我尝试寻找文档 但它非常稀疏 我编写了以下指南 希望它可以帮助人们节省 2 3 个小时的安装 设置和配置时间 与 MySQL 全文搜索标准设置相比 使用 Solr 带来的性能提升非常惊人 在您的 Magento 安装中让它工作绝对值得花时间
  • 在购物车页面上显示分级定价

    如果我在这个页面上 http 结账 购物车 对于购物车中的产品 我想显示分级定价 与商品页面上显示的定价相同 如果有 我的尝试是添加
  • Magento - 检查管理员和客户是否登录

    我有一个安装了 Magento 1 4 0 1 的 Web 服务器 我有另一个与之共享凭据的网站 我已经设法检查客户是否登录 在更改 Magento 中的 cookie 位置之后 但是当我还尝试确定管理员是否登录时 事情变得复杂 我只能得到
  • 卸载 Magento 自定义扩展及其数据库

    我创建了一个扩展并创建了扩展的 zip 文件 以便我可以通过 Magento Connect 安装它 当我使用 Magento Connect 卸载自定义扩展时 它只会删除我的扩展文件和文件夹 但不会删除我的扩展的数据库表 我还想删除我的数
  • 查找商店的根类别

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

    有什么解决办法吗 我已经在配置 gt gt 系统 gt gt 支付方式 gt gt PayPal支付解决方案中禁用了SSL验证 但还是不行 您需要禁用 SSL 验证 进入后台 系统 gt 配置 gt 付款方式 找到PayPal Expres
  • magento从产品sku获取产品类型

    我如何使用产品 sku 或 id 获取产品类型 简单 可配置 分组 我已加载产品集合并从中尝试通过 product gt getTypeId 但它不打印产品类型 请帮我 Thanks I think product gt getTypeId
  • 在 Magento 中显示产品所属的所有类别

    我正在构思一个新的 Magento 网站 该网站将包含多个类别的产品 我想知道是否可以在产品详细信息页面上显示产品所属的所有类别 我知道有可能得到the类别 但是否可以显示列表all产品属于哪些类别 例如 衬衫可以包含在Shirts类别 以
  • 如何覆盖magento中的管理模板文件?

    我需要覆盖 adminhtml sales order create items grid phtml 文件 以在从管理员创建新订单时在每个项目下显示一些自定义文本 我希望通过自定义模块来完成此操作 任何人都可以建议如何覆盖管理模板文件 非
  • 在 Magento 控制器中使用 move_uploaded_file

    我是 magento 的新手 我正在 magento 管理中创建用于文件上传的自定义模块 现在我已将上传文件发布到我的模块控制器中 这里我用过move uploaded file将文件上传到与控制器文件夹相同的目录中 下面的代码我用于控制器
  • Magento:我可以在哪个文件夹中看到我安装的扩展?

    我在 magento 1 5 中安装了一个扩展 只是想知道它在我的服务器上的位置 因为我想向它写入一个包含文件 谢谢 通常在 MagentoFolder app code community SomeCompanyName SomePack
  • Magento 一页结帐 - 出现 TypeError: checkout undefined (在 opcheckout.js 中)

    大约一周前 一页结帐工作正常 但现在不行了 毫无疑问我有错 因为我仍然遇到与管理后端相关的问题 并且我可能在处理该问题的过程中以某种方式搞砸了 无论如何 当 登录 注册 用户单击一页结账的帐单信息步骤中的 继续 按钮时 会发生什么情况 就好

随机推荐

  • NSView 添加子视图后的鼠标事件

    在我向 NSView 添加子视图后 我的鼠标事件响应 NSView 减去 addedSubVIew 的区域 我怎样才能避免这种情况 我希望它对所有超级视图做出响应 谢谢 您还可以在容器视图中实现 hitTest 方法 NSView hitT
  • “加载失败!”控制台开发者谷歌

    当我转到我的个人资料时https console developers google com https console developers google com显示 加载失败 错误并且在仪表板或活动中不显示任何内容 清除浏览器缓存在 C
  • 如何检测用户何时切换到登录屏幕?

    我需要知道用户何时切换到登录屏幕 由 ctrl alt del 触发 为了规避 WPF 中令人讨厌的错误 https connect microsoft com VisualStudio feedback details 602232 wh
  • 监控应用程序内存使用情况的正确方法是什么?

    出于调试目的 我编写了这个小静态方法 public static long CheckMemory long maxMemorySizeBytes GC Collect GC WaitForPendingFinalizers GC Coll
  • 无法使用我的窗口应用程序连接到在线数据库。 (C# winforms)

    我注册了一个免费网络托管帐户 该网站提供 MySQL 数据库 我尝试使用 Windows 应用程序访问它 但无法连接到服务器 请考虑我的代码 using System using System Collections Generic usi
  • Android 禁用屏幕保护程序

    我想在应用程序运行时禁用屏幕保护程序 怎样才能做到呢 禁用 启用屏幕保护程序的最佳位置在哪里 在第一个活动中 在application java中 唤醒锁权限必须在清单中指定
  • java局部变量不可用

    我从 Eclipse 调试器中收到以下错误 局部变量不可用 尝试尽可能地修剪代码 问题非常简单 我必须使用 Divise 类中的 DivisiveUI UpdateLog 方法 并使用 Cluster 类中的变量 该部门有一个包含所有集群的
  • miniconda 无法安装 anaconda(安装 anaconda 自定义但没有软件包)

    我正在使用以下脚本以静默模式在计算机上安装 重新安装 最新的 anaconda 长时间运行正常 成功安装anaconda 然而 它最近坏了 现在不是安装所有 anaconda 软件包 而是最终安装 anaconda custom py36h
  • 我们如何复制包含 RSA 密钥的 EVP_PKEY?

    我找到了这个功能EVP PKEY copy parameters 可以复制EVP PKEY 但一些关于此函数的文档说它只能用于 DSA ECC 算法 官方文档 来自openssl org http www openssl org 没有提及该
  • 15 谜题启发式

    The 15 Puzzle是涉及启发式的建模算法的经典问题 此问题常用的启发式方法包括计算错位图块的数量以及计算每个块与其在目标配置中的位置之间的曼哈顿距离之和 请注意 两者都是可接受的 即它们永远不会高估剩余的移动次数 这确保了某些搜索算
  • if 条件从 ruby​​ 数组获取值

    我正在使用以下代码映射一个数组 url http www cnn com page Mechanize new get url images url page images map img img url to s if img width
  • Java 读取文件行并仅提取有用的信息

    我有文件 file1 file2 包含以下内容 2017 02 01 10 00 00 start running error yes doing no finish remind alarmno 123456789 logno 12345
  • 使用最大行长度简洁地序列化 JSON

    因此 我正在生成一个可能很长的 JSON 字符串 以便在 Sendgrid 的 SMTP API 中使用 因为它作为 SMTP 标头 所以它应该具有最大行长度 建议 72 但绝对不超过 1000 文档末尾描述了一种简单的解决方案 http
  • 端点 SWS 没有适配器

    我正在尝试使用创建一个简单的 Hello World WebServicethis http static springsource org spring ws sites 2 0 reference html tutorial html教
  • 在 Android 中格式化 EditText 的电话号码

    我正在制作一个简单的地址簿应用程序 针对 4 2 它需要姓名 地址 城市 州 邮政编码和电话 我想将输入的电话号码格式化为电话号码 XXX XXX XXXX 但我需要将值作为字符串取出 以便在保存时可以将其存储在数据库中 我怎样才能做到这一
  • 从 Internet Explorer 检索所有 cookie

    我正在尝试检索与我打开的特定页面 我已经通过身份验证 关联的所有 cookie 有多个与该网页关联的 cookie 我需要检索每个 cookie 以便稍后进行 POST 我尝试了几种方法 但没有一个给我完整的列表 到目前为止 我已经用 VB
  • 如何在 VS Code 中调试 scala sbt 项目

    我正在尝试在 vs code 中调试 sbt 项目 我已经下载了 VS Code 扩展名 scala Metals 如何在 scala Metal 中显式添加 build sbt 文件夹路径 如何在 scala Metal 中显式添加 bu
  • D3 非连续日期域在 X 轴上产生间隙

    我想绘制一些不连续的时间序列数据 周末 假期等日期的间隙 这是每日数据 数据看起来像这样 date value 1 2 15 109 33 1 5 15 106 25 1 6 15 106 26 1 7 15 107 75 1 8 15 1
  • 忽略Excel求和公式中的隐藏列

    我基本上想忽略Excel中的随机列 有没有办法检测某列是否隐藏 然后不在公式中包含该列 例子是 F1 B1 C1 E1 忽略D列 但第二天 F 栏可能需要 B D E 来代替 有没有办法简单地实现这一目标 我见过一些忽略特定列的公式 但没有
  • 如何检查 Magento 产品是否已添加到购物车?

    我想在 Magento 中首次将产品添加到购物车时显示弹出窗口 并且不想在再次添加或更新产品时显示弹出窗口 简而言之 我想知道将要添加到购物车中的产品是第一次出现还是不是第一次出现 答案很大程度上取决于您想要如何处理父 子类型产品 如果需要