Jump to content

Ajax-cart fonction remove


Recommended Posts

Bonjour,

 

J'ai un champs personalisation sur ma page produit, et j'ai réussi a modifier la fonction add du fichier ajax-cart.js, et le fichier Cart.php, pour que cela s'ajoute dans la base de données dans la table cart_product, dans un nouveau champs préalablement crée.

 

J'ai également réussi à faire en sorte que lorsque l'on repersonnalise le même produit, puis l'ajoute au panier, on vérifie également le champs de personnalisation pour vérifier que c'est bien un produit différent, et donc au final j'ai deux lignes dans mon panier.

 

Ce que je n'arrive pas, c'est pour supprimer un des produits du panier, dans le cas où il y a deux fois le même produit, mais avec des codes de personnalisation différents.

 

J'ai tenté de faire comme pour add de ajax-cart, j'ai rajouter mon code personnalisation dans le data-id du produit dans le panier, ce qui fait que j'arrive logiquement à le récupérer dans le ajax-cart dans cette partie :

if (!customizationId)
{
    //retrieve idProduct and idCombination from the displayed product in the block cart
    var firstCut = $(this).parent().parent().data('id').replace('cart_block_product_', '');
    firstCut = firstCut.replace('deleteCustomizableProduct_', '');
    ids = firstCut.split('_');
    productId = parseInt(ids[0]);
    MONCODEPERSO = ids[3];

    if (typeof(ids[1]) != 'undefined')
        productAttributeId = parseInt(ids[1]);
    if (typeof(ids[2]) != 'undefined')
        idAddressDelivery = parseInt(ids[2]);
}

ajaxCart.remove(productId, productAttributeId, customizationId, idAddressDelivery, MONCODEPERSO);

Ensuite, dans la définition de la fonction remove, je fais comme suit :

remove : function(idProduct, idCombination, customizationId, idAddressDelivery, MONCODEPERSO){
[...]
data: 'controller=cart&delete=1&id_product=' + idProduct + '&ipa=' + ((idCombination != null && parseInt(idCombination)) ? idCombination : '') + ((customizationId && customizationId != null) ? '&id_customization=' + customizationId : '') + '&id_address_delivery=' + idAddressDelivery + '&moncodeperso=' + MONCODEPERSO + '&token=' + static_token + '&ajax=true',

Mais maintenant, je ne sais plus ce que je dois faire. J'ai beau cherché sur les forums depuis quelques jours, avoir testé tout ce qui m'est passé par la tête avec la classe Cart et le controller du même nom, mais malheureusement mission impossible.

 

C'est pourquoi je viens maintenant faire appel à vous, en espérant que vous pourrez m'apporter votre aide.

J'espère avoir été clair avec mon problème.

 

Merci d'avance !

Link to comment
Share on other sites

Pour une raison X .. j'ai pas pu faire fonctionné comme je veux la méthode remove.

et j'ai résolu mon problème en ajoutant un (operator) dans cart.php ligne 922. j'ai ajouter

elseif ($operator == 'trott')
{
	$qty = '- 1';
	$new_qty = (int)$result['quantity'] - 1;
	if ($new_qty < $minimal_quantity && $minimal_quantity > 1)
	return -1;
}

puis :

$.get("panier?add=1&id_product="+infonet[1]+"&ipa="+infonet[0]+"&id_address_delivery=0&op=trott");

pour les appels de suppression.

 

voila. j’espère que ça peut te donner des idées.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...