2017-08-16 36 views
0

我想添加到任何順序類似於排服務產品運輸成本,提供有關的包裝成本信息。包裝成本

任何人都可以給我一些提示,以實現所描述的目標需要哪些步驟。先謝謝你。

enter image description here

回答

1

OPTION 1

最好的方法是創建一個「自由文本字段(配置 - >免費文本字段管理),然後修改SQL查詢中Storefrontsettings(配置 - >基本設置 - >前端 - >運輸成本模塊)。

它現在取決於您想如何改變它或包裝成本是否相同。雖然我相信你可能想讓他們依賴於產品的大小。

,所以你可以這樣的事情:

//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的「自由文本字段」,然後在後端的文章詳細信息(Items - > Overview - > Pen Symbol)中添加您希望的文章值。

然而,這個例子非常具體,因爲你必須爲每一篇文章都做,但這種方法對於幾乎每一種情況都保持不變。

  1. 添加新的空白文本字段
  2. 編輯爲它的價值在文章詳細
  3. 修改在SQL「運費模塊」

如果你懂德語,你還可以檢出有該主題的文檔here


OPTION 2

在備選方案1的價格被剛添加到正常的運輸成本。雖然如果你想讓它們分開顯示,我能想到的唯一方法就是創建一個小插件。

要從選項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查詢。

你創建了顯示here

基本插件結構,然後修改它的結賬/結束控制器上您操作INVOICE_AMOUNT:

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來更新它。


OPTION 1.1

剛剛得到這個想法而選擇2創建的PHP腳本:

就在OPTION 1的包裝增加了運輸成本等,然後加點運輸費用下的信息包括(在此插入包裝金額)的包裝成本。你也可以用自由文本字段來做到這一點。將是最簡單的解決方案,可以讓你幾乎完美地滿足你的期望結果。

我希望這些幫助。

+0

謝謝@MLK的詳細回覆「+1」。在這種情況下,您將運輸成本與包裝成本相混合。但我想分開處理這些信息。任何信息都有單獨的一行。順便說一下,包裝成本是包裝成本(在德國,包裝成本是Verpackungskosten werden pauschal berechnet)。這意味着包裝費用不適用於任何訂單。我感謝你的參考。我已經知道了,但它明確地說明了貨運成本。你有什麼想法,我怎麼能分開處理。 –

+0

什麼是使您能夠決定需求僅通過實現可能的插件的標準。 –

+0

是的,這是正確的。隨着我的解決方案,它數了。爲了使它完全分離,你將不得不編寫一個Shopware插件。首先,將自由文本字段插入checkout/cart.tpl中,以便它也可以顯示在客戶的前端。完成後,您可以製作一個簡單的插件,通過mysqli/PDO/DBAL與數據庫進行通信,並基本修改** s_order表**中的** invoice_amount **列。儘管如果您不熟悉PHP/DBAL和Shopware插件結構,這可能會有很多工作。 – MLK