php - Magento 1 - 按名称获取产品
问题描述
我目前检查 post 参数是否具有特定值并使用我在后端手动查找并输入脚本的 pid 初始化变量。
if (strpos($this->gleit, "Alu Gleitabschluss - Design") !== false) { $this->gleit_pid = 2322; }
else if (strpos($this->gleit, "Kunststoff-Gleitabschluss") !== false) { $this->gleit_pid = 2954; }
else if (strpos($this->gleit, "Alu Gleitabschluss") !== false) { $this->gleit_pid = 2950; }
else if (strpos($this->gleit, "Alu-Endstück Putz") !== false) { $this->gleit_pid = 2936; }
else if (strpos($this->gleit, "Alu-Endstück Klinker") !== false) { $this->gleit_pid = 3227; }
这不是一个好的解决方案,如果有新产品,那么我必须添加更多代码。
有没有办法按产品名称加载产品?我可以开发一个在 for 循环中加载所有产品模型并检查名称的方法,但这会占用太多资源,并且加载时间会非常长,并且服务器会不满意。
例如
public function findProductByName($name, $start, $end)
{
for($pid = $start; $pid < $end; $pid++ ) {
$tmpModel = Mage::getModel('catalog/product')->load($pid);
$tmpName = $tmpModel->getName();
$a = get_object_vars($tmpModel);
$b = get_class_methods($tmpModel);
if ($tmpName == $name) {
return tmpModel;
}
}
}
怎么做才对。
解决方案
您可以使用以下方法:
$_product= Mage::getModel('catalog/product')->loadByAttribute('name','Product Name');
echo $_product->getId();
推荐阅读
- r - 如何使第一个 col 与 kable 表对齐,其余的与 kable 表对齐
- javascript - 反应“无法对未安装的组件执行状态更新”超时
- hadoop - AWS VPC 之间 200TB Hadoop 数据的数据迁移
- r - 根据多个条件添加新列
- ios - UICollectionCellView 委托没有被触发
- python - 用列表的元素重命名许多 dfs 的列
- apache-kafka-streams - 用于大容量数据处理的 Spring Kafka 或 Kafka 流 Spring boot 应用程序
- python - 如何使用 Python 将包含句子的列表拆分为包含单词的列表?
- c - 编译 C 程序以使用 malloc() 和 free() 从 m×n 矩阵中查找重复值时出错
- post - 解决从 Arduino MKR1010 发布到 IFTTT 的 webhook 的问题