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_dataMagento の他の CRUD データストアとは異なり、特別なテーブルです。このテーブルからデータを引き出す方法は

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

ここ$store_idで、ストア ビューの数値 ID と同じです。再:セクション$store_idのバックエンドでこのテーブルにデータを設定します。System -> Configurationこの UI を使用すると、ストアごとに異なる値を設定できます。そのためgetStoreConfig、ストア ID パラメータを受け入れます。省略すると

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

Magento は、現在のストア ID の値を選択します。でデータの配列を取得することもできます

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

うさぎの穴を本当に飛び降りたい場合(その必要はありません) — 上記の静的メソッド呼び出しを使用する場合、実際にはこのテーブルからデータを読み取っていません。これらの構成値は Magento のグローバル XML 構成ツリーに保存され、Magento がこのツリーをロードすると、core_config_dataテーブルの値がメイン構成ツリーにマージされます。詳細は 1 つのスタック オーバーフローの質問には長すぎますが、そのような深いオタクに興味がある場合は、この一連の記事(自己リンク) で、これらの値が実際にどのように読み込まれるかを説明します。

于 2013-03-27T18:39:06.570 に答える