Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “使用商店用品”;“添加到购物车”;插件中的按钮_Php_Plugins_Smarty_Smarty3_Shopware - Fatal编程技术网

Php “使用商店用品”;“添加到购物车”;插件中的按钮

Php “使用商店用品”;“添加到购物车”;插件中的按钮,php,plugins,smarty,smarty3,shopware,Php,Plugins,Smarty,Smarty3,Shopware,我正在为Shopware 5编写一个自定义插件。 如何在页面上显示任意文章的“添加到购物车”按钮 目前,我正在直接从数据库中获取一些现有文章。然后,我将这些文章分配给一个定制的前端tpl文件(它扩展了默认的tpl文件)。现在,我希望为这些获取的文章之一显示按钮 我在themes/frontend/Bare/frontend/detail/buy.tpl中找到了保存按钮的smarty块(frontend\u detail\u buy\u button),但我不知道如何根据我的需要扩展/更改它 我的

我正在为Shopware 5编写一个自定义插件。 如何在页面上显示任意文章的“添加到购物车”按钮

目前,我正在直接从数据库中获取一些现有文章。然后,我将这些文章分配给一个定制的前端tpl文件(它扩展了默认的tpl文件)。现在,我希望为这些获取的文章之一显示按钮

我在
themes/frontend/Bare/frontend/detail/buy.tpl
中找到了保存按钮的smarty块(
frontend\u detail\u buy\u button
),但我不知道如何根据我的需要扩展/更改它


我的Shopware版本是5.2.8。

不确定,我完全理解您的问题,但如果您需要添加
添加到购物车
按钮,您需要传输完整的
sAddToBasket
表单

<form name="sAddToBasket" method="post" action="{url controller=checkout action=addArticle}" class="buybox--form" data-add-article="true" data-showOverlay="false" data-eventName="submit"{if $theme.offcanvasCart} data-showModal="false" data-addArticleUrl="{url controller=checkout action=ajaxAddArticleCart}"{/if}>
{if $sArticle.sConfigurator&&$sArticle.sConfiguratorSettings.type==3}
    {foreach $sArticle.sConfigurator as $group}
        <input type="hidden" name="group[{$group.groupID}]" value="{$group.selected_value}"/>
    {/foreach}
{/if}

<input type="hidden" name="sActionIdentifier" value="{$sUniqueRand}"/>
<input type="hidden" name="sAddAccessories" id="sAddAccessories" value=""/>

<input type="hidden" name="sAdd" value="{$sArticle.ordernumber}"/>

{$sCountConfigurator=$sArticle.sConfigurator|@count}

{if (!isset($sArticle.active) || $sArticle.active)}
    {if $sArticle.isAvailable}
        <div class="buybox--button-container block-group{if $NotifyHideBasket && $sArticle.notification && $sArticle.instock <= 0} is--hidden{/if}">

            <div class="buybox--quantity block">
                {$maxQuantity=$sArticle.maxpurchase+1}
                {if $sArticle.laststock && $sArticle.instock < $sArticle.maxpurchase}
                    {$maxQuantity=$sArticle.instock+1}
                {/if}

                <select name="sQuantity" class="quantity--select">
                    {section name="i" start=$sArticle.minpurchase loop=$maxQuantity step=$sArticle.purchasesteps}
                        <option value="{$smarty.section.i.index}">{$smarty.section.i.index}{if $sArticle.packunit} {$sArticle.packunit}{/if}</option>
                    {/section}
                </select>
            </div>

            {* "Buy now" button *}
            {if $sArticle.sConfigurator && !$activeConfiguratorSelection}
                <button class="buybox--button block btn is--disabled is--icon-right is--large" disabled="disabled" aria-disabled="true" name="{s name="DetailBuyActionAdd"}{/s}"{if $buy_box_display} style="{$buy_box_display}"{/if}>
                    {s name="DetailBuyActionAdd"}In den Warenkorb{/s} <i class="icon--arrow-right"></i>
                </button>
            {else}
                <button class="buybox--button block btn is--primary is--icon-right is--center is--large" name="{s name="DetailBuyActionAdd"}{/s}"{if $buy_box_display} style="{$buy_box_display}"{/if}>
                    {s name="DetailBuyActionAdd"}In den Warenkorb{/s} <i class="icon--arrow-right"></i>
                </button>
            {/if}
        </div>
    {/if}
{/if} 
</form>

{如果$sArticle.scoconfigurator&&$sArticle.scoconfiguratorsettings.type==3}
{foreach$sArticle.s配置器为$group}
{/foreach}
{/if}
{$ScontConfigurator=$sArticle.scoConfigurator |@count}
{if(!isset($sArticle.active)| |$sArticle.active)}
{如果$sArticle.isAvailable}
{$maxQuantity=$sArticle.maxpurchase+1}
{if$sArticle.laststock&$sArticle.instock<$sArticle.maxpurchase}
{$maxQuantity=$sArticle.instock+1}
{/if}
{section name=“i”start=$sArticle.minpurchase循环=$maxQuantity步骤=$sArticle.purchasesteps}
{$smarty.section.i.index}{if$sArticle.packunit}{$sArticle.packunit}{/if}
{/section}
{*“立即购买”按钮*}
{if$sArticle.scoconfigurator&!$activeConfiguratorSelection}
{s name=“DetailBuyActionAdd”}在den Warenkorb{/s}
{else}
{s name=“DetailBuyActionAdd”}在den Warenkorb{/s}
{/if}
{/if}
{/if}
您可以了解它在真实站点上的工作方式

根据您的需要,您可以使用
sAddAccessories
sAddAccessoriesQuantity
输入将产品列表添加到购物篮,您可以看到。 如果你能展示你的网站,我可以为你提供更适合你情况的解决方案。当您应用自定义添加到购物车按钮时,不要忘记configurator和变体


我希望你认为这个答案很有帮助。

我不确定我是否理解正确,但你可以在详细信息页面上查看shopware如何将文章添加到购物篮中。而不是用s的文章来改变sBasket。shopware使用几个参数

扩展使用:

{extends file="parent:frontend/detail/index.tpl"}
使用块中的
{$smarty.block.parent}
将使用默认内容填充插件模板上的块


p.d.:对不起,我的英语不好

我想复制表单的相关HTML,并为
sAdd
(某些文章的订单号)输入一个值,但当我单击按钮时,我得到一个错误:
503(服务不可用)
for
http://[DOMAIN]/checkout/ajaxAddArticleCart?callback=jQuery21406407849721801058\u 1488057735447&sActionIdentifier=&sAddAccessories=&sAdd=[ORDERNUMBER]&&uuuu csrf\u token=[token]&isXHR=1&[NUMBER]
。打开/engine/Shopware/Controllers/Frontend/checkout.php并查找:函数addline的第一行上的函数ajaxAddArticleCartAction:ini\u集('display\u errors','1);然后你们会看到错误文本,可以理解问题,因为我不能根据请求回答。。