web-dev-qa-db-ja.com

Ubercartパッケージの重量の調整

私はオーストラリアポストeDRC( c_auspost_2 )からかなり正確な配送料を受け取っているeショップを持っています。

問題は、梱包材、封筒、および各パッケージに入れる名刺の束が原因で、ときどき過充電になることです。一方で、商品の重量を上げて、お客様に過剰な負担をかけたくない。

送料をリクエストする前に、各パッケージの重量に200グラムを自動的に追加することは可能ですか? Shipping rate markup構成がありますが、それはafter特定のパッケージ重量で受け取った。

2
Jan Tomka

これを行う「エレガントな」方法はないようです。 Ubercartがモジュールを出荷するために提供するのは、コールバック関数を登録するためのフックです。製品を個別のパッケージに分割するというハードワークは、モジュールに残されています。どの種類が理にかなっていますが、システムを完全に「フックできない」ようにします。

したがって、各パッケージに初期重量を追加するには、個々の製品の重量を合計する前に、すべての配送見積もりモジュールをハックし、新しい各パッケージの重量を初期化する必要があります。

これは私が私のUC Auspostモジュールでやったことです:

--- uc_auspost.module.orig      2011-08-15 08:59:46.000000000 +1000
+++ uc_auspost.module   2011-08-15 09:04:04.000000000 +1000
@@ -562,6 +562,7 @@ function _uc_auspost_package_products($p
           $addresses[++$last_key] = $address;
           $key = $last_key;
           $packages[$key][0] = new stdClass();
+          $packages[$key][0]->weight = 200;
         }
       }
       $packages[$key][0]->weight += $product->weight * $product->qty * uc_weight_conversion($product->weight_units, 'g');
1
Jan Tomka