[ic] shipping.asc not working right
Luiz Carlos Maciel Junior
lmacielj at terra.com.br
Tue Jun 25 13:13:17 UTC 2013
Le 25/06/2013 09:09, Kerry Blalock a écrit :
>> On 2013-06-23, at 10:18 AM, kerry blalock wrote:
>>
>>> I am trying to add an additions shipping method to my site and seem to
>>> be having a problem with the logic. Here is the code that is giving me
>>> an error on the truckbig method:
>>>
>>> truckbigger: Oversize Truck Shipping
>>> criteria <<EOC
>>> [calcn]
>>> foreach my $item (@$Items) {
>>> if ($item->{width} >= 160) {
>>> # We have to use this shipping method
>>> return 1;
>>> }
>>> }
>>> return 0;
>>> [/calcn]
>>> EOC
>>> min 1
>>> max 1
>>> cost 170.00
>>>
>>> truckbig: Truck Shipping
>>> criteria <<EOC
>>> [calcn]
>>> foreach my $item (@$Items) {
>>> if (($item->{width} >= 108 and ($item->{width} <=160)) {
>>> # We have to use truckbigger shipping method
>>> return 1;
>>> }
>>> }
>>> return 0;
>>> [/calcn]
>>> EOC
>>> min 1
>>> max 1
>>> cost 85.00
>>>
>>> Truckbigger works as is. But when I want to charge less for rods between
>>> 108 and 160, I get an error,
>>>
>>> Note: No match found for mode 'ground', quantity '', returning 0.
>>> Shipping defaults to the shippin method just below truckbig method. Need
>>> fresh eyes to help me figure out why this is not working.
>>>
>>> Kerry
>>> _______________________________________________
>>> interchange-users mailing list
>>> interchange-users at icdevgroup.org
>>> http://www.icdevgroup.org/mailman/listinfo/interchange-users
>>
>>
>>> if (($item->{width} >= 108 and ($item->{width} <=160)) {
>>
>> Looks like you are missing a closing bracket between "108" and "and".
>> HTH
>> Angus
>>
>>
>> ---
>> Angus Rogerson, BMath, BScN, RN
>>
>> Duct Tape Programmer
>> University of Waterloo | Retail Services | Information Systems
>>
>> Visit Us Online & Right On Campus www.retailservices.uwaterloo.ca
>>
>>
>>
>>
>>
>> _______________________________________________
>> interchange-users mailing list
>> interchange-users at icdevgroup.org
>> http://www.icdevgroup.org/mailman/listinfo/interchange-users
>>
> Thanks Angus,
>
> I did find the missing bracket and added, but it still did not work.
>
> I finally have it kinda working with this:
>
> truckbig: Truck Shipping
> criteria <<EOC
> [calcn]
> foreach my $item (@$Items) {
> if ($item->{width} >= 160) {
> # We have to use truckbigger shipping method
> return 2;
> }
>
> if ($item->{width} >= 108) {
> # We have to use truckbig shipping method
> return 1;
> }
> }
> return 0;
> [/calcn]
> EOC
> min 1
> max 1
> cost 85.00
>
> min 2
> max 2
> cost 170.00
>
> min 3
> max 3
> cost 200.00
>
> The problem I have now is if a customer adds a item that is 144" and
> then adds another that is 192", to the same cart, it does not pick up
> the higher shipping cost. That was why I was trying to use the
> conditional statement and two different methods.
>
> Not sure why the one above is not picking up the higher cost, but itt
> seems to hold the first if statement used by each method. If I add a
> 192" and then add a 144", it retains the higher cost for the 192" which
> is fine, but the other way around is not.
>
> Odds are that most customers will not order the combination so I am
> leaving it active for now until I can come up with the correct solution.
>
> Thanks,
>
> Kerry
>>
>
> BasicQ Inc
> http://decor.basicq.com
> 800-448-0655
>
>
> _______________________________________________
> interchange-users mailing list
> interchange-users at icdevgroup.org
> http://www.icdevgroup.org/mailman/listinfo/interchange-users
>
>
>
Hi Kerry,
I am not a Perl expert but in your situation I think that you should try
like:
[calcn]
foreach my $item (@$Items) {
if ($item->{width} >= 160) {
# We have to use truckbigger shipping method
return 2;
}
if ($item->{width} >= 108_and <= 159_) {
# We have to use truckbig shipping method
return 1;
}
}
return 0;
[/calcn]
I will explain.
If width is 192 as you said, the first and the second "if" is true. So
you will end with 1 when you want "2".
Limiting the second "if" between 108 and 159 will make the second "if"
not work anymore with values above 159 and you will end with a "2".
I hope this help you.
Luiz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.icdevgroup.org/pipermail/interchange-users/attachments/20130625/935da150/attachment.html>
More information about the interchange-users
mailing list