Ajouter produit au panier grâce a ajax

  • Posts: 25
  • Thank you received: 1
6 years 9 months ago #272895

Bonjour, je vien sur le forum car j'ai vraiment bessoin d'aide.
J'ai un modal fait avec bootstrap qui me permet de customizer Les produits, quand je clique sur le button "terminate" du modal je voudrais que Le produit "customize" soit ajouté au panier.
J'ai déjà essayer avec un script externe qui est exécuté par ajax qui permet d'ajouter Le produit au panier sauf que j'avais oublié que l'ID de l'utilisateur ne se transmettait pas donc Le produit ne s'ajoute pas donc je vien vous poser ma question: comment puis-je ajouter le produit "customization" quand on clique sur "terminate"?
Merci de vos future réponses

Please Log in or Create an account to join the conversation.

  • Posts: 26000
  • Thank you received: 4004
  • MODERATOR
6 years 9 months ago #272910

Bonjour,

Je suis navré mais je ne comprends pas votre message.
De quel "ID" d'utilisateur parlez vous ? Quel est ce bouton "terminate" ? Quel est le contexte ?
Merci de fournir une explication nettement plus complète permettant de comprendre de quoi vous parlez et merci de fournir les informations demandez à la création d'un sujet sur notre forum ; en commencent par la numéro de version que vous utilisez !

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 25
  • Thank you received: 1
6 years 9 months ago #272934

Hikashop version: 3.1.1
Joomla version: 3.7.2
Php version: 7.0.20

Bonjour Jerome, merci de m'avoir répondu,donc voici mon modal:


en bas, il y a un bouton terminate et je voudrai que quand l’utilisateur clique sur celui-ci le produit "Customization" soit ajouté au panier, j'ai déjà testé avec ajax sur un fichier externe avec le code:
<?php

    define('JPATH_BASE', $_SERVER['DOCUMENT_ROOT']);

    include(JPATH_BASE.'/includes'.DS.'defines.php' );
    include ( JPATH_BASE .'/includes'.DS.'framework.php' );

    require($_SERVER['DOCUMENT_ROOT'].'/libraries/joomla/factory.php');
    if(!@include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')){ return false; }
    
    function hikashop_addfalseproducttocart($p1, $p2){
        
        $cartclass = hikashop_get('class.cart');
        $cartclass->update($p1, $p2);
        return 'Cart seted';
        
    }

if(isset($_POST['func'])){
    
    switch($_POST['func']){
            
        case 'atc':
            hikashop_addfalseproducttocart($_POST['param1'], $_POST['param2']);
            break;
            
    }
    
}
?>
mais le produit ne s'ajoute pas surement car il n'y a aucun utilisateur auquel ajouter le produit?
J'ai aussi essayé avec le code javascript du bouton "Ajouter au panier" mais celui-ci ne fonctionne pas donc j'en viens vers vous pour demander de l'aide
Merci de votre réponse rapide

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 81513
  • Thank you received: 13068
  • MODERATOR
6 years 9 months ago #272958

Bonjour,

Le code de ce script est bon. Mais comment appelez vous ce script ? Quelle URL ou quel code est sur le bouton qui appelle ce script ?

Please Log in or Create an account to join the conversation.

  • Posts: 25
  • Thank you received: 1
6 years 9 months ago #273010

Bonjour nicolas merci de m'avoir répondu j'utilise une requête ajax qui va exécuter le script voici la requete:

jQuery('.custom-plug_terminatecustomization').off().on('click', function(){
jQuery.ajax({
               url: '/ajaxrequest/hikashop_externalfolder.php',
                type: 'POST',
                data: {func: 'atc', param1: '24', param2: '1'},
                success: function(data){
                    console.log('EXECUTED: ' + data);
                },
                error: function(xhr){
                    console.log('Error: ' +xhr.responseText);
                }
            });
});

Last edit: 6 years 9 months ago by Jerome. Reason: [code] tag is nice !!

Please Log in or Create an account to join the conversation.

  • Posts: 81513
  • Thank you received: 13068
  • MODERATOR
6 years 9 months ago #273039

Hi,

De ce que je vois, le problème est avec la ligne:

hikashop_addfalseproducttocart($_POST['param1'], $_POST['param2']);
il faut que ce soit:
echo hikashop_addfalseproducttocart($_POST['param1'], $_POST['param2']);
Sinon, le texte "Cart seted" ne sera jamais retourné au javascript.

Please Log in or Create an account to join the conversation.

  • Posts: 25
  • Thank you received: 1
6 years 9 months ago #273041

Bonjour, merci de votre réponse, je vais tester mais j'ai une autre question la requete ajax est t'elle bonne ? car je l'utilise dans la function onHikashopBeforeDisplayViews dans un plugin

Please Log in or Create an account to join the conversation.

  • Posts: 25
  • Thank you received: 1
6 years 9 months ago #273046

Je viens de tester mais le problème est toujours là quand j'appuie sur le bouton la requete ajax m'indique que le script à été exécuté mais le produit ne s'ajoute toujours pas même après rafraichissement de la page.
La requete ajax affiche "Exe: " dans la console.
Pour mettre un produit au panier il ne faudrait pas l'id de l'utilisateur (de la personne qui appuie sur le bouton) ??
Si oui ça voudrai dire qu'il faudrait que je transmette l'id dans le script pour après la réutilisé mais le problème c'est que si je fais ça comment je donne l'id au $cartClass->update();

Last edit: 6 years 9 months ago by Krok.

Please Log in or Create an account to join the conversation.

  • Posts: 81513
  • Thank you received: 13068
  • MODERATOR
6 years 9 months ago #273043

Cela fonctionne chez moi en tout cas (bien sur, j'ai adapté pour l'id du produit et le dossier des fichiers à charger, mais sinon cela fonctionne).

Le système n'a pas besoin de l'id de l'utilisateur et Joomla ouvre normalement la session utilisateur automatiquement lorsque vous le chargez donc HikaShop sait déjà qui vous êtes.

Par contre, c'est vrai qu'il vous manque ce code:
$app = JFactory::getApplication('site');
$app->initialise();
avant le chargement d'HikaShop.
www.simbunch.com/blog/141-instantiate-in...n-an-external-script

Last edit: 6 years 9 months ago by nicolas.

Please Log in or Create an account to join the conversation.

Time to create page: 0.058 seconds
Powered by Kunena Forum