Udało mi się zrobić na zasadzie:
// Free fees
$free_fees_price = 0;
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, null, null, false);
if ($orderTotalwithDiscounts >= (float)($free_fees_price) && (float)($free_fees_price) > 0 && (int)$id_zone == 9 )
{
Cache::store($cache_id, $shipping_cost);
return $shipping_cost;
}
if (isset($configuration['PS_SHIPPING_FREE_WEIGHT'])
&& $this->getTotalWeight() >= (float)$configuration['PS_SHIPPING_FREE_WEIGHT']
&& (float)$configuration['PS_SHIPPING_FREE_WEIGHT'] > 0)
{
Cache::store($cache_id, $shipping_cost);
return $shipping_cost;
}
Dodałem && (int)$id_zone == 9 i ogolnie dla wysyłki darmowej zadzialalo ale niestety nie nalicza dodatkowch kosztów zależnych od wagi tylko trzyma najniższą stawkę przewoźnika