包装成本

时间:2017-08-16 09:14:16

标签: shopping-cart shopware

我想在运费的行中添加与服务产品类似的任何订单,其中提供了有关包装费用的信息。

任何人都可以给我一些提示,以便实现所描述的目标需要哪些步骤。提前谢谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

选项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
  4. 如果您了解德语,您还可以查看该主题的文档here

    选项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

    所示

    然后你在checkout / finish控制器上修改它,你操纵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更新它。

    选项1.1

    在为选项2创建PHP脚本时得到了这个想法:

    只需将包装添加到运输成本中,例如在选项1中,然后在运输成本下添加一些信息,其中包含(在此处插入包装总和)的包装成本。你也可以使用自由文本字段。这将是最简单的解决方案,可以让您几乎完美地达到您希望的结果。

    我希望其中任何一个都有帮助。