簡體   English   中英

在插件中使用Shopware“添加到購物車”按鈕

[英]Using Shopware “Add to shopping cart” button in plugin

我正在為Shopware 5編寫一個自定義插件。如何在頁面上顯示任意文章的“添加到購物車”按鈕?

目前我正在直接從數據庫中獲取一些現有文章。 然后我將這些文章分配給自定義前端tpl文件(擴展了默認的tpl文件)。 現在我希望為這些提取的文章中的一個顯示按鈕。

我發現,持有(該按鈕的智者塊frontend_detail_buy_buttonthemes/Frontend/Bare/frontend/detail/buy.tpl ),但我不知道如何擴展/其更改為我的需要。

我的Shopware版本是5.2.8。

不確定,我理解你的問題,但如果你需要添加add to cart按鈕,你需要傳輸完整的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>

您可以在那里 看到它在真實網站上的工作方式

根據您的需求,您可以使用sAddAccessoriessAddAccessoriesQuantity輸入將產品列表添加到購物籃中, 例如您可以在那里看到。 如果您可以展示您的網站,我可以為您提供更合適的解決方案。 當您將自定義添加到購物車按鈕時,不要忘記配置器和變體。

我希望你認為這個答案很有幫助。

我不確定我是否理解它,但您可以在詳細頁面上查看商品如何將商品添加到購物籃中。 比s文章更改sBasket。 shopware使用幾個參數。

為了擴展使用:

{extends file="parent:frontend/detail/index.tpl"}

使用塊內的{$smarty.block.parent} ,將填充插件模板上的塊,其中包含默認內容。

Pd:對不起我的英文

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM