Jump to content

Error al intentar guardar mi direccion PS 1.6.1.10


iamarcone

Recommended Posts

Hola comunidad, estoy probando el registro de clientes de mi web y me tira error cuando termino de cargar los datos de mi primer dirección.
El error me lo da cuando termino de cargar los datos y hago clic en guardar. 
He editado el defines.inc.php para que me muestre los errores en vez de un error 500.
 

 

 

[PrestaShopException]

Property Address->dni is empty
at line 909 in file classes/ObjectModel.php

904. }
905.
906. $message = $this->validateField($field, $this->$field);
907. if ($message !== true) {
908. if ($die) {
909. throw new PrestaShopException($message);
910. }
911. return $error_return ? $message : false;
912. }
913. }
914.
  • ObjectModelCore->validateFields - [line 246 - classes/ObjectModel.php]
    241. * @return array All object fields
    242. * @throws PrestaShopException
    243. */
    244. public function getFields()
    245. {
    246. $this->validateFields();
    247. $fields = $this->formatFields(self::FORMAT_COMMON);
    248.
    249. // For retro compatibility
    250. if (Shop::isTableAssociated($this->def['table'])) {
    251. $fields = array_merge($fields, $this->getFieldsShop());
  • ObjectModelCore->getFields - [line 487 - classes/ObjectModel.php]
    482.
    483. // Database insertion
    484. if (Shop::checkIdShopDefault($this->def['table'])) {
    485. $this->id_shop_default = (in_array(Configuration::get('PS_SHOP_DEFAULT'), $id_shop_list) == true) ? Configuration::get('PS_SHOP_DEFAULT') : min($id_shop_list);
    486. }
    487. if (!$result = Db::getInstance()->insert($this->def['table'], $this->getFields(), $null_values)) {
    488. return false;
    489. }
    490.
    491. // Get object id in database
    492. $this->id = Db::getInstance()->Insert_ID();
  • ObjectModelCore->add - [line 171 - classes/Address.php] - [2 Arguments]
    166. /**
    167. * @see ObjectModel::add()
    168. */
    169. public function add($autodate = true, $null_values = false)
    170. {
    171. if (!parent::add($autodate, $null_values)) {
    172. return false;
    173. }
    174.
    175. if (Validate::isUnsignedId($this->id_customer)) {
    176. Customer::resetAddressCache($this->id_customer, $this->id);
  • AddressCore->add - [line 445 - classes/ObjectModel.php] - [2 Arguments]
    440. * @return bool Insertion result
    441. * @throws PrestaShopException
    442. */
    443. public function save($null_values = false, $auto_date = true)
    444. {
    445. return (int)$this->id > 0 ? $this->update($null_values) : $this->add($auto_date, $null_values);
    446. }
    447.
    448. /**
    449. * Adds current object to the database
    450. *
  • ObjectModelCore->save - [line 212 - controllers/front/AddressController.php]
    207. $this->ajaxDie(Tools::jsonEncode($return));
    208. }
    209. }
    210.
    211. // Save address
    212. if ($result = $address->save()) {
    213. // Update id address of the current cart if necessary
    214. if (isset($address_old) && $address_old->isUsed()) {
    215. $this->context->cart->updateAddressId($address_old->id, $address->id);
    216. } else { // Update cart address
    217. $this->context->cart->autosetProductAddress();
  • AddressControllerCore->processSubmitAddress - [line 107 - controllers/front/AddressController.php]
    102. * @see FrontController::postProcess()
    103. */
    104. public function postProcess()
    105. {
    106. if (Tools::isSubmit('submitAddress')) {
    107. $this->processSubmitAddress();
    108. } elseif (!Validate::isLoadedObject($this->_address) && Validate::isLoadedObject($this->context->customer)) {
    109. $_POST['firstname'] = $this->context->customer->firstname;
    110. $_POST['lastname'] = $this->context->customer->lastname;
    111. $_POST['company'] = $this->context->customer->company;
    112. }
  • AddressControllerCore->postProcess - [line 178 - classes/controller/Controller.php]
    173. if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
    174. $this->setMedia();
    175. }
    176.
    177. // postProcess handles ajaxProcess
    178. $this->postProcess();
    179.
    180. if (!empty($this->redirect_after)) {
    181. $this->redirect();
    182. }
    183.
  • ControllerCore->run - [line 367 - classes/Dispatcher.php]
    362. if (isset($params_hook_action_dispatcher)) {
    363. Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
    364. }
    365.
    366. // Running controller
    367. $controller->run();
    368. } catch (PrestaShopException $e) {
    369. $e->displayMessage();
    370. }
    371. }
    372.
  • DispatcherCore->dispatch - [line 28 - index.php]
    23. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
    24. * International Registered Trademark & Property of PrestaShop SA
    25. */
    26.
    27. require(dirname(__FILE__).'/config/config.inc.php');
    28. Dispatcher::getInstance()->dispatch();

Saludos.

Link to comment
Share on other sites

El error te está diciendo que el campo "dni" está vacío. Deduzco que este campo se ha eliminado del formulario o por lo que sea no aparece (en caso contrario simplemente tendría que rellenar dicho campo antes de pulsar en guardar), pero por configuración sigue siendo obligatorio, por eso lanza el error. 

 

1) Revisa si en Clientes > Direcciones abajo del todo "Establezca los campos obligatorios para esta sección" (haz click en ese botón) está activado "dni" o no. Si lo está desactívalo. 

1) Revisa si en Localización > Países > España (Editar) en el formato de la dirección aparece el campo "dni" o no. Si aparece quítalo e intenta guardar direcciones de nuevo. 

 

Ya nos comentas si alguna de estas opciones lo resuelve.

Link to comment
Share on other sites

Gracias a tu consejo pude resolverlo, ¡de verdad Muchisimas gracias!

Sólo tuve que editar los "campos obligatorios para esta sección" desde Clientes -> Direcciones.

De nuevo gracias y saludos.

 

Un placer. 

 

No olvides marcar el tema como solucionado o elegir mi respuesta como "best answer" para que se vea en el listado de temas que ya está resuelto. Gracias.

Link to comment
Share on other sites

  • 6 months later...

Un placer. 

 

No olvides marcar el tema como solucionado o elegir mi respuesta como "best answer" para que se vea en el listado de temas que ya está resuelto. Gracias.

Muchas gracias, me sirvio mucho tu informacion querido w3solutions

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...