Ejemplo n.º 1
0
 protected function _importCustomerAddressTo(Mage_Sales_Model_Quote_Address $address)
 {
     $customerAddress = $this->getCustomer()->getPrimaryShippingAddress();
     if ($customerAddress) {
         $address->importCustomerAddress($customerAddress)->setSaveInAddressBook(0);
     }
 }
Ejemplo n.º 2
0
 /**
  * Update the resource model
  *
  * @param Mage_Sales_Model_Quote_Address $resource
  * @param array                          $data
  *
  * @return Mage_Sales_Model_Quote_Address
  */
 public function updateResource(Mage_Sales_Model_Quote_Address $resource, array $data)
 {
     // Store current state
     $actionType = $this->getActionType();
     $operation = $this->getOperation();
     // Change state
     $this->setActionType(self::ACTION_TYPE_ENTITY);
     $this->setOperation(self::OPERATION_UPDATE);
     // Get a filter instance
     $filter = $this->getFilter();
     // Filter raw incoming data
     $data = $filter->in($data);
     // Check if the update is setting a customer address ID to use
     if (array_key_exists('customer_address_id', $data) && $data['customer_address_id']) {
         /** @var Mage_Customer_Model_Address $customerAddress */
         $customerAddress = Mage::getModel('customer/address')->load($data['customer_address_id']);
         if ($customerAddress->getId()) {
             if ($customerAddress->getCustomerId() != $resource->getQuote()->getCustomerId()) {
                 $this->_critical(Mage::helper('checkout')->__('Customer Address is not valid.'), Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
             }
             $resource->importCustomerAddress($customerAddress);
             $resource->setSaveInAddressBook(0);
         }
     } else {
         // Fix region/country data
         $data = $this->getHelper()->fixAddressData($data, $resource->getCountryId(), $resource->getRegionId());
         // Get allowed attributes
         $allowedAttributes = $filter->getAllowedAttributes(Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_WRITE);
         // Update model
         $this->saveResourceAttributes($resource, array_merge($allowedAttributes, ['region_id']), $data);
     }
     // Update the shipping address if it is meant to match the billing address
     if ($resource->getQuote()->getShippingAddress()->getSameAsBilling()) {
         $shippingAddress = $resource->getQuote()->getShippingAddress();
         $shippingAddress->importCustomerAddress($resource->exportCustomerAddress());
         $shippingAddress->setSameAsBilling(1);
     }
     // Validate address
     $addressErrors = $this->getHelper()->validateQuoteAddress($resource);
     if (!empty($addressErrors)) {
         $resource->setData('validation_errors', $addressErrors);
     }
     // Fire event - after
     $data = new Varien_Object($data);
     Mage::dispatchEvent('aoe_cartapi_billingaddress_update_after', ['data' => $data, 'filter' => $filter, 'resource' => $resource]);
     // Restore old state
     $this->setActionType($actionType);
     $this->setOperation($operation);
     // Return updated resource
     return $resource;
 }
 protected function setQuoteAddresses()
 {
     $defaultAddress = $this->getDefaultAddress();
     $billingAddress = new Mage_Sales_Model_Quote_Address();
     $billingAddress->importCustomerAddress($defaultAddress);
     $this->quote->setBillingAddress($billingAddress);
     $shippingAddress = new Mage_Sales_Model_Quote_Address();
     $shippingAddress->importCustomerAddress($defaultAddress);
     $this->quote->setShippingAddress($shippingAddress);
     return $this;
 }
Ejemplo n.º 4
0
 protected function setupShippingAddress()
 {
     $address = new \Mage_Sales_Model_Quote_Address();
     $address->importCustomerAddress($this->getCustomerShippingAddress());
     $this->getQuote()->setShippingAddress($address);
     return $this;
 }