Page 1 of 1

Need Guidance

Posted: Tue Jul 17, 2012 10:49 am
by Vedran
Greetings everyone,

After several days, finally I was granted forum access :)

My company is tasked to migrate some old e-cart solution to AC. I am in evaluation process to determine is AC good for us.

Old DB has close to million records, and is totally incompatible with AC DB. Our task is to write parser. After lots of reading AC documentation, we have devised a parser that works. However we would like experts opinion on this matter.

These are our findings:

1. Our products go to ac_Products database

2. Also we have manually entered all categories

3. We need to manually parse and increment values for ac_CatalogNodes table for all four fields
( CategoryId,CatalogNodeId,CatalogNodeTypeId,OrderBy )
We have products table (old one) that needs to be parsed to ac_Products. Pur understanding is that OrderBy field is critical for speed. Is this correct?

4. We are going to have some producttemplates, and we also need to take care of it as well. What table are involved?

Is there something else that we did not see, and that it might impede us from doing it?
Any guidance from some one who did it before us?

Any input is valuable.
Thank you for your help on this matter


Vedran

Re: Need Guidance

Posted: Thu Jul 26, 2012 10:25 pm
by Shopping Cart Admin
Hello Vedran,

Don't really have all the answers but there is a post in the wiki about importing categories.

http://wiki.ablecommerce.com/index.php/ ... Categories

I'll also move your post to the AbleCommerce v7 discussions.

Re: Need Guidance

Posted: Tue Jul 31, 2012 7:53 pm
by AbleMods
Vedran wrote:After several days, finally I was granted forum access
Welcome to the forums! I'll try to answer your questions as best I can.
Vedran wrote:1. Our products go to ac_Products database
That is correct. ac_Products is where you want to load the products.
Vedran wrote:3. We need to manually parse and increment values for ac_CatalogNodes table for all four fields
( CategoryId,CatalogNodeId,CatalogNodeTypeId,OrderBy )
We have products table (old one) that needs to be parsed to ac_Products. Pur understanding is that OrderBy field is critical for speed. Is this correct?
The OrderBy field is used to determine the sort order of the various catalog nodes within the catalog tree. This permits the admin the ability to control the order in which the catalog is displayed both on the admin side and shopper side.

The cataloging system is Able was complex for me to grasp at first. Essentially ac_CatalogNodes has an entry for every category, product, webpage and link in your catalog. When you link a product to multiple categories, it will be represented in ac_CatalogNodes multiple times. Once for each "connection" to another part of the catalog.

You might find it far, far easier to use the free Dataport utility to import your base catalog. Massage your old catalog into a CSV file compatible with Dataport. Then let Dataport build the entire catalog structure relationships of ac_Categories, ac_CategoryParents, ac_CatalogNodes and ac_Products.

Once Dataport is done, it's a simple task to populate Product Templates either through code or the admin interface.

If you do decide to build ac_CatalogNodes yourself, you want to make sure you populate ac_Products and ac_Categories first. That'll give you the identity key values you'll need to populate ac_CatalogNodes correctly.
Vedran wrote:4. We are going to have some producttemplates, and we also need to take care of it as well. What table are involved?
Product templates are stored as follows:
ac_ProductTemplates - parent record identifying each separate product template definition
ac_ProductTemplateFields - defines the individual fields associated to a given ac_ProductTemplate record.
ac_ProductProductTemplates - this table serves a one-to-many relationship between a specific ac_Product and multiple ac_ProductTemplates

So to build a product template completely in code, you first build a record in ac_ProductTemplates. Then add all the template fields you want to ac_ProductTemplateFields. Finally, associate the ProductTemplateId with the ProductId in ac_ProductProductTemplates.

Dataport can save you a lot of base work. Often I'll use Dataport to load up the bulk of data, then write small ASPX pages to bring in smaller things like email lists, group memberships etc.

I would strongly suggest you light up SQL Profiler and do some query performance analysis after your data is loaded. Given the size of your old system, there's bound to be some queries that could benefit from addition indexes.

The forums have an enormous wealth of information, so don't hesitate to ask if your forum search doesn't turn up an answer. You'll also find several useful articles in the Helpful Topics forum.

Good luck with your project !