Claudiocool Posted March 26, 2017 Share Posted March 26, 2017 (edited) Hallo zusammen, mir fiel gerade auf, wenn ich im Warenkorb bin und bei einem Artikel die Menge ändere, bleibt das Versandgewicht dasselbe, es aktualisiert sich nicht. Oha, dachte ich, da kann einem dann ein ausländischer Kunde, der ja Versandkosten nach Gewicht bezahlen muss, ein nettes Schnippchen schlagen... Neee, das funktioniert kurioserweise.... So, also zeigt er das neue versandgewicht nur nicht an, gerechnet wird es aber korrekt. Also scheint hier nur die Anzeige nicht zu refreshen. Ist das bei Euch auch so? Ich frage, weil ich ausschließen möchte, dass hier irgendein Modul reinspuckt. Edited July 21, 2017 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Scully Posted July 19, 2017 Share Posted July 19, 2017 Machst mal einen Screenshot von Deinem Gewicht? Ich sehe das nur in der Bestellübersicht des Kundenkontos - oder hab grade den Durchblick nicht. Link to comment Share on other sites More sharing options...
Claudiocool Posted July 19, 2017 Author Share Posted July 19, 2017 Hm..... ein Screenshot von meiner Waage bei meinen 120kg? okay, keine Sorge, hab schon verstanden, hihi..... Der erste Shot zeigt einen Artikel, der wird mit 500g angezeigt, alles passt. Dann gehe ich auf das Plus-Symbol und erhöhe auf 5, alle Preise gehen mit, nur das Gewicht wird nicht refreshed ind er Anzeige, obwohl der Wert später in der versandkostenrechnung stimmt. Link to comment Share on other sites More sharing options...
Scully Posted July 19, 2017 Share Posted July 19, 2017 Da muss ich dann nach einer Option suchen. Bei mir im Warenkorb steht da nix. Aber trotzdem: Ich habe mir das Javascript des Warenkorbs kürzlich wegen anderer Herausforderungen zur Brust genommen. Es ist eine Herausforderung, sich da zurechtzufinden. Aber am Ende werden es nicht mehr als etwa 3 Zeilen sein - SOFERN das Gesamtgewicht im Browser auch immer ankommt. Die Sache im Browser selbst per Javascript ausrechnen will man nicht. Link to comment Share on other sites More sharing options...
Scully Posted July 19, 2017 Share Posted July 19, 2017 (edited) Kurze Erklärung noch - auf das Risiko hin, dass gewisse Leute das hier auch schon wissen. Der Warenkorb wird - egal ob Front- oder Backend sehr stark durch Javascript gesteuert. D.h. die Seite wird nur einmal zu Beginn geladen, danach passiert alles per Script (d.h. auf dem Client/im Browser). Die Seite bleibt also bestehen, aber die Inhalte ändern sich. Das einzige, was der Server dann jeweils liefert, sind Daten, welche durch AJAX-Requeste (im Browser-Dev.Tool als XHR angezeigt) angefordert werden. Zu AJAX lese man hier: https://de.wikipedia.org/wiki/Ajax_(Programmierung) Z.B. bei Änderung der Menge muss ein neuer Endpreis her. Dieser kommt - Staffelpreise sei dank - via AJAX vom Server. Nur der kann die neuen Preise liefern. Dann gibt es AJAX-Requeste für die Berechnung der Versandkosten, Änderung von Adressen, lesen oder akzeptieren der AGB und noch VIELES mehr. Die Frage ist nun, ob das Gesamtgewicht nur Initial beim Anzeigen des Korbes übermittelt wird, oder ob es dafür einen passenden AJAX - Request (in Javascript) bzw. dessen Handler (in PHP) gibt. Ist das der Fall, dann kann man diesen Handler über einen Event triggern, so dass er bei jedem Produkte-Update ausgeführt wird. Das wären dann ca. 1-3 Zeilen Code. Gibt es den Handler für Gewicht bzw. Gewichtsänderungen nicht, muss man ihn erst schreiben. Edited July 19, 2017 by Scully (see edit history) Link to comment Share on other sites More sharing options...
Whiley Posted July 20, 2017 Share Posted July 20, 2017 Hallo zusammen, mir fiel gerade auf, wenn ich im Warenkorb bin und bei einem Artikel die Menge ändere, bleibt das Versandgewicht dasselbe, es aktualisiert sich nicht. Oha, dachte ich, da kann einem dann ein ausländischer Kunde, der ja Versandkosten nach Gewicht bezahlen muss, ein nettes Schnippchen schlagen... Neee, das funktioniert kurioserweise.... So, also zeigt er das neue versandgewicht nur nicht an, gerechnet wird es aber korrekt. Also scheint hier nur die Anzeige nicht zu refreshen. Ist das bei Euch auch so? Ich frage, weil ich ausschließen möchte, dass hier irgendein Modul reinspuckt. Hallo Claudio, wenn ich das so lese, vermute ich mal, daß du die Änderungen, unserer allseits so geschätzten Moderatoren-Kollegin vorgenommen hast, wie z.B. hier beschrieben : https://www.prestashop.com/forums/topic/453596-how-to-show-weight-of-product-in-your-shopping-cart/?do=findComment&comment=2413288 Und so geht es richtig: Du öffnest /themes/deintheme/shopping-cart.tpl vor </tfoot> (ca Zeile 303) trägst du ein: <td colspan="{$col_span_subtotal}" class="text-right"><span>{l s='Total weight'}</span></td> <td colspan="2" class="price"><span class="ajax_block_cart_weight">{$cart->getTotalWeight()|escape:'htmlall':'UTF-8'|number_format:3} {Configuration::get('PS_WEIGHT_UNIT')}</span></td> </tr> Dann öffnest du die /themes/deintheme/modules/blockcart/blockcart-json.tpl dort suchst du die zeile (ca 94): "shippingCost": {$shipping_cost|json_encode}, und gibst darunter die neue Zeile ein: "totalWeight": {$total_weight|json_encode}, Dann öffnest du die: /modules/blockcart/blockcart.php suchst dort die Zeile (ca 82): $totalToPay = $params['cart']->getOrderTotal($useTax); und gibst darunter die neue Zeile ein: $totalWeight = $params['cart']->getTotalWeight().' '.Configuration::get('PS_WEIGHT_UNIT'); in der gleichen Datei suchst du die Zeile (ca 155): 'static_token' => Tools::getToken(false), und gibst darunter die neue Zeile ein: 'total_weight' => $totalWeight, als letztes öffnest du die Datei: /themes/deintheme/js/modules/blockcart/ajax-cart.js suchst dort die Zeile(ca 811: $('.ajax_total_price_wt').text(jsonData.total_price_wt); und gibst darunter die neue Zeile ein: $('.ajax_block_cart_weight').text(jsonData.totalWeight); Kompillieren nicht vergessen! Grüsse Whiley Link to comment Share on other sites More sharing options...
Claudiocool Posted July 20, 2017 Author Share Posted July 20, 2017 als letztes öffnest du die Datei: /themes/deintheme/js/modules/blockcart/ajax-cart.js suchst dort die Zeile(ca 811: $('.ajax_total_price_wt').text(jsonData.total_price_wt); Hi Whiley, diese Zeile existiert nicht in der Datei.... Und die im ersten Abschnitt genannte Aänderung in der shopping Cart.tpl war schon so drin.... Link to comment Share on other sites More sharing options...
Whiley Posted July 20, 2017 Share Posted July 20, 2017 Hallo Claudio, der Bereich liegt abhängig von der Shopversion so bei Zeile 790 - 820 das sieht dort etwa so aus: //update general cart informations everywhere in the page updateCartEverywhere : function(jsonData){ $('.ajax_cart_total').text($.trim(jsonData.productTotal)); if (typeof hasDeliveryAddress == 'undefined') hasDeliveryAddress = false; if (parseFloat(jsonData.shippingCostFloat) > 0) $('.ajax_cart_shipping_cost').text(jsonData.shippingCost).parent().find('.unvisible').show(); else if ((hasDeliveryAddress || typeof(orderProcess) !== 'undefined' && orderProcess == 'order-opc') && typeof(freeShippingTranslation) != 'undefined') $('.ajax_cart_shipping_cost').html(freeShippingTranslation); else if ((typeof toBeDetermined !== 'undefined') && !hasDeliveryAddress) $('.ajax_cart_shipping_cost').html(toBeDetermined); if (!jsonData.shippingCostFloat && !jsonData.free_ship) $('.ajax_cart_shipping_cost').parent().find('.unvisible').hide(); else if (hasDeliveryAddress && !jsonData.isVirtualCart) $('.ajax_cart_shipping_cost').parent().find('.unvisible').show(); $('.ajax_cart_tax_cost').text(jsonData.taxCost); $('.cart_block_wrapping_cost').text(jsonData.wrappingCost); $('.ajax_block_cart_total').text(jsonData.total); $('.ajax_block_products_total').text(jsonData.productTotal); $('.ajax_total_price_wt').text(jsonData.total_price_wt); $('.ajax_block_cart_weight').text(jsonData.totalWeight); if (parseFloat(jsonData.freeShippingFloat) > 0) Wenn das bei dir anders aussehen sollte häng mal die komplette ajax-cart.js als Anhang an einen post Grüsse Whiley Link to comment Share on other sites More sharing options...
Claudiocool Posted July 21, 2017 Author Share Posted July 21, 2017 Oooopppsssss. wer lesen kann.... Ich hatte gestern abend warum auch immer die Zeile 157 gesucht Ich werde es heute abend dann in Ruhe testen und berichten. Der erste Abschnitt war schon geändert, aber ich habe gesehen, dass das nur bei Shops ohne AEUC funktionieren wird, was ich natürlich damals im Eifer des Gefechts großzügig übersehen hatte, daher vermute ich, werden deine Codesnippets die Sache wieder richten. Ich werde dann berichten. Link to comment Share on other sites More sharing options...
Claudiocool Posted July 21, 2017 Author Share Posted July 21, 2017 Ich konnte es jetzt doch kurz machen, war schneller in der Werkstatt als gedacht... Whiley.... Superwhiley meinte ich natürlich...... Das war es, es geht astrein, dankeschön! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now