Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Simplecart: problemi con remove, increment e decrement

    ciao!

    sto cercando di integrare il template con simplecart js.
    in fase di caricamento pagina controllo se il carrello è pieno, ed in caso inietto questo nella pagina:
    codice:
    simpleCart.ready(function () {
    if (simpleCart.quantity() <= 0) {
        $('.simpleCart_items').hide();
    } else {
        $('#span_carrello').html(simpleCart.quantity());
        $('#tuo_carrello').html("<?php echo $CARRELLO; ?> (" + simpleCart.quantity() + " <?php echo $ITEMS;?>)");
    
        var mc = '';
        var cntRow = 0;
        var sci = 1;
        simpleCart.each(function (item) {
            let cartId = item.get('art');
            let cartCodice = item.get('codice');
            let cartImg = item.get('thumb').trim();
            let cartName = item.get('name').trim();
            let cartColor = item.get('color').trim();
            let cartQta = item.get('quantity');
            let cartPrice = item.get('price');
            let cartUrl = item.get('url');
            let cartSize = item.get('size');
            let cartLordo = item.get('lordo');
            let cartSconto = item.get('sconto');
    
            mc += '<li id="cartItem_SCI-' + sci + '" class="item clearfix itemRow row-' + cntRow + '">';
    
            // IMG COL
            mc += '<a class="product-image" href="' + cartUrl + '">';
            mc += '<img class="item-image" src="' + cartImg + '" alt="' + cartName + '" title="' + cartName + '">';
            mc += '</a>';
            // END IMG COL
    
            mc += '<div class="product-details">';
    
            // DETAIL ROW
            mc += '<div class="hide item-art">' + cartId + '</div>';
            mc += '<div class="hide item-codice">' + cartCodice + '</div>';
            mc += '<div class="hide item-lordo">' + cartLordo + '</div>';
            mc += '<div class="hide item-sconto">' + cartSconto + '</div>';
            mc += '<a href="javascript:;" class="remove simpleCart_remove"><i class="anm anm-times-sql" aria-hidden="true"></i></a>';
            mc += '<a href="' + cartUrl + '" class="edit-i remove"><i class="icon icon-pencil" aria-hidden="true"></i></a>';
            mc += '<a class="product-title item-name" href="' + cartUrl + '">' + cartName + '</a>';
            mc += '<div class="variant-cart item-color">' + cartColor + '</div>';
            mc += '<div class="variant-cart item-size">' + cartSize + '</div>';
            // END DETAIL ROW
    
            // QTY ROW
            mc += '<div class="wrapQtyBtn">';
            mc += '<div class="qtyField">';
    
            mc += '<span class="item-decrement">';
            mc += '<a class="qtyBtn minus simpleCart_decrement" href="javascript:;">';
            mc += '<i class="anm anm-minus-r" aria-hidden="true"></i>';
            mc += '</a>';
            mc += '</span>';
    
            mc += '<input type="text" name="quantity" value="' + cartQta + '" class="qty item-quantity">';
    
            mc += '<span class="item-increment">';
            mc += '<a class="qtyBtn plus simpleCart_increment" href="javascript:;">';
            mc += '<i class="anm anm-plus-r" aria-hidden="true"></i>';
            mc += '</a>';
            mc += '</span>';
    
            mc += '</div>';
            mc += '</div>';
            // END QTY ROW
    
            // PRICE ROW
            mc += '<div class="priceRow">';
            mc += '<div class="product-price">';
            mc += '<span class="money item-price">' + cartPrice + '</span>';
            mc += '</div>';
            mc += '</div>';
            // END PRICE ROW
    
            mc += '</div>';
            mc += '</li>';
    
            cntRow++;
            sci += 2;
    
            $('#minicart_items').html(mc);
        });
    }
    i probelmi sono questi:
    • remove -> funziona perchè leva l'item corretto, ma visualizzo il carrello corretto solo quando aggiorno la pagina
    • increment e decrement vanno in errore; ve lo posto qua sotto


    codice:
    Uncaught TypeError: b.find(...).decrement is not a function    callback https://www.sito.it/js/simpleCart.js:1144
    
        jQuery 8
    
    
        <anonymous> https://www.sito.it/new/avone/assets/js/plugins.js:18
    
        <anonymous> https://www.sito.it/new/avone/assets/js/plugins.js:18
    
        <anonymous> https://www.sito.it/new/avone/assets/js/plugins.js:1
    la riga 1144 è questa:
    codice:
    b.find(b.$(this).closest(".itemRow").attr("id").split("_")[1]).decrement();
    sinceramente non riesco a capire cosa mi manca.
    Ultima modifica di fermat; 20-10-2020 a 11:44

  2. #2
    ok ho scoperto il vero problema.

    in sostanza funziona tutto, ma succede questo (ad esempio):
    - aggiunto un elemento al carrello, se decrementi a video non succede nulla, ma dietro le quinte l'articolo viene rimosso
    - se provi a fare un altro decremento / incremento va in errore, perchè in verità l'articolo non c'è
    - se invece aggiorni la pagina, non ci sono problemi

    come faccio ad eliminare la riga del prodotto se la quantità è zero, o se si elimina l'articolo?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.