2017-08-16 95 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