public function cleanOrderitems() { $deleted_items = array(); foreach ($this->orderitem as $orderitem) { if (!in_array($orderitem->id, $deleted_items)) { $similar_items = $orderitem->find('all', "orders_id=" . $this->id . " AND product_id=" . $orderitem->product_id . " AND product_type='" . $orderitem->product_type . "' AND options='" . $orderitem->options . "' AND id !=" . $orderitem->id); foreach ($similar_items as $similar_item) { $orderitem->quantity = $orderitem->quantity + $similar_item->quantity; $deleted_items[] = $similar_item->id; $similar_item->delete(); } $shippingmethod = new shippingmethod($orderitem->shippingmethods_id); $shippingmethod->delete(); $orderitem->shippingmethods_id = 0; $orderiten->products_tax = 0; $orderitem->save(); } } }