現在カートに入っている商品を発送するためのパッケージの長さ、幅、高さを示すスニペットを探しています。
配送料モジュールを作成しています。これがパズルの最後のピースです。
どんな情報でも大歓迎です!
ジェフ
現在カートに入っている商品を発送するためのパッケージの長さ、幅、高さを示すスニペットを探しています。
配送料モジュールを作成しています。これがパズルの最後のピースです。
どんな情報でも大歓迎です!
ジェフ
でcollectRates(Mage_Shipping_Model_Rate_Request $request)
すべてのアイテムを使用して取得できます
$request->getAllItems()
/app/code/core/Mage/Shipping/Model/Rate/Request.phpを参照してください
したがって、各アイテムをループして、それらのディメンションを取得できます
foreach($request->getAllItems() as $item){
//do you logic per item
$item->getLength();
$item->getWidth();
$item->getHeight();
}
上記の答えは私にはうまくいきませんでした。おそらくそれは5年前に書かれたものであり、それ以来状況が大きく変わった可能性があるためです...
$ itemオブジェクトに(長さ、幅、高さ)が返されないために機能しなかった理由。
次のように、$Itemオブジェクト内にある同じ$Productオブジェクトを使用して製品を再ロードすることで問題を解決しました。
foreach ($request->getAllItems() as $Item)
{
$ProductID = $Item->getProductId();
$Product = $Item->getProduct(); // Product Object
if ($Product)
{
$ProductFull = $Product->load($ProductID); // This is the important part, mainly because the original $Product doesn't have the extended attributes loaded, this way we get them all and then you could read any attribute you like without having additional classes on the constructor...
$W = $ProductFull->getWidth();
$H = $ProductFull->getHeight();
$D = $ProductFull->getDepth();
$WHATEVER = $ProductFull->getWhateverCustomAttributeYouNeed();
}
}
H