speedy13 Posted August 28, 2015 Share Posted August 28, 2015 (edited) Buenas tardes, Desde hoy por la mañana me aparece un error cada vez que quiero realizar un pedido manual. El caso es que una vez selecciono el cliente, material, cantidad etc.. al apretar la casilla de "Crear pedido" me salta una pantalla con el error que adjunto. Alguien me puede ayudar?? Muchas gracias de antemano! [PrestaShopException]Property StockAvailable->id_product 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] ObjectModelCore->getFields - [line 652 - classes/ObjectModel.php] ObjectModelCore->update - [line 406 - classes/stock/StockAvailable.php] - [1 Arguments] StockAvailableCore->update - [line 127 - Core/Business/Stock/Core_Business_Stock_StockManager.php] Core_Business_Stock_StockManager->updateQuantity - [line 472 - classes/stock/StockAvailable.php] - [4 Arguments] StockAvailableCore::updateQuantity - [line 473 - classes/order/OrderDetail.php] - [3 Arguments] OrderDetailCore->checkProductStock - [line 638 - classes/order/OrderDetail.php] - [2 Arguments] OrderDetailCore->create - [line 678 - classes/order/OrderDetail.php] - [7 Arguments] OrderDetailCore->createList - [line 364 - classes/PaymentModule.php] - [7 Arguments] PaymentModuleCore->validateOrder - [line 1160 - controllers/admin/AdminOrdersController.php] - [9 Arguments] AdminOrdersControllerCore->postProcess - [line 178 - classes/controller/Controller.php] ControllerCore->run - [line 367 - classes/Dispatcher.php] DispatcherCore->dispatch - [line 58 - admin/index.php] Edited September 1, 2015 by speedy13 (see edit history) 2 Link to comment Share on other sites More sharing options...
toitos Posted August 30, 2015 Share Posted August 30, 2015 (edited) [PrestaShopException]Property StockAvailable->id_product 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] ObjectModelCore->getFields - [line 652 - classes/ObjectModel.php] ObjectModelCore->update - [line 406 - classes/stock/StockAvailable.php] - [1 Arguments] StockAvailableCore->update - [line 127 - Core/Business/Stock/Core_Business_Stock_StockManager.php] Core_Business_Stock_StockManager->updateQuantity - [line 472 - classes/stock/StockAvailable.php] - [4 Arguments] StockAvailableCore::updateQuantity - [line 473 - classes/order/OrderDetail.php] - [3 Arguments] OrderDetailCore->checkProductStock - [line 638 - classes/order/OrderDetail.php] - [2 Arguments] OrderDetailCore->create - [line 678 - classes/order/OrderDetail.php] - [7 Arguments] OrderDetailCore->createList - [line 364 - classes/PaymentModule.php] - [7 Arguments] PaymentModuleCore->validateOrder - [line 1160 - controllers/admin/AdminOrdersController.php] - [9 Arguments] AdminOrdersControllerCore->postProcess - [line 178 - classes/controller/Controller.php] ControllerCore->run - [line 367 - classes/Dispatcher.php] DispatcherCore->dispatch - [line 58 - admin/index.php] Me está ocurriendo lo mismo desde que actualice a la versión 1.6.1.1. El caso es que algunos pedido no llegan completarse y se quedan en el carrito de compra del cliente. Pense que solo me ocurría a mí pero veo que no soy el único. Después de muchas pruebas lo que detecto es que esto ocurre solamente cuando se incorporan determinados productos a la cesta de la compra pero todavía no he podido deducir el porqué. Saludos, Edited August 30, 2015 by toitos (see edit history) Link to comment Share on other sites More sharing options...
speedy13 Posted August 31, 2015 Author Share Posted August 31, 2015 Exacto toitos, solo ocurre con determinados productos y a mi también me ha pasado al actualizar a la versión 1.6.1.1. Algo hay aquí que no tenemos puesto bien... Voy a seguir mirando si encuentro el error, si logro verlo te informo. Espero que hagas lo mismo si encuentras el fallo. Saludos Link to comment Share on other sites More sharing options...
toitos Posted August 31, 2015 Share Posted August 31, 2015 Exacto toitos, solo ocurre con determinados productos y a mi también me ha pasado al actualizar a la versión 1.6.1.1. Algo hay aquí que no tenemos puesto bien... Voy a seguir mirando si encuentro el error, si logro verlo te informo. Espero que hagas lo mismo si encuentras el fallo. Saludos Hay que tener cuidado porque hay algunos pedidos automáticos que entran sin Estado de pago. O sea, que el pago por paypal o tarjeta se genera pero no llega a generarse el pedido y el administrador debe de tenerlo en cuenta para avisar al cliente. Solo ocurre en algunos pedidos que, según he podido observar, depende de los artículos que contengan. VAMOS, UN LIO. Link to comment Share on other sites More sharing options...
toitos Posted August 31, 2015 Share Posted August 31, 2015 Acabo de notificar a Prestashop este posible bug. No obstante como no tengo claro si se ha enviado correctamente lo reporto seguidamente en inglés ... ERROR COMPLETING THE ORDER From update to v. 1.6.1.1 some orders don't confirm correctly. All products are added correctly in the cart. When we want to complete the order it appears the following errors. It seems that the error only appears when certain products are added as we could test so far. In fact some orders complete correctly and the customers receive confirmation as usual. The other orders that are not completed the customer does not receive notification allthough in the backOffice we can see the order but incomplete data. In the forum there are other people with the same bug. You can see it following the next link ... https://www.prestashop.com/forums/topic/465898-error-al-crear-pedido-manual/ Kind regards, [PrestaShopException] Property StockAvailable->id_product 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] ObjectModelCore->getFields - [line 652 - classes/ObjectModel.php] ObjectModelCore->update - [line 406 - classes/stock/StockAvailable.php] - [1 Arguments] StockAvailableCore->update - [line 127 - Core/Business/Stock/Core_Business_Stock_StockManager.php] Core_Business_Stock_StockManager->updateQuantity - [line 472 - classes/stock/StockAvailable.php] - [4 Arguments] StockAvailableCore::updateQuantity - [line 473 - classes/order/OrderDetail.php] - [3 Arguments] OrderDetailCore->checkProductStock - [line 638 - classes/order/OrderDetail.php] - [2 Arguments] OrderDetailCore->create - [line 678 - classes/order/OrderDetail.php] - [7 Arguments] OrderDetailCore->createList - [line 364 - classes/PaymentModule.php] - [7 Arguments] PaymentModuleCore->validateOrder - [line 1160 - controllers/admin/AdminOrdersController.php] - [9 Arguments] AdminOrdersControllerCore->postProcess - [line 178 - classes/controller/Controller.php] ControllerCore->run - [line 367 - classes/Dispatcher.php] DispatcherCore->dispatch - [line 58 - admin/index.php] Link to comment Share on other sites More sharing options...
toitos Posted September 1, 2015 Share Posted September 1, 2015 SOLUCIONADO POR EL MOMENTO (A LA ESPERA DE ACTUALIZACION).- Parece ser que el error se genera en el archivo: classes/stock/StockAvailable.php La solución, a la espera de actualización, es sobreescribir el archivo con el de la versión anterior, v. 1.6.1.0 Por el momento se generan los pedidos correctamente y no hay ningún error adicional por el momento. Importante.- Después de sobreescribir el archivo ir al BackOffice y en: Parámetros-Rendimiento, vaciar la caché No es el caso pero, si se os queda la pantalla del front en blanco, borrar el archivo: cache/class_index.php 3 Link to comment Share on other sites More sharing options...
speedy13 Posted September 1, 2015 Author Share Posted September 1, 2015 Muchas gracias toitos, voy sobreescribir el archivo. Un saludo y de nuevo gracias! Link to comment Share on other sites More sharing options...
Sundbox Posted September 2, 2015 Share Posted September 2, 2015 SOLUCIONADO POR EL MOMENTO (A LA ESPERA DE ACTUALIZACION).- Parece ser que el error se genera en el archivo: classes/stock/StockAvailable.php La solución, a la espera de actualización, es sobreescribir el archivo con el de la versión anterior, v. 1.6.1.0 Por el momento se generan los pedidos correctamente y no hay ningún error adicional por el momento. Importante.- Después de sobreescribir el archivo ir al BackOffice y en: Parámetros-Rendimiento, vaciar la caché No es el caso pero, si se os queda la pantalla del front en blanco, borrar el archivo: cache/class_index.php Estoy escribiendo ahora mismo con un dolor de cabeza impresionante despues de toda la mañana dandole vueltas a mas no poder, gracias toitos, has sido mi aspirina! Esto es inaceptable para una tienda en producción, y mas en este caso una multitienda triple... en fin actualizar ya sabemos lo que tienes por mucho que te lo prepares en un dominio de pruebas al pasar a produccion siempre salen problemas. Saludos! Link to comment Share on other sites More sharing options...
inavarrobra Posted September 3, 2015 Share Posted September 3, 2015 A mi me pasaba lo mismo y así lo he solucionado tambien. No se si os pasa a vosotros tambien, cuando estás generando el pedido manualmente y cambias la dirección, forma de envío o simplemente las unidades de un producto. No se actualiza. Es como si no se recargase. A mi me sucede esto, lo curioso es que aunque sigas viendo pro ejemplo la cantidad de un artículo sin actualizar, en la cesta que crea si que se modifica. Salgo y vuelo a entrar y esta cambiado. Link to comment Share on other sites More sharing options...
Sundbox Posted September 3, 2015 Share Posted September 3, 2015 Tengo que aclarar, a mi el problema me lo daba al usar paypal o el modulo de redsys, durante el proceso de pedido normal que haría un cliente. Hoy un dia despues tengo 2 pedidos hechos con esas formas de pago y veo que la forma de pago en el pedido esta como duplicada, no se de donde puede venir el problema, cuando encuentre de donde viene os digo. Link to comment Share on other sites More sharing options...
don@ptg Posted October 7, 2015 Share Posted October 7, 2015 I had this problem too! Lucky I had google translate as there were no solutions in english. Our live 1.6.1.1 PrestaShop install kept showing zero products on some orders and the orders that did show would not empty the shopping cart at times. This led customers to double order when they saw products in their cart. Very unhappy boss and customers. By replacing the classes/stock/StockAvailable.php with the version in 1.6.1.0 and clearing the cache, both problems were fixed immediately. Thank you! 1 Link to comment Share on other sites More sharing options...
LucasConstantinidi Posted November 12, 2015 Share Posted November 12, 2015 disculpen pero veo q marcaron como solucionado, alguien seria tan amable de subir el archivo de la version 1.6.1.0 ? dado que yo no la tengo Link to comment Share on other sites More sharing options...
gu78 Posted November 13, 2015 Share Posted November 13, 2015 (edited) He comparado las 2 versiones y el unico cambio importante es en la funcion updateQuantity. Lo que he hecho es crear un modulo que hace override de la funcion. El fallo se produce cuando el producto no tiene atributos (en mi caso, todos), se ve que alguien se olvidó de comprobarlo antes. I've compared both versions and the only change is the updateQuantity function. I've made a module to override it. The bug happens when a product has no attributes, somebody forgot to check it before. v1.6.1.0 /** * For a given id_product and id_product_attribute updates the quantity available * * @param int $id_product * @param int $id_product_attribute Optional * @param int $delta_quantity The delta quantity to update * @param int $id_shop Optional */ public static function updateQuantity($id_product, $id_product_attribute, $delta_quantity, $id_shop = null) { if (!Validate::isUnsignedId($id_product)) return false; $id_stock_available = StockAvailable::getStockAvailableIdByProductId($id_product, $id_product_attribute, $id_shop); if (!$id_stock_available) return false; // Update quantity of the pack products if (Pack::isPack($id_product)) { if (Validate::isLoadedObject($product = new Product((int)$id_product))) { if ($product->pack_stock_type == 1 || $product->pack_stock_type == 2 || ($product->pack_stock_type == 3 && Configuration::get('PS_PACK_STOCK_TYPE') > 0)) { $products_pack = Pack::getItems($id_product, (int)Configuration::get('PS_LANG_DEFAULT')); foreach ($products_pack as $product_pack) StockAvailable::updateQuantity($product_pack->id, $product_pack->id_pack_product_attribute, $product_pack->pack_quantity * $delta_quantity, $id_shop); } $stock_available = new StockAvailable($id_stock_available); $stock_available->quantity = $stock_available->quantity + $delta_quantity; if ($product->pack_stock_type == 0 || $product->pack_stock_type == 2 || ($product->pack_stock_type == 3 && (Configuration::get('PS_PACK_STOCK_TYPE') == 0 || Configuration::get('PS_PACK_STOCK_TYPE') == 2))) $stock_available->update(); } else return false; } else { $stock_available = new StockAvailable($id_stock_available); $stock_available->quantity = $stock_available->quantity + $delta_quantity; $stock_available->update(); } Cache::clean('StockAvailable::getQuantityAvailableByProduct_'.(int)$id_product.'*'); Hook::exec('actionUpdateQuantity', array( 'id_product' => $id_product, 'id_product_attribute' => $id_product_attribute, 'quantity' => $stock_available->quantity ) ); return true; } v1.6.1.1+ /** * For a given id_product and id_product_attribute updates the quantity available * If $avoid_parent_pack_update is true, then packs containing the given product won't be updated * * @param int $id_product * @param int $id_product_attribute Optional * @param int $delta_quantity The delta quantity to update * @param int $id_shop Optional */ public static function updateQuantity($id_product, $id_product_attribute, $delta_quantity, $id_shop = null) { if (!Validate::isUnsignedId($id_product)) { return false; } $product = new Product((int)$id_product); if (!Validate::isLoadedObject($product)) { return false; } $stockManager = Adapter_ServiceLocator::get('Core_Business_Stock_StockManager'); $stockManager->updateQuantity($product, $id_product_attribute, $delta_quantity, $id_shop = null); return true; } Edited November 13, 2015 by gu78 (see edit history) 1 Link to comment Share on other sites More sharing options...
gu78 Posted November 13, 2015 Share Posted November 13, 2015 disculpen pero veo q marcaron como solucionado, alguien seria tan amable de subir el archivo de la version 1.6.1.0 ? dado que yo no la tengo Yo lo he sacado de aqui http://thecodedirectory.com/prestashop/1.6.1.0/prestashop/classes/stock/StockAvailable.php 2 Link to comment Share on other sites More sharing options...
LucasConstantinidi Posted November 14, 2015 Share Posted November 14, 2015 Yo lo he sacado de aqui http://thecodedirectory.com/prestashop/1.6.1.0/prestashop/classes/stock/StockAvailable.php gracias, use el de la nueva version 1.6.1.2 y funciona bien al parecer. Link to comment Share on other sites More sharing options...
jotaele Posted November 17, 2015 Share Posted November 17, 2015 SOLUCIONADO POR EL MOMENTO (A LA ESPERA DE ACTUALIZACION).- Parece ser que el error se genera en el archivo: classes/stock/StockAvailable.php La solución, a la espera de actualización, es sobreescribir el archivo con el de la versión anterior, v. 1.6.1.0 Por el momento se generan los pedidos correctamente y no hay ningún error adicional por el momento. Importante.- Después de sobreescribir el archivo ir al BackOffice y en: Parámetros-Rendimiento, vaciar la caché No es el caso pero, si se os queda la pantalla del front en blanco, borrar el archivo: cache/class_index.php Muchísimas gracias por el aporte, tu solución me ha salvado. Saludos. 1 Link to comment Share on other sites More sharing options...
enio19 Posted November 27, 2015 Share Posted November 27, 2015 SOLUCIONADO POR EL MOMENTO (A LA ESPERA DE ACTUALIZACION).- Parece ser que el error se genera en el archivo: classes/stock/StockAvailable.php La solución, a la espera de actualización, es sobreescribir el archivo con el de la versión anterior, v. 1.6.1.0 Por el momento se generan los pedidos correctamente y no hay ningún error adicional por el momento. Importante.- Después de sobreescribir el archivo ir al BackOffice y en: Parámetros-Rendimiento, vaciar la caché No es el caso pero, si se os queda la pantalla del front en blanco, borrar el archivo: cache/class_index.php Muchas Gracias!!! fue mi solución!!! ahora no entiendo a los programadores de prestashop!! ya van por las 1.6.1.3 y todavía no arreglaron semejante problema!!! No se puede reportar? saludos Link to comment Share on other sites More sharing options...
inavarrobra Posted December 7, 2015 Share Posted December 7, 2015 Buenos días, Yo cuando actualicé a las version 1.6.1.2 me pasó lo mismo, al hacer la sustitución por el archivo de la 1.6.1.0 me funcionó bien. Al proceder a actualizar a la versión 1.6.1.3 he visto que me ha vuelto a pasar lo mismo, si sustituyo el archivo por el de la misma versión vuelve a funcionar, pero alguien sabe si esto se le va a dar solución? O tenemos que andar cambiandolo con cada actualización. Un saludo, Link to comment Share on other sites More sharing options...
inavarrobra Posted April 19, 2016 Share Posted April 19, 2016 Acabo de actualizar a las versión 1.6.1.5 y sigue sucedido exactamente esto. Da error 500 a la hora de generarse el pedido y en backoffice a mi se me genera sin estado y sin verse ningún artículo. Hay alguna solución o a que se puede deber, porque desde varias actualizaciones no entiendo que no se le de solición. Link to comment Share on other sites More sharing options...
enio19 Posted April 19, 2016 Share Posted April 19, 2016 Acabo de actualizar a las versión 1.6.1.5 y sigue sucedido exactamente esto. Da error 500 a la hora de generarse el pedido y en backoffice a mi se me genera sin estado y sin verse ningún artículo. Hay alguna solución o a que se puede deber, porque desde varias actualizaciones no entiendo que no se le de solición. Me paso lo mismo en la 1.6.1.5 - asi que vuelvo a pisar con un archivo del 2015. Link to comment Share on other sites More sharing options...
LucasConstantinidi Posted April 19, 2016 Share Posted April 19, 2016 el error suele venir dentro de las plantillas, no de prestashop, dado que con la original no pasa. Link to comment Share on other sites More sharing options...
gu78 Posted April 19, 2016 Share Posted April 19, 2016 Pues debe ser en la última versión de la plantilla, porque yo tengo la original modificada y pasa. Link to comment Share on other sites More sharing options...
TopTronica Posted July 9, 2016 Share Posted July 9, 2016 Buena, En mi caso, lo que me sucede es que al intentar crear un pedido desde el Back Office, cuando tengo localizado el producto e introducida la cantidad que quiero añadir en el carro, al dar al boton "añadir al carrito" no se añade nada, no refresca y aparentemente tras pulsar el boton, no ha hecho nada, pero si salgo y vuelvo a entrar, si que ha creado un carrito con ese producto. Alguna pista? Muchas gracias a todos. Link to comment Share on other sites More sharing options...
Recommended Posts