Carro accesorios y productos relacionados - Bsale-IO/template-docs GitHub Wiki

⚠️ Este desarrollo está en beta y probablemente aun no lo puedas implementar en tu template

Es posible obtener los productos relacionados y accesorios desde el carro de compra siempre que los productos agregados al carro posean productos relacionados y/o accesorios

Se mostrará un máximo de 25 accesorios y 25 productos relacionados, los productos a mostrar dependerá de cuantos productos haya en carro.

  • Si hay 5 productos en el carro y cada uno de ellos tiene 8 productos relacionados, se mostrarán 5 productos relacionados por cada producto en carro.
  • Si hay 2 productos en el carro, uno de ellos tiene 8 productos relacionados y otro no tiene productos relacionados se mostrarán los 8 productos del primero
  • Si hay 26 productos en carro y cada uno tiene 2 o más productos relacionados, se mostrarán 1 producto relacionado por cada uno de los 25 primeros productos agregados.
  • Si hay dos productos en el carro y ambos tienen los mismos productos relacionados, sólo se mostrarán los productos relacionados del primero (no se repetirán productos relacionados)

Los componentes de productos relacionados y accesorios, pueden ser utilizados juntos o por separado.

Accesorios

Para agregar los accesorios, debes:

1- Agregar el siguiente componente con el nombre carro> accesorios relacionados o culquiera sea de tu preferencia, en tu lista de componentes:

{% if accessories.size > 0 %}
    {% assign left = "fa-angle-left" %} 
        {% assign right = "fa-angle-right" %}
        {% assign discount_format = ""%}
            
        
        {% capture option_slider %}
            "lazyLoad": "ondemand",
            "infinite": true,
            "nextArrow": "<div class=\"slick-next\"><i class=\"fas {{right}}\"></i></div>",
            "prevArrow": "<div class=\"slick-prev\"><i class=\"fas {{left}}\"></i></div>",
            "slidesToShow": 4,
            "responsive": [
                {
                    "breakpoint": 768,
                    "settings": {
                        "slidesToShow": 3
                    }
                },{
                    "breakpoint": 576,
                    "settings": {
                        "slidesToShow": 2
                    }
                },{
                    "breakpoint": 384,
                    "settings": {
                        "slidesToShow": 1
                    }
                }
            ]
        {% endcapture %}
    <section class="bs-product-accessories" style=" margin-top: 20px">
        <h2 class="h3">ACCESORIOS</h2>
        <div class="col-12">
            <div  data-bs='slider' data-info='{ {{option_slider | strip_newlines | replace: '    ', ''}} }' 
            class="bs-collection bs-horizontal-slider slider-left">
                {% for product in accessories | limit: 8 %}
                    {% assign st = product.id | get_product_stock%}
                    
                    <a class="d-flex " href="{{product.link}}">
                        <div class="bs-product" data-bs="product" data-info="{{product.id}}">
                            <div class="bs-img-square hover">
                                {% if product.discountRate > 0 %}
                                    <div class="bs-discount {{discount_format}}">
                                        <span>-{{ product.discountRate | round }}%</span>
                                    </div>
                                {%endif%}
                                {% if st < 1 %}
                                    <div class="bs-stock">Sin stock</div>
                                {% endif%}
                                <picture>
                                    
                                    <img
                                       
                                        src="{{pixel}}"
                                        {% if product.default_image.size > 0 %}
                                            data-lazy="{{ product.default_image | image_url: 'M' }}"
                                        {%else%}
                                            data-lazy="{{ site.logo | image_url: 'M' }}"
                                        {%endif%}
                                        alt="{{ product.title }}"
                                        title="{{ product.title }}"
                                    >
                                            
                                    {% if product.images.size > 1 %}
                                        {% for img in product.images %}
                                            {% if img.href != product.default_image %}
                                                <img 
                                                    src="{{pixel}}"
                                                    data-lazy="{{ img.href | image_url: 'M' }}"
                                                    alt="{{ product.title }}"
                                                    title="{{ product.title }}"
                                                >
                                                 {%break%}
                                            {% endif%}
                                        {% endfor %}
                                    {% endif %}
                                    
                                </picture>
                            </div>
                            <div class="bs-product-info">
                                <h5 class="bs-trunc">
                                    {{product.title}}
                                </h5>
                                {% if product.brand.name %}
                                    <small class="bs-product-brand">{{product.brand.name}}</small>
                                {% endif %}
                            </div>
                            <div class="bs-product-price">
                                {% if product.discount_rate > 0 %}
                                    <div class="bs-product-old-price">
                                        <strike>{{product.fpWithoutDiscount | money_filter}}</strike>
                                    </div>
                                {% endif %}
                                {% if product.discount_cant > 1 %}
                                    <div class="bs-discount-condition">
                                        <small>Por compras desde {{product.discount_cant | round}} unidades</small>
                                    </div>
                                {% endif %}
                                <div class="bs-product-final-price">
                                    {{product.final_price | money_filter}}
                                </div>
                            </div>
                        </div>
                    </a>
                    
                {% endfor %}
            </div>
        </div>
    </section>
{%endif %}

2- Se debe agregar en el componente Carro lo siguiente:

{% if items > 0 %}
   <div class="col-12">
     {{ cart_d | get_accessories_cart: "nombre del componente creado en el paso 1" }}
   </div>
{% endif %}

