/** * @role login */ public function setMultiAddress() { if (!$this->config->get('ENABLE_MULTIADDRESS')) { return new ActionRedirectResponse('order', 'index'); } $this->order->isMultiAddress->set(true); $this->order->shippingAddress->set(null); // split items foreach ($this->order->getOrderedItems() as $item) { if ($item->count->get() > 1) { $count = $item->count->get(); $item->count->set(1); for ($k = 1; $k < $count; $k++) { $this->order->addItem(clone $item); } } } $this->order->save(); return new ActionRedirectResponse('order', 'multi'); }
/** * Move an item to a different order */ public function moveItem(OrderedItem $orderedItem, CustomerOrder $order) { foreach ($this->orderedItems as $key => $item) { if ($item === $orderedItem) { unset($this->orderedItems[$key]); $order->addItem($item); $this->resetShipments(); $order->resetShipments(); } } }