Projets Laravel France

Laravel Package Card

Avatar de Clement04
Clement04

Bonsoir, bonjour

Je créer un site e-commerce avec laravel et un package qui est celui-ci:

https://github.com/olimortimer/LaravelShoppingcart

Il y a la fonction "addCost()". Mais cela affecte le prix uniquement sur la page panier. Comme c'est écrit: "Add this method before summarizing the whole cart. The costs are not saved in the session (yet)." Justement moi j'aimerai que le coût s'enregistre.

Comment puis-je procéder pour que je puisse faire un vrai total dans "Mes détails de vente" où il y ' a:

  • Sous-total
  • Frai de vente (ce que je cherche à faire)
  • Total (sous-total+tax+sous-total)

J'avais pensé à récuperer les id des produits afficher dans le controller index puis faire une somme du champ "shipping" dans la table "products" de tout les produits dans le panier et du coup serait ça donnerait: Cart::total() + $somme; Quand pensez-vous?

PS: tax = 0 car elle est incluse dans le sous-total.

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Salut,

Le package que tu utilises n'est pas très populaire et a peu d'activité, c'est toujours un signe à prendre en compte. Il existe d'autres solutions qui ont fait leurs preuves. Personnellement j'utilise ce package sans aucun problème.

Posté il y a 3 ans
Avatar de Clement04
Clement04

j´utilisai ce package mais j´ai un probleme en ajoutant une option.

elle ne saffecte pas si la quantité d´un produit est = 2, loption se rajoute qunne fois au prix total.

Posté il y a 3 ans
Avatar de Clement04
Clement04

@bestmomo, j'ai re-utilisé la lib que tu m'as donné dans mon panier.blade.php:

                        @foreach(Cart::getConditions() as $condition)
                        <li class="d-flex justify-content-between py-3 border-bottom"><strong class="text-muted">Frai d'envoi</strong><strong> {{ getPrice($condition->getValue())}} €</strong></li>
                        @endforeach

ça ne m'affiche rien

Dans mon controller:

 \Cart::add([
            'id' => $product->id,
            'name' => $product->title,
            'price' => $product->price,
            'quantity' => 1
        ])->associate('App\Product');  
        $coupon101 = new \Darryldecode\Cart\CartCondition(array(
            'name' => 'COUPON 101',
            'type' => 'coupon',
            'value' => '+100',
            'target' => 'total'
        ));

        \Cart::addItemCondition($product->id, $coupon101);

Sur "ma détail de commande" j'ai subTotal où il y a eu "+100", et aussi "total", alors que j'ai juste demandé "target" => "total". et j'aimerai également n'affiche qu'une ligne "frai de port", là j'ai fait un foreach pour les voir juste uniquement

Je suis perdu ?_?

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Je n'ai jamais utilisé les conditions, il ne faudrait pas d'abord ajouter la condition dans le panier Cart::condition($coupon101); avant d'affecter la condition à l'item ?

Posté il y a 3 ans
Avatar de Clement04
Clement04

@bestmomo,

j'ai fait ça:

 $product = Product::find($request->product_id);
        
        $condition = new \Darryldecode\Cart\CartCondition(array(
            'name' => 'Frai',
            'type' => 'misc',
            'target' => 'total',
            'value' => '+100',
            'order' => 0,
            'attributes' => [
                'description' => 'Frai d\'expedition'
            ]
        ));
        \Cart::condition($condition);

        \Cart::add([
            'id' => $product->id,
            'name' => $product->title,
            'price' => $product->price,
            'quantity' => 1
        ])->associate('App\Product');  
        
        \Cart::addItemCondition($product->id, $condition);

ça marche mais c'est bugué, à mon sous-total ça me calcul: prix commande avec le "+100" et en total: sous-total + 100.

Posté il y a 3 ans
Avatar de Clement04
Clement04

@bestmomo update! j'ai réussi,

sauf que subtotal = total alors que jai précisé "taget" => total

      $saleCondition = new \Darryldecode\Cart\CartCondition(array(
            'name' => 'Frai envoie',
            'type' => 'misc',
            'target' => 'total',
            'value' => '+'.$product->shipping
        ));
    
        \Cart::add([
            'id' => $product->id,
            'name' => $product->title,
            'price' => $product->price,
            'quantity' => 1
        ])->associate('App\Product');  
    
        \Cart::addItemCondition($product->id,$saleCondition);
Posté il y a 3 ans

Vous ne pouvez pas répondre à ce sujet.