Closed GoogleCodeExporter closed 9 years ago
Hi Gunter,
So far this log gives us little clue.
First of all, can you please make sure you are running a version 0.95 or 0.9.6
of the
connector? Are you on OpenERP4.2.2 and Magento 1.1 at least (Magento 1.3 or
OpenERP
4.2.3 better)?
If not, are you sure you dropped all your databases before upgrading OpenERP,
Magento
or the version of the connector?
Second, our logging line, line 127 of magento_product_synchronize.py was indeed
not
correct, so we just corrected it on the SVN. Now it will at least report the
error
better without raising such an exception. You can update on SVN or download the
two
modified files here and restart the OpenERP server:
http://code.google.com/p/magento-openerp-smile-synchro/source/browse/magento_ope
nerp_smile/wizard/?r=52
files are: magento_category_synchronize.py and magento_product_synchronize.py . We
will soon push a new corrected version.
Still, what you were reporting here is not the root of the problem but only a
logging
artifact as I said. So, to find out the root of the problem, you have to
understand
why Magento didn't create or update the product properly. What can help you
here is
the PHP logging file of our connector you can generally find inside your
/var/www/magento/app/code/community/Smile_OpenERP_Synchro/ directory (update to
your
Apache and Magento install).
Clear that file and reproduce the error, what is it written inside it? This
should
give you clues about what is happening.
Thanks for the feedback, we will definitely help you to have it working
properly and
you are already helping us improving the quality of the connector. How is it
going now?
Raphaël Valyi.
Original comment by rva...@gmail.com
on 26 Aug 2008 at 8:49
hey Raphaël,
I'm working with openerp 4.2.2 and have started with the 0.95 version, now i
have
upgraded to 0.96.
i haven't droped the database befor the upgrade to 0.96. i will now try it
with the
modified files, if i can get them out of your svn server. i will report you my
experiences.
bye, gunter
Original comment by gunter.k...@gmail.com
on 26 Aug 2008 at 11:53
Gunter, upgrading from 0.9.5 to 0.9.6 requires no database clean up unless you
screw
it up specifically for some reason. 0.9.6 only adds easier categories export.
That
should be independent from your problem. Still, I'm very curious about what is
in the
PHP log (we will also think about passing back such Magento PHP error stacks
back to
the OpenERP log in the future).
Raphaël
Original comment by rva...@gmail.com
on 26 Aug 2008 at 12:19
hey Raphaël,
here is the output of the magento side:
Mage says:
exception 'Mage_Core_Exception' with message 'Invalid website id requested.' in
/var/www/localhost/htdocs/magento/app/Mage.php:367
Stack trace:
#0 /var/www/localhost/htdocs/magento/app/code/core/Mage/Core/Model/App.php(664):
Mage::exception('Mage_Core', 'Invalid website...')
#1
/var/www/localhost/htdocs/magento/app/code/core/Mage/Catalog/Model/Product.php(2
42):
Mage_Core_Model_App->getWebsite('5')
#2
/var/www/localhost/htdocs/magento/app/code/core/Mage/Catalog/Model/Resource/Eav/
Mysql4/Product.php(294):
Mage_Catalog_Model_Product->getStoreIds()
#3
/var/www/localhost/htdocs/magento/app/code/core/Mage/Catalog/Model/Resource/Eav/
Mysql4/Product.php(245):
Mage_Catalog_Model_Resource_Eav_Mysql4_Prod\
uct->refreshEnabledIndex(NULL, Object(Mage_Catalog_Model_Product))
#4
/var/www/localhost/htdocs/magento/app/code/core/Mage/Catalog/Model/Resource/Eav/
Mysql4/Product.php(112):
Mage_Catalog_Model_Resource_Eav_Mysql4_Prod\
uct->refreshIndex(Object(Mage_Catalog_Model_Product))
#5
/var/www/localhost/htdocs/magento/app/code/core/Mage/Eav/Model/Entity/Abstract.p
hp(873):
Mage_Catalog_Model_Resource_Eav_Mysql4_Product->_afterSave(\
Object(Mage_Catalog_Model_Product))
#6
/var/www/localhost/htdocs/magento/app/code/core/Mage/Core/Model/Abstract.php(235
):
Mage_Eav_Model_Entity_Abstract->save(Object(Mage_Catalog_Model_Pr\
oduct))
#7
/var/www/localhost/htdocs/magento/app/code/community/Smile_OpenERP_Synchro/opene
rp-synchro.php(282):
Mage_Core_Model_Abstract->save()
#8 [internal function]: OpenERPConnector->product_sync(Array)
#9 [internal function]: ReflectionMethod->invokeArgs(Object(OpenERPConnector),
Array)
#10
/var/www/localhost/htdocs/magento/lib/Zend/Server/Reflection/Function/Abstract.p
hp(366):
call_user_func_array(Array, Array)
#11 [internal function]:
Zend_Server_Reflection_Function_Abstract->__call('invokeArgs', Array)
#12 /var/www/localhost/htdocs/magento/lib/Zend/XmlRpc/Server.php(538):
Zend_Server_Reflection_Method->invokeArgs(Object(OpenERPConnector), Array)
#13 /var/www/localhost/htdocs/magento/lib/Zend/XmlRpc/Server.php(569):
Zend_XmlRpc_Server->_handle(Object(Zend_XmlRpc_Request_Http))
#14
/var/www/localhost/htdocs/magento/app/code/community/Smile_OpenERP_Synchro/opene
rp-synchro.php(384):
Zend_XmlRpc_Server->handle()
#15
/var/www/localhost/htdocs/magento/app/code/community/Smile_OpenERP_Synchro/opene
rp-synchro.php(372):
initRPCServer()
#16 {main}
Original comment by gunter.k...@gmail.com
on 26 Aug 2008 at 12:30
Hi Gunter,
so it looks like Magento fails to save the product on line 283 of the connector
PHP
file here:
http://code.google.com/p/magento-openerp-smile-synchro/source/browse/magento_ope
nerp_smile/Magento_extension/Smile_OpenERP_Synchro/openerp-synchro.php
After the log, it looks like the website id we set to the product on line 252
of that
file previously was not correct. Since the
$openerp_product['product_data']['websites'] key is not filled currently by the
Python part, the command we were doing was:
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getId()));
This usually works and always worked for us but doesn't seem to work in your
case.
This is also the way it works in the regular Magento Product Controller, see for
instance around line 420 of this file (your equivalent):
/var/www/magento/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductControl
ler.php
Are you working in with mutiple Magento stores? Indeed the original Magento
code is
exaclty:
if (Mage::app()->isSingleStoreMode()) {
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getId()));
}
And in our controller we don't do such a a test like
Mage::app()->isSingleStoreMode(). But may be we should.
Could you please replace the line 252 of your PHP file the 3 lines I just
quoted?
(Don't forget the closing bracket at the end of line 252). Can your retry? Same
error?
Alternatively, this might be something else, for some reason the web site id
would be
incorrect. Could you eventually try to replace line 252 by:
$product->setWebsiteIds(array($my_hard_coded_id);}
and then try $my_hard_coded_id to set manually before the line from 1 let's say
to
10, trying to export each time you try some new value?
So I think you need to discover why the website id is incorrect, trying in
those two
directions. Please provide feedback. Can you also make sure you can add product
manually in the back office of Magento?
Hope this help, stay tuned and continue making updates about your advances
please.
Raphaël.
Original comment by rva...@gmail.com
on 26 Aug 2008 at 1:55
hey Raphaël,
im working in a magento multistore environment. adding products in the magento
backoffice is no problem. i'll try your tips this evening and will report about
the
result.
thanks, gunter
Original comment by gunter.k...@gmail.com
on 26 Aug 2008 at 2:29
hey Raphael,
after replacing the code to this it works.
if (Mage::app()->isSingleStoreMode()) {
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getId()));
}
thanks, gunter
thanks, gunter
Original comment by gunter.k...@gmail.com
on 27 Aug 2008 at 2:59
hey raphael,
the next problem is, that the products aren't visible in the magento backoffice
product grid. Now I'm searching for the missing data.
bye, gunter
Original comment by gunter.k...@gmail.com
on 27 Aug 2008 at 3:35
Hi Gunter,
My take is that you don't see the products in the backoffice because the product
website ids are missing since you changed that code. Indeed, we had such missing
trouble when the website id was not set or not set properly.
So I think we need to find out how we find what are the website ids array that
should
be set to the products there. A good way to find out is to look at the regular
Magento product controller code that get hit when you manually add products in
the
back office. May be we can give a hand to you to work out this issue. Send your
feedback and findings anyway and may be we could then Google chat to work this
issue
more closely.
Tell us what is your commitment and confidence about fixing that multi-site
trouble.
We are currently not focused on that issue at Smile, but I think the fix should
be a
very simple thing and we are quite willing to work it out with you as you do
have
such a multi-site real case. You could always speed up the whole thing buy
buying
support from Smile.fr. But as I said, we will spend some time on the issue
anyway
because we want to fix that one.
Regards,
Raphaël
Original comment by rva...@gmail.com
on 27 Aug 2008 at 9:03
Original comment by rva...@gmail.com
on 27 Aug 2008 at 10:46
Original comment by rva...@gmail.com
on 27 Aug 2008 at 10:46
Hey Raphaël,
at the end it was a configuration problem of the category, wich was the cause
for the
invisibility of the product in the magento backend.
I guess we are 100% comitted to the system. the basic syncronization of the
products
and orders with your code is working and that is a good basis. i will figure
out all
existing problems next week and maybe we will buy support from you. at the
moment i
have no budget, but this may change.
thanks for your support.
bye, gunter
Original comment by gunter.k...@gmail.com
on 28 Aug 2008 at 11:45
Hi Gunter,
nice to hear it looks OK for you so far. But please can you confirm which
version is
working: does it require this piece of code to work?
if (Mage::app()->isSingleStoreMode()) {
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getId()));
}
I guess yes, but can you confirm so we commit the change? Regards,
Raphaël.
Original comment by rva...@gmail.com
on 28 Aug 2008 at 3:59
Hey Raphaël,
I'm using the 0.9.6 plus your code snippet:
if (Mage::app()->isSingleStoreMode()) {
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getId()));
}
gunter
Original comment by gunter.k...@gmail.com
on 28 Aug 2008 at 4:03
Hi there
This thread leads me to believe that you have made changes beyond 0.9.6, but
they are
not checked in. Is this correct, and if so, when will they be checked in? I
have made
some bug fixes myself and don't want to work on something thats old.
Original comment by nip...@gmail.com
on 11 Sep 2008 at 2:08
Hi all, this is supposed to be fixed in version 0.9.7 we just released. We
completely
rewored the PHP code, dropping most of it and replacing it by native Magento
webservice who are supposed t be fine.
Original comment by rva...@gmail.com
on 16 Sep 2008 at 10:21
Original comment by rva...@gmail.com
on 16 Sep 2008 at 10:21
Original issue reported on code.google.com by
gunter.k...@gmail.com
on 25 Aug 2008 at 9:46