答案 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的“自由文本字段”,现在在后端的文章详细信息(项目 - >概述 - >笔符号)中,您可以放入文章的所需值。
然而,这个例子非常具体,因为你必须为每篇文章做这件事,但几乎在每种情况下方法都保持不变。
如果您了解德语,您还可以查看该主题的文档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中,然后在运输成本下添加一些信息,其中包含(在此处插入包装总和)的包装成本。你也可以使用自由文本字段。这将是最简单的解决方案,可以让您几乎完美地达到您希望的结果。
我希望其中任何一个都有帮助。