[ic] Controlling checkout.html shipping method selections

Mark Bryant interchange-users@icdevgroup.org
Sun May 4 13:36:01 2003


At 18:11 04/05/2003, you wrote:
>At 05:52 PM 5/4/2003 +0100, you wrote:
>>At 17:02 04/05/2003, you wrote:
>>>At 10:07 AM 5/4/2003 +0100, you wrote:
>>>>Hi Folks,
>>>>
>>>>I'm having a bit of trouble with the shipping methods displayed on 
>>>>checkout.html.
>>>>
>>>>I've already set up two shipping methods (let's call them SHIP1 & 
>>>>SHIP2), where the calculation is done by weight and they are behaving normally.
>>>>
>>>>What I would like to do now is customise which one is displayed by 
>>>>checkout.html dependent on the cost of the goods+sales tax :
>>>>
>>>>
>>>>     [if] (the cost of the goods + sales tax <= 28.00)
>>>>
>>>>        Show both methods in checkout.html
>>>>
>>>>     [if] (the cost of the goods + sales tax > 28.00)
>>>>
>>>>        Only show method SHIP2 in checkout.html
>>>>
>>>>     [/if]
>>>>
>>>>
>>>>The checkout.html page is currently showing both methods using this 
>>>>code, which I guess if just fine in the < 28.00 case, but not for the > 
>>>>28.00 case.
>>>>
>>>>     <SELECT NAME=mv_shipmode>
>>>>     [shipping
>>>>       label=1
>>>>       mode=|[data table=country key='[default country UK]' col=shipmodes]|
>>>>     ]
>>>>     </SELECT>
>>>>
>>>>
>>>>I'll freely admit that I don't understand how most of the IC tags/code 
>>>>work and having spent hours looking at code and getting nowhere fast I 
>>>>have to ask if someone out there could supply the code (or enough of it 
>>>>to get me going) to do the job. I'm sure it's pretty simple if you 
>>>>understand how getting data from the databases works, but I'm so lame 
>>>>with IC right now I couldn't even write the required [if][/if] lines :o(
>>>>
>>>>Many thanks to anyone that can help out here.
>>>>
>>>>Mark
>>>
>>>I'll start by saying that I've never tried it before, but according to 
>>>the docs, your shipping formula can contain any mixture of ITL and 
>>>Interchange Perl objects as part of the expression, so this *should* work:
>>>
>>>SHIP1   Shipping method 1       weight  0       9999    f if ( 
>>>$Tag->subtotal({ noformat => 1}) + $Tag->salestax({ noformat => 1}) <= 
>>>28 ) { #your shipping formula here }
>>>
>>>- Ed L.
>>
>>Hi Ed,
>>
>>Many thanks for your reply :o)
>>
>>I've been using the UI to input the shipping method and data table which 
>>has produced the following in shipping.asc:
>>
>>REC2ND  Standard Shipping (3-5 Days)    weight  0       0       e Your 
>>Basket is Empty!         {'ui_ship_type' => "weight",'ups' => 
>>"0",'at_least' => "0.98",'PriceDivide' => "1",}
>
>Hmmm. I didn't guess that you had this many entries per shipping method. 
>In any case, if you were to apply my idea to this, it would look something 
>like:
>
>REC2ND  Standard Shipping (3-5 Days)    weight  0       60      f if ( 
>$Tag->subtotal( { noformat => 1} ) + $Tag->salestax( { noformat => 1} ) <= 
>28 ) { 0.98 } else { 0 }           {'PriceDivide' => "1",}
>
>I really have no idea if it will work or not, though in theory it should.
>
>- Ed L.
>
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  0       60      0.98            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  60      100     1.14            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  100     150     1.20            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  150     200     1.40            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  200     250     1.55            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  250     300     1.68            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  300     350     1.81            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  350     400     2.03            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  400     450     2.21            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  450     500     2.41            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  500     600     2.71            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  600     700     3.00            {'PriceDivide' => "1",}
>>REC2ND  Standard Shipping (3-5 
>>Days)    weight  700     750     3.14            {'PriceDivide' => "1",}
>>
>>
>>I realise this is cheeky, but could you show me an example using the 
>>above working table as I'm unsure how this fits with your example?
>>
>>Many thanks
>>
>>Mark

Ed,

You're a star!!!

Many thanks once again :o)

Mark