2017-08-16 3 views
0

梱包費

誰も私に、説明された目標を実装するために必要なステップについてのヒントを教えてください。前もって感謝します。

enter image description here

答えて

1

OPTION 1

「フリーテキストフィールド」(設定 - >フリーテキストフィールドの管理)を作成することです最善の方法と、その後StorefrontsettingsでSQLクエリを変更する(設定 - >基本設定 - >フロントエンド - >出荷原価モジュール)。

これは、どのように変更するか、またはパッケージング費用が同じかによって異なります。私はあなたがおそらくそれらを製品のサイズに依存させたいと思っていますが。

だから、あなたができることのようなもの:

//You put this code in the Shipping Costs Modules 
MAX(a.topseller) AS has_topseller, MAX(at.attr3) AS has_comment 
MAX(b.esdarticle) AS has_esd, 
SUM(at.attr4*b.quantity) 

ここで重要な部分は、コードの最後の行です。

この作業を行うには、attr4というフリーテキストフィールドを作成し、記事の希望値に入れたバックエンドの記事詳細(アイテム - >概要 - >ペンシンボル)を作成する必要があります。

しかし、この例は、記事ごとに行う必要があるため非常に具体的ですが、ほとんどすべての場合同じ方法です。

  1. 条詳細に編集し
  2. それのための価値を新しいフリーテキストフィールドを追加
  3. でSQLを変更

「送料はモジュールのコスト」をあなたはドイツ語理解していれば、あなたもそこにチェックアウトすることができますそのトピックのドキュメントhere


OPTIONオプション1では2

価格は普通の輸送コストに追加されます。あなたがそれらを別々に表示したいのであれば、私が考えることができる唯一の方法は少しのプラグインを作成することです。

オプション2から始めるには、フリーテキストフィールドを作成する必要があります。 あなたはそれをチェックアウトに行くに作成した後 - > cart_footer.tpl

ありますが、このような輸送コストと合計の間にあなたの新しく追加されたフリーテキストフィールドを追加します

{block name='frontend_checkout_cart_footer_field_labels_shipping'}{/block} 
{block name='frontend_checkout_cart_footer_field_labels_package} 

     {block name='frontend_checkout_cart_footer_field_labels_package_label'} 
         <div class="entry--label block"> 
          Packaging Costs 
         </div> 
     {/block} 
     {block name='frontend_checkout_cart_footer_field_labels_package_label'} 
         <div class="entry--label block"> 
          {s name="CartFooterLabelPackage"}{/s} 
         </div> 
     {/block} 
{/block} 
{block name='frontend_checkout_cart_footer_field_labels_total'}{/block} 

これはちょうどのための基本的です顧客がパッケージングに支払った価格を見ることができます。

これで、プラグインの作成時期です。

あなたが基本的にやらなければならないことは、簡単なSQLクエリを提出するローカルプラグインを作成することだけです。

次にあなたがチェックアウト/フィニッシュコントローラーにあなたがINVOICE_AMOUNTを操作すること、それを修正するhere

を示すようにあなたは、基本的なプラグイン構造を作成します。そのような

public function addPackage() 
{ 
    $package  = 2.5; 
    $select  = "SELECT invoice_amount FROM s_attribute_configuration ORDER BY id DESC LIMIT 1"; 
    $select_result = Shopware()->Container()->get('models')->getConnection()->fetchColumn($select); 
    $new_price  = $select_result + $package; 
    $update  = "UPDATE s_attribute_configuration SET invoice_amount = $new_price ORDER BY id DESC LIMIT 1" 
    $update_result = Shopware()->Db()->query($update); 
} 

何かがそれを行う必要があります。それをフィニッシュアクションにフックしてください。

最後の問題は、総額がすでにフロントエンドで更新されていることです。私はそれをいくつかのJavascriptで更新できると思います。オプション2のためのPHPスクリプトを作成中


OPTION 1.1

はちょうどこのアイデアを得た:

だけOPTION 1のように輸送コストにパッケージを追加してから少しの追加します情報は梱包費(ここにパッケージングの総額)が含まれています。フリーテキストフィールドでもこれを行うことができます。あなたの望んだ結果をほぼ完全に得る最も簡単な解決策になりますか?

私はこれらの助けを願っています。

+0

詳細な返信 "+1"をありがとうございました。この場合、出荷コストとパッケージングコストを混在させます。しかし、私はこれらの情報を別々に扱いたいと思っています。任意の情報については、別の行があります。ちなみに、パッケージング費用は一塊です(ドイツ語でVerpackungskosten werden pauschal berechnet。)。これは、パッケージング・コストがどのオーダーにもあてはまらないことを意味します。私は参考に感謝します。私はすでにそれに出くわしましたが、それは明白に出荷コストです。どのように私はこれを別々に扱うことができるか考えていますか? –

+0

要件がプラグインの実装を介してのみ可能であると判断できる基準は何ですか? –

+0

はい、そうです。私のソリューションでは、それはカウントアップします。それを完全に分離するには、Shopware Pluginを書く必要があります。最初に、checkout/cart.tplにフリーテキストフィールドを挿入して、フロントエンドにも表示されるようにします。完了したら、mysqli/PDO/DBALを介してデータベースと通信し、基本的に** s_orderテーブル**の** invoice_amount **カラムを変更する簡単なプラグインを作成できます。これはPHP/DBALやShopware Pluginの構造に精通していない人にとっては大変な作業です。 – MLK

関連する問題