iamarcone Posted January 13, 2017 Share Posted January 13, 2017 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 emptyat 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 fields242. * @throws PrestaShopException243. */244. public function getFields()245. {246. $this->validateFields();247. $fields = $this->formatFields(self::FORMAT_COMMON);248.249. // For retro compatibility250. if (Shop::isTableAssociated($this->def['table'])) {251. $fields = array_merge($fields, $this->getFieldsShop()); ObjectModelCore->getFields - [line 487 - classes/ObjectModel.php]482.483. // Database insertion484. 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 database492. $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 result441. * @throws PrestaShopException442. */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 database450. * ObjectModelCore->save - [line 212 - controllers/front/AddressController.php]207. $this->ajaxDie(Tools::jsonEncode($return));208. }209. }210.211. // Save address212. if ($result = $address->save()) {213. // Update id address of the current cart if necessary214. if (isset($address_old) && $address_old->isUsed()) {215. $this->context->cart->updateAddressId($address_old->id, $address->id);216. } else { // Update cart address217. $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 ajaxProcess178. $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 controller367. $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 SA25. */26.27. require(dirname(__FILE__).'/config/config.inc.php');28. Dispatcher::getInstance()->dispatch(); Saludos. Link to comment Share on other sites More sharing options...
w3bsolutions Posted January 16, 2017 Share Posted January 16, 2017 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 More sharing options...
iamarcone Posted January 16, 2017 Author Share Posted January 16, 2017 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. Link to comment Share on other sites More sharing options...
w3bsolutions Posted January 17, 2017 Share Posted January 17, 2017 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 More sharing options...
arroyman Posted August 15, 2017 Share Posted August 15, 2017 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now