/** * creates the shipping address which belongs to the order and * saves it as the new last used address * * @param array $data * @return \Shopware\Models\Order\Shipping */ private function createShippingAddress($data) { if ($data['shippingAddressId']) { /** @var Shopware\Models\Customer\Shipping $addressHolderModel */ $addressHolderModel = Shopware()->Models()->find('Shopware\\Models\\Customer\\Shipping', $data['shippingAddressId']); } else { /** @var Shopware\Models\Customer\Billing $shippingAddressHolder */ $addressHolderModel = Shopware()->Models()->find('Shopware\\Models\\Customer\\Billing', $data['billingAddressId']); $this->equalBillingAddress = true; } $shippingOrderModel = new Shopware\Models\Order\Shipping(); $shippingOrderModel->setCity($addressHolderModel->getCity()); $shippingOrderModel->setStreet($addressHolderModel->getStreet()); $shippingOrderModel->setSalutation($addressHolderModel->getSalutation()); $shippingOrderModel->setZipCode($addressHolderModel->getZipCode()); $shippingOrderModel->setFirstName($addressHolderModel->getFirstName()); $shippingOrderModel->setLastName($addressHolderModel->getLastName()); $shippingOrderModel->setAdditionalAddressLine1($addressHolderModel->getAdditionalAddressLine1()); $shippingOrderModel->setAdditionalAddressLine2($addressHolderModel->getAdditionalAddressLine2()); $shippingOrderModel->setCompany($addressHolderModel->getCompany()); $shippingOrderModel->setDepartment($addressHolderModel->getDepartment()); $shippingOrderModel->setCustomer($addressHolderModel->getCustomer()); if ($addressHolderModel->getCountryId()) { /** @var Shopware\Models\Country\Country $countryModel */ $countryModel = Shopware()->Models()->find('Shopware\\Models\\Country\\Country', $addressHolderModel->getCountryId()); $shippingOrderModel->setCountry($countryModel); } if ($addressHolderModel->getStateId()) { /** @var Shopware\Models\Country\State $stateModel */ $stateModel = Shopware()->Models()->find('Shopware\\Models\\Country\\State', $addressHolderModel->getStateId()); $shippingOrderModel->setState($stateModel); } return $shippingOrderModel; }