@@ -115,23 +115,45 @@ class _CheckoutShippingTypePageState extends State<CheckoutShippingTypePage> {
115115 }
116116
117117 if (_shipping.methods.freeShipping != null ) {
118- _shipping.methods.freeShipping
118+ List < FreeShipping > freeShipping = _shipping.methods.freeShipping
119119 .where ((t) => t != null )
120- .toList ()
121- .forEach ((freeShipping) {
122- if (isNumeric (freeShipping.cost) ||
123- freeShipping.cost == 'min_amount' ) {
120+ .toList ();
121+
122+ for (int i = 0 ; i < freeShipping.length; i++ ) {
123+ if (isNumeric (freeShipping[i].cost) ||
124+ freeShipping[i].cost == 'min_amount' ) {
125+
126+ if (freeShipping[i].cost == 'min_amount' ) {
127+ String total = await Cart .getInstance.getTotal ();
128+ if (total != null ) {
129+ double doubleTotal = double .parse (total);
130+ double doubleMinimumValue =
131+ double .parse (freeShipping[i].minimumOrderAmount);
132+
133+ if (doubleTotal < doubleMinimumValue) {
134+ continue ;
135+ }
136+ }
137+ }
138+
124139 Map <String , dynamic > tmpShippingOption = {};
125140 tmpShippingOption = {
126- "id" : freeShipping.id,
141+ "id" : freeShipping[i] .id,
127142 "method_id" : "free_shipping" ,
128- "title" : freeShipping.title,
143+ "title" : freeShipping[i] .title,
129144 "cost" : "0.00" ,
130- "min_amount" : freeShipping.minimumOrderAmount,
131- "object" : freeShipping
145+ "min_amount" : freeShipping[i] .minimumOrderAmount,
146+ "object" : freeShipping[i]
132147 };
133148 _wsShippingOptions.add (tmpShippingOption);
134149 }
150+ }
151+
152+ _shipping.methods.freeShipping
153+ .where ((t) => t != null )
154+ .toList ()
155+ .forEach ((freeShipping) async {
156+
135157 });
136158 }
137159 }
0 commit comments