0

現在カートに入っている商品を発送するためのパッケージの長さ、幅、高さを示すスニペットを探しています。

配送料モジュールを作成しています。これがパズルの最後のピースです。

どんな情報でも大歓迎です!

ジェフ

4

2 に答える 2

3

@配送方法モジュールの作成をご覧ください

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();
}
于 2013-01-15T18:52:47.010 に答える
0

上記の答えは私にはうまくいきませんでした。おそらくそれは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

于 2021-01-28T20:34:22.350 に答える