Announcement

Collapse
No announcement yet.

Free Shipping based on total AFTER discounts

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Free Shipping based on total AFTER discounts

    Store owner is using the Sebenza Points Redemption Manager which allows customers to redeem points to reduce the order amount. The problem is the store offers free shipping for orders OVER $50. If a customer redeems their points it lowers the order total but the free shipping is still being offered even after the order total is now below the free shipping minimum. How do I prevent this from happening and require the customer to add more to the basket?
    Leslie Kirk
    Miva Certified Developer
    Miva Merchant Specialist since 1997
    Previously of Webs Your Way
    (aka Leslie Nord leslienord)

    Email me: [email protected]
    www.lesliekirk.com

    Follow me: Twitter | Facebook | FourSquare | Pinterest | Flickr

    #2
    Not sure how the Sebenza module is set up on cart flow. We've implemented the EP points solution that's part of the Coupon Redemption module. On that, we've got a button on OSEL to redeem your points. When you click it, it reloads OSEL applying points. Since there is a page refresh, the shipping is recalculated.

    Does the Sebenza solution treat the points as a discount? (I pulled up an old order confirmation from them and it appears it is a discount) On what page does the Sebenza module apply the points and what happens after the points are applied? What page do you end up on?
    Jason Fancett
    America's SPA-MART - "Where Spa Owners Shop SMART!"
    Check us out for all of your hot tub needs including spa covers, spa filters, spa chemicals and more.
    Miva Merchant forum users can use coupon code MIVAFORUM to receive $5 off your first order of $30 or more.

    Comment


      #3
      Originally posted by JFancett View Post
      Not sure how the Sebenza module is set up on cart flow. We've implemented the EP points solution that's part of the Coupon Redemption module. On that, we've got a button on OSEL to redeem your points. When you click it, it reloads OSEL applying points. Since there is a page refresh, the shipping is recalculated.

      Does the Sebenza solution treat the points as a discount? (I pulled up an old order confirmation from them and it appears it is a discount) On what page does the Sebenza module apply the points and what happens after the points are applied? What page do you end up on?
      It's configured to apply them on the OSEL page and it is a discount. I wonder why the Shipping Method Rules Restrict to Order Subtotal: $50 didn't work.
      Leslie Kirk
      Miva Certified Developer
      Miva Merchant Specialist since 1997
      Previously of Webs Your Way
      (aka Leslie Nord leslienord)

      Email me: [email protected]
      www.lesliekirk.com

      Follow me: Twitter | Facebook | FourSquare | Pinterest | Flickr

      Comment


        #4
        I'm wondering is I should try create a new shipping method - the one being used is the EmporiumPlus Minimum or Subtotal Shipping by State Zone.
        Leslie Kirk
        Miva Certified Developer
        Miva Merchant Specialist since 1997
        Previously of Webs Your Way
        (aka Leslie Nord leslienord)

        Email me: [email protected]
        www.lesliekirk.com

        Follow me: Twitter | Facebook | FourSquare | Pinterest | Flickr

        Comment


          #5
          A down and dirty *Patch* might be to hide the free shipping selection on the osel page if it is under $50. If i am not mistaken however it would still be possible for someone to view source and send the "Free shipping" code and it be accepted even tho it is not displayed. That is because it is still a valid option. Below would be some sample code.

          Please note that i have tested this and it is 100% possible to pass in a valid shipping method even if it is not displayed. So this would 100% be a temporary fix, as it would only stop those who dont apply the exploit. Haha not submitting this as an answer but more as an idea to stop it until a actual solution arises

          Code:
          <mvt:assign name="l.settings:freeShipMinimum" value="50" />
                                  <mvt:do name="l.settings:freeShipLeft" file="g.Module_Root $ g.Store:currncy_mod:module" value="CurrencyModule_AddFormatting(g.Store:currncy_mod, l.settings:freeShipMinimum - l.settings:basket:total)" />
                                  <mvt:comment> If shipping cost is less than amount needed to reach free ship </mvt:comment>
          
                                  <mvt:if expr="l.settings:basket:total LT l.settings:freeShipMinimum">
          
                                           <mvt:foreach array="shippingmethods" iterator="method">
                                                      <mvt:assign name="l.settings:shippingMethodCode" value="ltrim(l.settings:method:code)" />
          
                                                        <mvt:if expr="'EmporiumPlus Minimum' IN l.settings:method:name">
                                                        <mvt:comment> Do Nothing because this is the free shipping that should not exist </mvt:comment>
          
                                                        <mvt:else>
                                                        <mvt:comment> Display the Shipping methods like you normally would</mvt:comment>
          
                                                          <span class="column one-tenth"><input type="radio" name="ShippingMethod" value="&mvte:method:module;:&mvte:method:code;" checked="checked" id="l-shipping-method-&mvte:shippingMethodCode;" /></span>
                                                      <label for="l-shipping-method-&mvte:shippingMethodCode;" class="column three-fifths">&mvt:method:name;</label>
                                                      <mvt:if expr="NOT ISNULL l.settings:method:price">
                                                          <span class="column three-tenths align-right">&mvt:method:formatted_price;</span>
                                                      </mvt:if>
          
                                  <mvt:else> <mvt:comment> Order over specified value, Display like normal</mvt:comment>
          
                                           <mvt:comment> Display the Shipping methods like you normally would</mvt:comment>
          
                                                     <mvt:foreach array="shippingmethods" iterator="method">
                                                      <mvt:assign name="l.settings:shippingMethodCode" value="ltrim(l.settings:method:code)" />
          
                                                          <span class="column one-tenth"><input type="radio" name="ShippingMethod" value="&mvte:method:module;:&mvte:method:code;" checked="checked" id="l-shipping-method-&mvte:shippingMethodCode;" /></span>
                                                      <label for="l-shipping-method-&mvte:shippingMethodCode;" class="column three-fifths">&mvt:method:name;</label>
                                                      <mvt:if expr="NOT ISNULL l.settings:method:price">
                                                          <span class="column three-tenths align-right">&mvt:method:formatted_price;</span>
          Last edited by Beefy Nugget; 01-05-18, 02:12 PM.

          Comment


            #6
            it might not show.. Miva comments are not output in the html.
            <mvt:comment> blah blah blah </mvt:comment>

            Comment

            Working...
            X