Magento - automated order extract - EAV vs flat files - magento

I want to build an automated routine that exports orders from Magento to another ERP. I started down the road of the magento SOAP/XML API's. However we are finding this solution slow for large numbers of orders.
Now I realize that the flat order tables (sales_flat_order, sales_flat_item etc) seem to contain all of the information I need. Is this file reliable and kept up to date? Is there anything that I will be missing in this case (other than custom attributes of course). Are these files likely to change in event of upgrade?
Magento API's
http://www.magentocommerce.com/api/soap/introduction.html
Magento Data model
http://www.magentocommerce.com/wiki/2_-_magento_concepts_and_architecture/magento_database_diagram#magento_database_downloads
thanks

Assuming you are using a newish version of Magento (1.4.2.0+) I would say the sales_flat_* tables should be entirely reliable (might be beforehand also, I'm just unqualified to comment). The api works with an instance of sales/order, which is based off of that table anyway.
With regards to custom attributes, if these are something you will need for your export, you can actually make Magento copy the information into the sales_flat_* tables without too much fuss.

Related

Docx generation - reuse

I'm looking to generate docx and pdf documents in my java application. The best, most cost effective solution seems to be xdocreport - I've started using it and it's good.
However, xdocreport doesn't seem to allow reuse of common sections across documents.
Eg.
I want to create two documents - order and invoice. Both have a customer section which should be identical. It would be nice if I could maintain a single customer template that can be applied to both documents.
Are there any libraries (free or paid) that have this functionality.
The commercial product Docmosis can create DocX and Pdf and has an inert/merge capability meaning you can put common content into a template and merge/reference/insert with other templates. It has a Java API and you can try the cloud service without having to install anything to see if it suits your purposes.
Please note I work for Docmosis.
I hope that helps.

Analyzing community builder database

My server is Joomla 2.5, the version of CB is 1.8.1 and it runs on a MySQL database.
I would like to analyze the data in my database and create simple reports, for example: a list of all email addresses of all subscribers in a given period in time.
Is the right tool for this available in CB, in Joomla as an extension or should I go for a separate tool to dive into the database directly?
I searched in the CB site for reporting but didn't find a plugin for it, did find some 'advanced search' extensions for Joomla but they do not support reports as such.
I had to write custom components for this kind of requirements a few times, if you are familiar with Joomla coding I strongly suggest this approach it will be the most effective unless you need strong business intelligence, in which case you'd better switch to a bi tool.
The difference is: if you can pull all the data you need with just a few simple queries, write them yourself; if you need to analyze data, use a proper tool.
If you however are not a developer you might get away with a reporting tool, or a versatile CCK for Joomla.
Community Builder won't do this on it's own.
The easiest and quickest way to achieve this is to use an extension like ChronoForms and/or ChronoConnectivity which can help retrieve and display the required data from one or more tables.
ChronoForms: http://extensions.joomla.org/extensions/contacts-and-feedback/forms/1508
ChronoConnectivity: http://extensions.joomla.org/extensions/directory-a-documentation/directory/5661
These extensions make it easy to restrict a report to a particular group etc without having to write code.
There are plenty of examples in the chronoengine.com FAQs and the forum if you need help.
Probably the original question is not valide anymore, about an year later, but now there is a component that does what you need if you use ”registerDate” field as search criteria. The name of the component is JEmbedAll and you can find more information about that here: http://www.goldengravel.eu/jembedall-manual#.VVph_bvyNC0

MAGMI - Mass import Magento

Can you guys share some pros & cons about Magmi ?
I am evaluating for our Magento 1.12 implementation, Since we are updating feeds frequently also the feed contains huge data.
Thanks.
I've been using Magmi for almost a year now to perform mass Magento imports for wide client base.
Pros:
Very Fast imports (thousands of products in a matter of seconds)
Plugin system that allows you to extend the core functionality of Magmi (extremely powerful for custom data imports)
Surprisingly stable and maintained for the latest versions of Magento
Cons:
Lacks authentication (you'll have to setup some authentication so nobody can access it. It's pretty easy to do) -
Magmi's latest versions now include an authentication layer that requires a Magento Admin Login to access it's UI.
The UI is somewhat unintuitive and ugly (it's by developers for developers. It wasn't made to look pretty)
It will make you realize how silly the standard Magento import methods are (lets face it, they're slow)
For your case (updating feeds frequently), Magmi will work just fine. You can essentially upload a new CSV, and call Magmi either from an HTTP request, or using the included command line functionality. It's very straightforward to setup and easy to maintain.

Magento product translation for multiple multi-lingual websites

I am wondering how to manage my product catalog for Magento efficiently. I keep one stock of products and sell them through multiple websites, those websites are in turn all in multiple languages.
The most common advice is to create a store for each website and a different store view per language, in which you can translate the product description. This doesn't seem very efficient to me. For example, if you have 4 different websites, each offering products in English and in Spanish, you have to do the same translation 4 times for each website. This becomes very cumbersome for multiple websites in multiple languages and a lot of products.
What I ideally would do, is maintain one translation per language and keep track of my product stock centrally (ie. still be able to manage the product globally). How can this be achieved in Magento?
Update: after digging around some more, asking in IRC channels, posting on forums, and searching the heck out of Google and the Magento Connect extension repository, I am starting to realise this is one of Magento's short comings. I am going to develop my own solution for this. Please leave a message here if you are interested in the same functionality, if there is enough response I will see if I can make it available for others.
Unfortunately there is no good answer to this question. Product texts are typically entered on the store view level, like you already discovered. Having multiple store views in the same language (but under different websites) will create a burden and overhead to configure.
If this was my store, I would pick one of these routes:
Load data from an external source, where product data is already nicely managed. Managing product data in Magento can be a pain.
Or, if you MUST do it in Magento, create a custom module to update all the relevant fields across multiple websites. You could create an event listener "on product save", that updates all texts for store views with the same language.
or, you can override the product resource model, so product names, descriptions and some other texts are loaded differently from the database (but this would definately be the most complicated route).
In App/Locale/ Directory this is Global locale directory you can read it in all your websites managed from one back-end !
And you can set the local directory for each storeview from
system->configuration->design->Translations
so basically you can use the same locale for different themes as long as you maintain the files updated with all the variables !
I was running 9 websites with different store views from one backend i never had issues with translations !

Why does Magento's translations fail after an unsuccessful payment transaction?

we are using magento with onestepcheckout module in our shopping system. But when the payment process fails and when we get an error about payment, not all but some translations fails on the checkout page.
Has anybody face this problem before. I will be very happy if there is an solution.
P.S. I can solve the situation by hard-coding the translations. But I dont want to use this method.
Thank you
When a module developer creates a module, it's up to them to make sure that each and every phrase that could be translated is marked for translation. In Magento this means
Strings in template files are passed through the ->__ method
Labels, parameters, and other strings in XML fiels are marked with translate attribute
As an individual developer, if you're not developing applications/modules intended for translation it's easy to fall into the habit of not doing the above. Also, the areas of Magento's XML configuration system that can (vs. can't) be translated aren't well documented. It's easy to miss a string or two, and localization (along with everything else) is almost never tested.
All of which is a long way of saying, contact your vendor and file a bug. If you want to play capitalism, since you've already hard-coded the translations, fix the core problem yourself and offer to sell the solution back to the onepage people.

Resources