Durill Posted March 23, 2012 Share Posted March 23, 2012 Hoi Allemaal, Ik wil in prestashop 1.4.6.2 de shippingkosten laten vallen vanaf een minimaal aankoopbedrag. Voor België vanaf 100 euro Voor Nederland vanaf 150 euro Ik heb reeds 2 verschillende carriers aangemaakt voor België en Nederland Ik heb in shipping -> priceranges de verschillende groepen aangemaakt en gelinkt aan de juiste carrier. Wanneer ik in het hoofd-tablad "shipping" de optie "gratis verzending vanaf..." uitschakel door hier "0" te zetten houdt prestashop geen rekening met de verschillende minimale aankoopbedragen en zal hij ALTIJD transportkosten aanrekenen. Wanneer ik in het hoofd-tablad "shipping" de optie "gratis verzending vanaf 100 euro" of "gratis verzending vanaf 150 euro" activeer houdt prestashop enkel rekening met het ingegeven bedrag. Wanneer ik 100 euro invul zal er ook voor Nederland vanaf 100 euro gratis verzonden worden. Kennen jullie de oplossing voor dit probleem? Thanks and greets Link to comment Share on other sites More sharing options...
AKJV Posted March 24, 2012 Share Posted March 24, 2012 Dit heb ik ooit eens voor iemand uitgezocht. Maar nog niet compleet in een topic geplaatst, dus bij deze. Wat je doet is eerst 2 extra zones aanmaken: eentje voor alleen Nederland en eentje voor alleen Belgie. Noteer de ID's van deze zones; dit zie je in de lijst met zones in de linkerkolom staan. Daarna link je de juiste zone aan de juiste carrier (die je dus al aangemaakt hebt). Je stelt dan 100 euro in als minimum orderbedrag voor gratis verzending in je Prestashop beheersysteem. Onderstaande code aanpassing zorgt ervoor dat dit alleen voor de zone met Belgie geldt en verder is er extra code toegevoegd zodat er een minimum orderbedrag van 150 euro geldt voor de zone met Nederland. Open /classes/Cart.php en zoek naar deze code: if (isset($configuration['PS_SHIPPING_FREE_PRICE'])) $free_fees_price = Tools::convertPrice((float)($configuration['PS_SHIPPING_FREE_PRICE']), Currency::getCurrencyInstance((int)($this->id_currency))); $orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING); if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0) return $shipping_cost; if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0) return $shipping_cost; en vervang dit met: // Gratis verzending voor Belgie if (isset($configuration['PS_SHIPPING_FREE_PRICE']) AND $id_zone==x) $free_fees_price = Tools::convertPrice((float)($configuration['PS_SHIPPING_FREE_PRICE']), Currency::getCurrencyInstance((int)($this->id_currency))); $orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING); if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0) return $shipping_cost; if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0) return $shipping_cost; // Gratis verzending voor Nederland (vanaf 150 euro) if (isset($configuration['PS_SHIPPING_FREE_PRICE']) AND $id_zone==y) $free_fees_price = Tools::convertPrice((float)($configuration['PS_SHIPPING_FREE_PRICE']), Currency::getCurrencyInstance((int)($this->id_currency))); $orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING); if ($orderTotalwithDiscounts >= 150 AND (float)($free_fees_price) > 0) return $shipping_cost; if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0) return $shipping_cost; Vul voor x in $id_zone==x de ID van de zone met Belgie in en voor y in $id_zone==y de ID van je zone met Nederland. Mocht je ooit het minimum orderbedrag voor gratis verzending voor Belgie willen aanpassen, dan doe je dat in je beheersysteem. Voor Nederland pas je dit aan in de code: verander dan het getal 150 in if ($orderTotalwithDiscounts >= 150 AND (float)($free_fees_price) > 0) Link to comment Share on other sites More sharing options...
Durill Posted March 24, 2012 Author Share Posted March 24, 2012 Hoi AKJV, Heel erg bedankt voor de hulp. Ik heb de aanpassing gedaan zoals je zij; en momenteel werk de cart zoals hij moet. De verzendkosten vervallen wanneer het minimum bedrag besteld word. Er is echter nog 1 probleem: In het hoofdmenu van shipping staat: AFHANDELING: GRATIS VERZENDEN START VANAF ... EURO Ik heb dit ingesteld op 100 euro. Wanneer mijn klanten nu een bestelling plaatsen komt er in het overzicht te steen: " U dient nog voor ... euro te besteden om in aanmerking te komen voor gratis verzending." Dit resterende bedrag is telkens het verschil van het reeds bestelde met die 100 euro. Indien een Nederlandse klant dus voor 98 euro in de cart heeft staan, dan krijgt hij de melding dat hij nog voor 2 euro moet spenderen. Bij het afrekenen vervallen de verzendkosten echter correct vanaf 150 euro. Voor Belgische klanten is er in dit geval dus geen probleem. Wanneer ik: AFHANDELING: GRATIS VERZENDEN START VANAF ... EURO instel op 0 euro zou deze functie uitgeschakeld moeten worden volgens prestashop. In dit geval blijft prestashop onverbiddelijk transportkosten aanrekenen onafhankelijk van het bedrag. Waar zit hier het probleem? Nogmaals bedankt. Groetjes Link to comment Share on other sites More sharing options...
AKJV Posted March 24, 2012 Share Posted March 24, 2012 Hoi Durill, Mooi dat het werkt. Helemaal vergeten dat er ook nog een herinnering is voor hoeveel er nog gekocht moet worden voor gratis verzending in de winkelwagen overzicht. Als je het niet erg vindt om deze melding helemaal weg te laten, dan doe je het volgende: Verwijder (of plaats tussen comment tags) deze code uit /themes/jouw_theme/shopping-cart.tpl: <tr class="cart_free_shipping" {if $free_ship <= 0 || $isVirtualCart} style="display: none;" {/if}> <td colspan="6" style="white-space: normal;">{l s='Remaining amount to be added to your cart in order to obtain free shipping:'}</td> <td id="free_shipping" class="price">{displayPrice price=$free_ship}</td> </tr> Vergeet niet om tijdelijk de 'Force compile' optie (bij de Preferences tab) aan te zetten voor het doorvoeren van wijzigingen aan .tpl files. En laat de gratis verzending optie in je BO op 100 euro. Link to comment Share on other sites More sharing options...
Durill Posted March 25, 2012 Author Share Posted March 25, 2012 Hoi AKJV, Veel dank voor je hulp, alles werkt nu zoals het moet. groetjes Link to comment Share on other sites More sharing options...
AKJV Posted March 25, 2012 Share Posted March 25, 2012 (edited) Mooi! Zou je [solved] voor je topictitel willen zetten? Dit doe je door je eerste post te editten (gebruik hierbij de Full editor) en dan de titel aan te passen. Alvast bedankt. EDIT: Nog geen actie ondernomen door topicstarter dus heb ik zelf maar de titel aangepast. Graag de volgende keer wel even zelf de topictitel aanpassen, dat houdt het forum overzichtelijk. Edited March 28, 2012 by AKJV (see edit history) 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