Hi,
This is caused by some code missing to properly set the shipping method and shipping id in the hikashop_order_product table when the order is created with the new checkout of HikaShop 3 from what I could debug.
Because of that, the algorithm doesn't find the needed information to be able to get the name and so as the last fallback, the system just displays the ids : [id of the shipping method-id of the key of the service of the shipping method (in the code of the plugin in plugins/hikashopshipping/ups/ups.php in the big array at the top with the "key" parameter )@id of the warehouse]
So I spend the afternoon, reproducing, rewritting the code and testing. Change the code:
if(!empty($cart->shipping)) {
$shipping_done = false;
foreach($cart->shipping_groups as $group_key => $group_products) {
if(!isset($shippings[$group_key]))
continue;
foreach($group_products->products as $group_product) {
if((int)$group_product->cart_product_id == (int)$product->cart_product_id) {
$orderProduct->order_product_shipping_id = $shippings[$group_key]['id'] . '@' . $group_key;
$orderProduct->order_product_shipping_method = $shippings[$group_key]['name'];
$shipping_done = true;
break;
}
}
if($shipping_done)
break;
}
}
to:
if(!empty($cart->shipping) && !empty($order->order_shipping_id)) {
$shippings = explode(';', $order->order_shipping_id);
$shipping_done = false;
foreach($cart->shipping_groups as $group_key => $group_products) {
foreach($group_products->products as $group_product) {
// same product
if((int)$group_product->cart_product_id == (int)$product->cart_product_id) {
foreach( $shippings as $shipping) {
list($shipping_id, $shipping_group_key) = explode('@', $shipping, 2);
// same group key
if($shipping_group_key == $group_key) {
foreach($cart->shipping as $cart_shipping) {
// same shipping method
if($cart_shipping->shipping_id == $shipping_id) {
$orderProduct->order_product_shipping_id = $shipping;
$orderProduct->order_product_shipping_method = $cart_shipping->shipping_type;
$shipping_done = true;
break;
}
}
if($shipping_done)
break;
}
}
if($shipping_done)
break;
}
}
if($shipping_done)
break;
}
}
in the file administrator/components/com_hikashop/classes/order.php and for new orders, it should now work properly again.
Please let us know how it goes.