public function saveVariations() { $item = ActiveRecordModel::getInstanceByID('OrderedItem', $this->request->get('id'), OrderedItem::LOAD_DATA, OrderedItem::LOAD_REFERENCES); $variations = $item->getProduct()->getVariationData($this->application); $c = new OrderController($this->application); if (!$c->buildVariationsValidator($item, $variations)->isValid()) { return new RawResponse(); } $product = $c->getVariationFromRequest($variations); $item->product->set($product); $item->save(); $item->shipment->get()->save(); return $this->getItemResponse($item); }