包装成本
Packaging Costs
我想在任何订单中添加一个 服务产品,类似于 运费 的行,提供有关 包装成本.
任何人都可以给我一些提示,以实现所描述的目标需要哪些步骤。提前谢谢你。
选项 1
最好的方法是创建一个'free text field'(配置-> 自由文本字段管理),然后修改店面设置中的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 的 'free text field',现在在后端的文章详细信息中(项目 -> 概述 -> 钢笔符号),您为文章输入您希望的值。
但是这个示例非常具体,因为您必须对每篇文章都执行此操作,但几乎所有情况的方法都相同。
- 添加新的自由文本字段
- 在文章详细信息中编辑它的值
- 修改'Shipping Costs Modules'中的SQL
如果您懂德语,您还可以查看该主题的文档 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 一样将包装添加到运费中,然后在运费下添加一些信息,其中包含(在此处插入包装总和)的包装成本。您也可以使用自由文本字段来做到这一点。将是最简单的解决方案,可以让您几乎完美地达到您想要的结果。
希望这些对您有所帮助。
我想在任何订单中添加一个 服务产品,类似于 运费 的行,提供有关 包装成本.
任何人都可以给我一些提示,以实现所描述的目标需要哪些步骤。提前谢谢你。
选项 1
最好的方法是创建一个'free text field'(配置-> 自由文本字段管理),然后修改店面设置中的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 的 'free text field',现在在后端的文章详细信息中(项目 -> 概述 -> 钢笔符号),您为文章输入您希望的值。
但是这个示例非常具体,因为您必须对每篇文章都执行此操作,但几乎所有情况的方法都相同。
- 添加新的自由文本字段
- 在文章详细信息中编辑它的值
- 修改'Shipping Costs Modules'中的SQL
如果您懂德语,您还可以查看该主题的文档 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 一样将包装添加到运费中,然后在运费下添加一些信息,其中包含(在此处插入包装总和)的包装成本。您也可以使用自由文本字段来做到这一点。将是最简单的解决方案,可以让您几乎完美地达到您想要的结果。
希望这些对您有所帮助。