cancel
Showing results for 
Search instead for 
Did you mean: 

Magento 2.0.4 y direcciones

Magento 2.0.4 y direcciones

Hola!

Estoy teniendo un pequeño problema con Magento y me gustaría saber si alguien le ve solución ya que empiezo a creer que es problema de versión.

Uso Magento 2.0.4. Me he creado dos pequeños scripts:

El primero me ha generado una serie de atributos propios en las direcciones que necesito para mi gestión. Os paso un ejemplo de creación de un atributo:

        $setup = $this->_objectManager->create("Magento\Framework\Setup\ModuleDataSetupInterface");       
        $this->customerSetupFactory = $this->_objectManager->create("Magento\Customer\Setup\CustomerSetupFactory");
        $customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);
        
            $customerSetup->addAttribute(
                'customer_address',
                'dir_fax',
                [
                    'type' => 'varchar',
                    'label' => 'Fax',
                    'input' => 'text',
                    'required' => false,
                    'visible' => true,
                    'user_defined' => true,
                    'sort_order' => 220,
                    'position' => 220,
                    'system' => 0,
                ]
            );

El segundo me crea usuarios en Magento (con datos de nuestra antigua tienda virtual) y me los inserta en Magento con sus direcciones.

        // Creamos el cliente y se le añade el el WebsiteId
        $customer = $customerFactory->create();
        $customer->setWebsiteId($websiteId);
       
        // Moving data to fields
        $customer->setEmail($datos["email"]); 
        $customer->setPrefix($datos["title"]);
        //...
        try {
            $customer->save();        
        } catch (Exception $e) {
            Zend_Debug::dump($e->getMessage());           
        }

        // Direccion de facturación       
        $addressFactory = $this->_objectManager->get('\Magento\Customer\Model\AddressFactory');
        $baddress = $addressFactory->create();
        $baddress->setFirstname($datos['first_name'])
                ->setCustomerId($customer->getId())
                ->setPrefix($datos["title"])
                //...
                ->setDirFax($datos["fax"]);
        try{
            $baddress->save();
        } catch (Exception $e) {
            Zend_Debug::dump($e->getMessage());
        }
        
        // Direccion de envío
        $saddress = $addressFactory->create();
        $saddress->setFirstname($datos['first_name'])
                ->setPrefix($datos["title"])
                ->setCustomerId($customer->getId())
                //...
                ->setDirFax($datos["fax"]);
        
        try {
            $saddress->save();
        } catch (Exception $e) {
            Zend_Debug::dump($e->getMessage());
        }                

El usuario lo crea bien, la primera dirección la crea bien, a partir de la segunda, me crea bien la dirección pero no me guarda los atributos personalizados, solo los atributos por defecto de Magento. En el caso que os he pasado, por ejemplo, no guardaría el dir_fax.

 

Os suena que pueda ser algún bug de la versión de Magento o estoy haciendo algo mal?

 

Muchas gracias!