【问题标题】:Display product availability on Prestashop 1.7.6 cart在 Prestashop 1.7.6 购物车上显示产品可用性
【发布时间】:2019-11-19 10:40:30
【问题描述】:

我使用 Prestashop 1.7.6 我需要在购物车上的每个产品详细信息上显示产品可用性。 我要向 cart-detailed-product-line.tpl 和/或其他文件添加什么?

【问题讨论】:

    标签: prestashop prestashop-1.7


    【解决方案1】:

    尝试:

    {if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}                                   
          {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
              <span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability">
                  {if ($product.allow_oosp || $product.quantity > 0)}
                      <span class="{if $product.quantity <= 0 && !$product.allow_oosp}out-of-stock{else}available-now{/if}">
                          <link itemprop="availability" href="http://schema.org/InStock" />{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}
                      </span>
                  {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
                      <span class="available-dif">
                          <link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'}
                      </span>
                  {else}
                      <span class="out-of-stock">
                          <link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'}
                      </span>
                  {/if}
              </span>
          {/if}
      {/if}
    

    将其添加到您要显示此信息的位置。

    **更新*

    试试这个代码:

    <div class="product-line-grid">
      <!--  product left content: image-->
      <div class="product-line-grid-left col-md-3 col-xs-3">
        <span class="product-image media-middle">
          <img src="{$product.cover.bySize.cart_default.url}" alt="{$product.name|escape:'quotes'}">
        </span>
      </div>
    
      <!--  product left body: description -->
      <div class="product-line-grid-body col-md-4 col-xs-6">
        <div class="product-line-info">
          <a class="label" href="{$product.url}" data-id_customization="{$product.id_customization|intval}">{$product.name}</a>
        </div>
    
        <div class="product-line-info product-price h5 {if $product.has_discount}has-discount{/if}">
          {if $product.has_discount}
            <div class="product-discount">
              <span class="regular-price">{$product.regular_price}</span>
              <!--{if $product.discount_type === 'percentage'}
                <span class="discount discount-percentage">
                    -{$product.discount_percentage_absolute}
                  </span>
              {else}
                <span class="discount discount-amount">
                    -{$product.discount_to_display}
                  </span>
              {/if}-->
            </div>
          {/if}
          <!--<div class="current-price">
            <span class="price">{$product.price}</span>
            {if $product.unit_price_full}
              <div class="unit-price-cart">{$product.unit_price_full}</div>
            {/if}
          </div>-->
    
        {if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}                                   
            {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
                <span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability">
                    {if ($product.allow_oosp || $product.quantity > 0)}
                        <span class="{if $product.quantity <= 0 && !$product.allow_oosp}out-of-stock{else}available-now{/if}">
                            <link itemprop="availability" href="http://schema.org/InStock" />{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}
                        </span>
                    {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
                        <span class="available-dif">
                            <link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'}
                        </span>
                    {else}
                        <span class="out-of-stock">
                            <link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'}
                        </span>
                    {/if}
                </span>
              {/if}
        {/if}
        </div>
    
        <br/>
    
        {foreach from=$product.attributes key="attribute" item="value"}
          <div class="product-line-info">
            <span class="label">{$attribute}:</span>
            <span class="value">{$value}</span>
          </div>
        {/foreach}
    
        <div class="col-md-2 col-xs-6 text-xs-right delete">
          <div class="cart-line-product-actions">
            <a
                class                       = "remove-from-cart"
                rel                         = "nofollow"
                href                        = "{$product.remove_from_cart_url}"
                data-link-action            = "delete-from-cart"
                data-id-product             = "{$product.id_product|escape:'javascript'}"
                data-id-product-attribute   = "{$product.id_product_attribute|escape:'javascript'}"
                data-id-customization         = "{$product.id_customization|escape:'javascript'}"
            >
              {if !isset($product.is_gift) || !$product.is_gift}
              <span class="float-xs-left"><!--<i class="material-icons">delete_forever</i>-->Rimuovi</span>
              {/if}
            </a>
    
            {block name='hook_cart_extra_product_actions'}
              {hook h='displayCartExtraProductActions' product=$product}
            {/block}
    
          </div>
        </div>
    
        {if is_array($product.customizations) && $product.customizations|count}
          <br>
          {block name='cart_detailed_product_line_customization'}
            {foreach from=$product.customizations item="customization"}
              <a href="#" data-toggle="modal" data-target="#product-customizations-modal-{$customization.id_customization}">{l s='Product customization' d='Shop.Theme.Catalog'}</a>
              <div class="modal fade customization-modal" id="product-customizations-modal-{$customization.id_customization}" tabindex="-1" role="dialog" aria-hidden="true">
                <div class="modal-dialog" role="document">
                  <div class="modal-content">
                    <div class="modal-header">
                      <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                      </button>
                      <h4 class="modal-title">{l s='Product customization' d='Shop.Theme.Catalog'}</h4>
                    </div>
                    <div class="modal-body">
                      {foreach from=$customization.fields item="field"}
                        <div class="product-customization-line row">
                          <div class="col-sm-3 col-xs-4 label">
                            {$field.label}
                          </div>
                          <div class="col-sm-9 col-xs-8 value">
                            {if $field.type == 'text'}
                              {if (int)$field.id_module}
                                {$field.text nofilter}
                              {else}
                                {$field.text}
                              {/if}
                            {elseif $field.type == 'image'}
                              <img src="{$field.image.small.url}">
                            {/if}
                          </div>
                        </div>
                      {/foreach}
                    </div>
                  </div>
                </div>
              </div>
            {/foreach}
          {/block}
        {/if}
      </div>
    
      <!--  product left body: description -->
      <div class="product-line-grid-right product-line-actions col-md-5 col-xs-3">
        <div class="row">
          <!--<div class="col-xs-4 hidden-md-up"></div>-->
          <div class="col-md-10 col-xs-12">
            <div class="row">
              <div class="col-md-6 col-xs-12 price">
                <span class="product-price">
                  <strong>
                    {if isset($product.is_gift) && $product.is_gift}
                      <span class="gift">{l s='Gift' d='Shop.Theme.Checkout'}</span>
                    {else}
                      {$product.total}
                    {/if}
                  </strong>
                </span>
              </div>
              <div class="col-md-6 col-xs-12 qty">
                {if isset($product.is_gift) && $product.is_gift}
                  <span class="gift-quantity">{$product.quantity}</span>
                {else}
                  <input
                    class="js-cart-line-product-quantity"
                    data-down-url="{$product.down_quantity_url}"
                    data-up-url="{$product.up_quantity_url}"
                    data-update-url="{$product.update_quantity_url}"
                    data-product-id="{$product.id_product}"
                    type="number"
                    value="{$product.quantity}"
                    name="product-quantity-spin"
                    min="{$product.minimal_quantity}"
                  />
                {/if}
              </div>
            </div>
          </div>
        </div>
      </div>
    
      <div class="clearfix"></div>
    </div>
    

    【讨论】:

    • 首先,你清除缓存了吗?如果是这样,您应该检查它是否正在访问if 条件。在每行之后添加一个字符串以检查是否满足if 条件。您也可以尝试评论第一个和第二个if 条件。
    • 我尝试了各种方式。然后我首先清除了缓存:我在每个 if 行中添加了一个检查行,但它不起作用,所以我评论了前 2 个 if 行,但它们在这两种方式中都不起作用。
    • 请更简洁。转储$product 对象以查看您拥有哪些数据。
    • 我做到了。我没有{$product}的数据
    • @Enrico 您在哪里添加了此代码?你能粘贴你的整个cart-detailed-product-line.tpl文件吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2013-06-07
    • 2012-12-04
    • 2016-04-03
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多