1

合計 $75 ドル以上のご注文で無料のオンライン配送を提供しており、この割引を提供するプロセスは簡単です。

買い手が送料を支払わない場合、これらの商品の送料により取引が金銭的損失につながるため、かさばり、送料無料の割引を免除する必要があるいくつかの商品をすぐに在庫に追加します。

Open Cart で、特定の商品を「75 ドル以上送料無料」ポリシーから除外するにはどうすればよいですか? これはコードで行う必要があると思いますが、どこを見ればよいかわかりません。

4

2 に答える 2

4

実際、OpenCart で標準の配送拡張機能を使用して無料配送を提供するプロセスはばかげています。それは顧客に計算された配達か無料配達の選択を提供します! これは、配送が異なる場合にのみ意味があります。つまり、無料配送の方が遅い場合です。

低価格の配送オプションを使用するのではなく、購入を無料配送から除外したいので、現在、無料配送が利用可能な場合に顧客が有料配送を選択すると、少し多くのお金を稼ぐことができると思います.

私が強くお勧めするのは、2 つのルールを 1 つの配送延長に結合することです。これにより、無料配送料金を削除できるだけでなく、有料配送オプションが表示されなくなります。

このコードはどこにありますか?

管理セクションの各送料計算オプションは、送料拡張機能です。これは 5 つのファイルに分かれています。

ロジックは にありcatalog\model\shipping、管理コントロールはadmin\controller\shippingおよびにありadmin\view\template\shippingます。とにも言語がcatalog\language\english\shippingありadmin\language\english\shippingます。これらすべてのフォルダで、ファイル名は同じである必要があります。

既存の「無料」配送拡張機能からファイルを取得し、それらを新しいファイル名と一致するクラス名で複製することにより、独自の配送拡張機能を追加するか、既存の拡張機能をハックすることができます。

既存の拡張機能のコピーから拡張機能を作成する場合は、それに応じてクラス名を修正することを忘れないでください (たとえば、ファイル名に一致するように の Free 部分を変更します) ModelShippingFreeControllerShippingFree

私は常にストア固有のルールを使用することになるため、これらのファイルには常にストアにちなんだ名前を付けています。これにより、どちらをアクティブにするかがより明確になります。

コードの記述に行き詰まる前に、疑似コードで理想的な組み合わせルールを検討してください。かさばる製品の 0 は、次のようになります。

if subtotal>75 then cost=0 else cost=10 if totalweight > 0 then cost = cost + (1*totalweight)

使用および適応できるコード例の既存のすべての拡張機能を調べて、どの値をハードコーディングしても問題なく、どれを管理者設定で調整する必要があるかを判断します。

( から totalweight$this->cart->getWeightと から小計を取得できます$this->cart->getTotal())

すでに weight を使用している場合は、totalweight が非常に高いためにかさばる商品がカートに入っていることがまだわからない限り、コーディングは非常に難しくなります。カート内の各アイテムをステップ実行し、他のパターンに一致する「かさばる」製品を追加する必要があります。まず、OpenCart 内で編集できるフィールドを見てください。

最後に、驚きを避けるために、テキスト画面を変更して、かさばる商品には送料無料が適用されないことを記載し、商品画面を変更して、商品がかさばって送料無料の対象外であることを示すことを忘れないでください.

于 2012-11-21T12:37:03.860 に答える
1

標準のOCセットアップでは、これは不可能です。除外する商品を設定できる何らかのフラグをコーディングする必要があります。次に、送料無料拡張機能のモデルファイルで、それを再コーディングして、ない商品のコストを計算する必要があります。フラグのみ。標準のカートは$this->cart->getTotal()、フラグが立てられたアイテムを除外しないものを使用します

于 2012-11-20T17:02:21.703 に答える