Search code examples
phpmysqlmagentoimport

How to add individual shipping address programmatically in Magento?


From the basis, I've want to import customers programmatically. Here's my code.

    <?php
    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', 1);
    require 'app/Mage.php';
    require_once 'Zend/Crypt/Hmac.php';
    Mage::app('default');

    $websiteId = Mage::app()->getWebsite()->getId();
    $store = Mage::app()->getStore();

    $customer = Mage::getModel("customer/customer");
    $customer->setWebsiteId($websiteId);
    $customer->setStore($store);
    $customer->setFirstname('fst');
    $customer->setLastname('lst');
    $customer->setEmail('fst@ex.com');
    $customer->setPassword('somepassword');

    $customer->save();
    echo $customer->getId();

    $address = Mage::getModel("customer/address");
    $address->setCustomerId($customer->getId());
    $address->setFirstname($customer->getFirstname());
    $address->setLastname($customer->getLastname());
    $address->setCountryId('US');
    $address->setPostcode('31000');
    $address->setCity('Osijek');
    $address->setTelephone('0038511223344');
    $address->setFax('0038511223355');
    $address->setCompany('Inchoo');
    $address->setStreet('Kersov');
    $address->setIsDefaultBilling('1');
    $address->setIsDefaultShipping(false);
    $address->setSaveInAddressBook('1');

    $address->save(); 

But it creates only billing address. I've want to add one more address and set it to shipping.


Solution

  • You have almost done it Just load customer/address model again and save it again but this time set $address->setIsDefaultBilling(false);$address->setIsDefaultShipping('1'); This will Work.

    Tested in magento 1.9

    <?php
         require_once 'app/Mage.php';
         Mage::app();
    
            $websiteId = Mage::app()->getWebsite()->getId();
            $store = Mage::app()->getStore();
    
            $customer = Mage::getModel("customer/customer");
            $customer->setWebsiteId($websiteId);
            $customer->setStore($store);
            $customer->setFirstname('fst');
            $customer->setLastname('lst');
            $customer->setEmail('fst@ex.com');
            $customer->setPassword('somepassword');
    
            $customer->save();
            echo $customer->getId();
    
            $address = Mage::getModel("customer/address");
            $address->setCustomerId($customer->getId());
            $address->setFirstname($customer->getFirstname());
            $address->setLastname($customer->getLastname());
            $address->setCountryId('US');
            $address->setPostcode('31000');
            $address->setCity('Osijek');
            $address->setTelephone('0038511223344');
            $address->setFax('0038511223355');
            $address->setCompany('Inchoo');
            $address->setStreet('Kersov');
            $address->setIsDefaultBilling('1');
            $address->setIsDefaultShipping(false);
            $address->setSaveInAddressBook('1');
    
            $address->save();
    
            $address = Mage::getModel("customer/address");
            $address->setCustomerId($customer->getId());
            $address->setFirstname($customer->getFirstname());
            $address->setLastname($customer->getLastname());
            $address->setCountryId('US');
            $address->setPostcode('31000');
            $address->setCity('Osijek');
            $address->setTelephone('0038511223344');
            $address->setFax('0038511223355');
            $address->setCompany('Inchoo');
            $address->setStreet('Kersov');
            $address->setIsDefaultBilling(false);
            $address->setIsDefaultShipping('1');
            $address->setSaveInAddressBook('1');
    
            $address->save(); 
    
            die("check it!");