Estructura

{% for product in accessories %}
	{{product.title}}
	{{product.id}}
	{{product.id_producto}}
	{{product.notice}}
	{{product.variant_price}}
	{{product.variant_id}}
	{{product.default_image}}
	{{product.price_list}}
	{{product.video_url}}
	{{product.link}}
	{{product.description}}
	{{product.has_decimal}}
	{{product.discount_rate}}
	{{product.discount_name}}
	{{product.discount_cant}}
	{{product.final_price}}
{% endfor %}

Productos relacionados

Para agregar los productos relacionados, debes:

1- Agregar el siguiente componente con el nombre carro> productos relacionados o culquiera sea de tu preferencia, en tu lista de componentes:

{% if related.size > 0 %}

    {% assign left = "fa-angle-left" %} 
        {% assign right = "fa-angle-right" %}
        {% assign discount_format = ""%}
            
        
        {% capture option_slider %}
            "lazyLoad": "ondemand",
            "infinite": true,
            "nextArrow": "<div class=\"slick-next\"><i class=\"fas {{right}}\"></i></div>",
            "prevArrow": "<div class=\"slick-prev\"><i class=\"fas {{left}}\"></i></div>",
            "slidesToShow": 4,
            "responsive": [
                {
                    "breakpoint": 768,
                    "settings": {
                        "slidesToShow": 3
                    }
                },{
                    "breakpoint": 576,
                    "settings": {
                        "slidesToShow": 2
                    }
                },{
                    "breakpoint": 384,
                    "settings": {
                        "slidesToShow": 1
                    }
                }
            ]
        {% endcapture %}
    
    <section class="bs-product-related" style=" margin-top: 40px">
        <h2 class="h3">TAMBIEN PODRIA INTERESARTE</h2>
        <div class="col-12">
            <div  data-bs='slider' data-info='{ {{option_slider | strip_newlines | replace: '    ', ''}} }' 
            class="bs-collection bs-horizontal-slider slider-left">
                {% for product in related | limit: 8 %}
                    {% assign st = product.id | get_product_stock%}
                    
                    <a class="d-flex " href="{{product.link}}">
                        <div class="bs-product" data-bs="product" data-info="{{product.id}}">
                            <div class="bs-img-square hover">
                                {% if product.discountRate > 0 %}
                                    <div class="bs-discount left {{discount_format}}">
                                        <span>-{{ product.discountRate | floor }}%</span>
                                    </div>
                                {%endif%}
                                {% if st < 1 %}
                                    <div class="bs-stock">Sin stock</div>
                                {% endif%}
                                
                                <picture>
                                    
                                    <img
                                        src="{{pixel}}"
                                        {% if product.default_image.size > 0 %}
                                            data-lazy="{{ product.default_image | image_url: 'M' }}"
                                        {%else%}
                                            data-lazy="{{ site.logo | image_url: 'M' }}"
                                        {%endif%}
                                        alt="{{ product.title }}"
                                        title="{{ product.title }}"
                                    >
                                            
                                    {% if product.images.size > 1 %}
                                        {% for img in product.images %}
                                            {% if img.href != product.default_image %}
                                                <img 
                                                    src="{{pixel}}"
                                                    data-lazy="{{ img.href | image_url: 'M' }}"
                                                    alt="{{ product.title }}"
                                                    title="{{ product.title }}"
                                                >
                                                {%break%}
                                            {% endif%}
                                        {% endfor %}
                                    {% endif %}
                                    
                                </picture>
                            </div>
                            <div class="bs-product-info">
                                <h5 class="bs-trunc">
                                    {{product.title}}
                                </h5>
                                {% if product.brand.name %}
                                    <small class="bs-product-brand">{{product.brand.name}}</small>
                                {% endif %}
                            </div>
                            <div class="bs-product-price">
                                {% if product.discount_rate > 0 %}
                                    <div class="bs-product-old-price">
                                        <strike>{{ product.fpWithoutDiscount | money_filter}}</strike>
                                    </div>
                                {% endif %}
                                {% if product.discount_cant > 1 %}
                                    <div class="bs-discount-condition">
                                        <small>Por compras desde {{product.discount_cant | round}} unidades</small>
                                    </div>
                                {% endif %}
                                <div class="bs-product-final-price">
                                    {{product.final_price | money_filter}}
                                </div>
                            </div>
                        </div>
                    </a>
                   
                {% endfor %}
            </div>
        </div>
    <section>
{%endif %}

2- Se debe agregar en el componente Carro lo siguiente:

{% if items > 0 %}
   <div class="col-12">
     {{ cart_d | get_related_cart: "nombre del componente creado en el paso 1" }}
   </div>
{% endif %}

Estructura

{% for product in related %}
	{{product.title}}
	{{product.id}}
	{{product.id_producto}}
	{{product.notice}}
	{{product.variant_price}}
	{{product.variant_id}}
	{{product.default_image}}
	{{product.price_list}}
	{{product.video_url}}
	{{product.link}}
	{{product.description}}
	{{product.has_decimal}}
	{{product.discount_rate}}
	{{product.discount_name}}
	{{product.discount_cant}}
	{{product.final_price}}
{% endfor %}
⚠️ **GitHub.com Fallback** ⚠️