1

我正在尝试从 Magento 中提取配置数据以执行一些前端计算。出于某种原因,表中的费率处理费被证明是困难的。

我需要从 core_config_data 中提取这些值

(1,'default',0,'carriers/tablerate/handling_type','P'),
(2,'default',0,'carriers/tablerate/handling_fee','18.5'),

我已经尝试过其中的每一个(分别):

$handlingFee = Mage::getModel('shipping/carriers/tablerate')->getHandlingFee();
$handlingFee = Mage::getModel('shipping/carriers')->getHandlingFee();
$handlingFee = Mage::getModel('carriers/tablerate')->getHandlingFee();

我也尝试了这些(基于我看到的引用我需要的值的模型:

$handlingFee = Mage::getModel('shipping/carriers/tablerate')->getConfigData('handling_fee');
$handlingFee = Mage::getModel('shipping/carriers')->getConfigData('handling_fee');
$handlingFee = Mage::getModel('carriers/tablerate')->getConfigData('handling_fee');

其次是:

echo $handlingFee;

我仍在努力了解如何遍历 Magento。我错过了什么?我已经能够从其他一些桌子上拉出来就好了。

4

1 回答 1

2

core_config_data表是一个特殊的表,它不像 Magento 的其他 CRUD 数据存储那样工作。从此表中提取数据的方法是

Mage::getStoreConfig('carriers/tablerate/handling_type', $store_id);

其中$store_id等于商店视图的数字 ID。回复:$store_id,您在该部分的后端的此表中设置数据System -> Configuration- 此 UI 允许您为不同的商店设置不同的值。这就是为什么getStoreConfig接受 store id 参数的原因。如果你省略它

Mage::getStoreConfig('carriers/tablerate/handling_type');

Magento 将选择当前商店 ID 的值。您还可以使用以下方式获取数据数组

$array = Mage::getStoreConfig('carriers/tablerate');
var_dump($array);

如果你真的想跳下兔子洞(你不需要)——当你使用上面的静态方法调用时,你实际上并没有从这个表中读取数据。这些配置值存储在 Magento 的全局 XML 配置树中,当 Magento 加载此树时,它会将core_config_data表中的值合并到主配置树中。对于一个 Stack Overflow 问题来说,详细信息太长了,但是如果您对那种深度书呆子感兴趣,那么本系列文章(自链接)将解释这些值是如何实际加载的。

于 2013-03-27T18:39:06.570 回答