Converting product images

by Joe Payne 28. January 2008 00:16

One of my distributors provided me a full catalog export in CSV format including product images. I have thousands of products that have been uploaded into the product database. But the included image files are not in the *.jpg *_i.jpg *_t.jpg file structure needed by AC7. Manually uploading every product image file one-by-one is not an option.
All product image files were named matching the SKU value of each product and in GIF format.

There are several image batch resizer utilities available on the internet. I reviewed a few and went with one from

For $20, I have resized thousands of product images into the the standard size, thumbnail size and icon size. The program also lets you automatically tack on the _i or _t suffix as needed. Every image was converted on the fly into JPG format. A watermark could be automatically added to every image however I elected not to do so. Time to convert all three sizes in my computer was about 10 minutes.
The program supports converting several different formats into a common output format, so your source pictures don't even need to all be the same format.  It also has a handy feature called "Canvas Resize" that helps ALOT when dealing with source images that vary wildly in size.
Tech support has been very responsive and friendly - typically you find one or the other but both is rare.

By converting the images to the proper size, JPG format and required file naming convention, I just moved the converted files into the ~/Assets/ProductImages folder of my AC7 site. All store products immediately pick up the files thanks to the checkbox in the Images admin screen.   Absolutely no effort involved in AC7 to attach the images to the correct products.


Tags: ,

AC7 Articles

PayPal Authorization Error Codes

by Joe Payne 28. January 2008 00:15

Found this on the PayPal developer site researching a customer payment problem.

This is a list of the PayPal payment processing response error numbers and their descriptions. Not incredibly helpful but it's more than Able gives you in the payment summary screen.

Tags: ,

AC7 Articles

Exporting CSV files in Excel 2007

by Joe Payne 28. January 2008 00:14
I used the email lists export (thank you Able for having that feature) to migrate my subscribed users to my list server. The problem was the list server requires quote delimiters and the AC7 file doesn't have them.

I thought Excel could do it by opening and resaving the CSV file. No-go, it's a common problem in Excel 2007 apparently.

Microsoft wrote a nice little VBA.Excel app to do it for you. Here's the link with instructions and the code.


Tags: , ,

AC7 Articles

Adding a new page to AbleCommerce 7

by Joe Payne 28. January 2008 00:13

I don't know if this is the "right" way to do it, but here are the steps I take to add new pages to AC7 with my own user controls for server-side content and functionality.

Most sites will have some sort of custom menu component, as mine does. So the end result URL will be need to be added to your menu structure. If you are wanting something added to the header or footer links, just add a link to your page in the appropriate header/footer content page under Website/Content and Layout in the Admin screen.

Step 1: Make a blank page
Start by creating a new web page. For this example, we'll use foo.aspx as our file name. In the root of the AC7 site there will be a generic blank page called webpage.aspx. Copy that file to foo.aspx. We'll work with foo.aspx from now on. Your page has all the starting elements needed by AC7, but AC7 doesn't know how you want it laid out.

Step 2: Create an AC7 layout
Go in to your Admin screen. Select Website/Content and Layout. Create a new Content page and call it something you like. I preface all mine with my company name so they're grouped together when sorted by name. Let's call ours "Foo Product Info". Don't save it yet, we have a change to make since it contains nothing so far.

Step 3: Populate the layout
Since the user control we are making will be handling design layout, I don't do any design layout (tables, html etc) here. All you need to do is tell AC7 to reference the user control you've created. In the content section of the new entry we've created, simply put one line that says [[ConLib:Custom\Foo-ProductInfo]]. That's it, save it. Now whenever AC7 is told to load that content, it'll look in your ~/ConLib/Custom folder for a user control called foo-productinfo.ascx. Note that the ConLib reference does not include the file extension. You still have to have the extension on the actual file or the server won't recognize it as a user control.
Incidently, you can add any ~/ConLib/Custom/ user control to an existing AC7 page using this exact same technique. If fact, you can even add the pre-built AC7 controls located in ~/ConLib to other AC7 pages or your own pages.

Step 4: Add the URL to your menu
Whatever menu system your site uses, you need to add ~/foo.aspx to it. You're going to need to hit that page in the next step.

Step 5: Load the new page
The empty page we copied, foo.aspx, contained one control that specifies all the AC7 layout parameters. But changing these never worked for me, so I have to manually set the page up in AC7 each time.
Pull up your store in Admin mode. Now click the Store button in the upper right. This will take you to your store with you logged into it as an Admin.
When your store appears, click the new menu option you added in Step 4 for your ~/foo.aspx page.

Step 6: Establish page layout
Once your new page loads, AC7 will complain the user control doesn't exist. That's swell, because it doesn't yet. Ignore it, we're only here to establish layout.
Since you've pulled up the store from the Admin screen, you have the View/Edit control at the bottom of the page. Set it to edit so you can change all the page sections. Set each page layout, content, sidebars and header/footer options you want. Click Apply when you're done. Now the page is starting to look good. Don't close this page, you're going to need it for testing.

Step 7: Make your user control
I use Visual Web Developer 2005 Express for my work. Start building your control, being sure to save it in the ~/ConLib/Custom folder.
Remember leaving that page open in Step 6? Well, now you can test your control without a complete site recompile. Just save the control in VWD and hit refresh on the page. The page will update to reflect the changes you've made.
If you need code debugging, well there's no avoiding a recompile. AC7 is huge so a full recompile takes a little time, be patient.

That's it. You've built a new page, laid it out according to your existing site requirements and integrated a custom user control. You have access to all the same objects, containers, collections etc that AC7 uses within the code of your user control. Just be sure to add the necessary includes as required.


AC7 Articles

Variants Explained

by Joe Payne 28. January 2008 00:12

For those of us who are just getting into the world of ecommerce software products, the term Variants may be somewhat new. The intent of this article to provide some clarity and save you some time discovering what Variants can and cannot do. This is a work-in-progress so check back or subscribe to it.

Variants are a way to present the visitor with choices about a particular product for sale. These choices can be presented as either a dropdown box or as graphical images called "swatches".

Variants versus Kits
Variants differ from kits in such they do not require other product records to be created. A single product record with variants can represent literally dozens of different SKUs. This makes management of several like products much easier and more centralized, but it comes with a tradeoff. It's also important to note that while Kits can do radio buttons, checkboxes etc, they cannot do swatches. If you are "into" the swatches, you must use variants. Finally, variants only allow one selection per group of choices. Kits can have multiple selections which gives them an incredible level of flexibility.

Variants Example
Clothing or Apparel products are the ideal use for variants. Let's take the example of a Lifejacket. Yes, it just so happens that I sell lifejackets so this is my shameless effort at plugging my store. It also makes a great example for variants.
My lifejacket is a fancy one. It's actually a winter coat AND a life jacket. That means it's not only going to have choices for size but also choices for color. Here's the URL to product:

As you can see, I've chosen to use swatches for one option (Color) and the drop down for the other option (Size). Choosing a swatch will present the visitor with the second choice group for Size. Once both choices are selected, the final SKU, price etc will all be determined and the Add-to-Basket button becomes available.
Note that the Price and quantity available update as each variant is selected, however the Item # does not update. This will probably be fixed in a future release.

Variant Options
Note the term "Option": That's how Able refers to a collection of choices. A single "Option" will contain multiple "Choices", of which only one can be selected. AC7 gives the user a nifty interface to manage of all the possible combinations of the option groups you've created. This is known as the "Variant Grid".

Variant Grid
The Variant Grid is where you can see all your possible variations for the choices you've created. AC7 automatically builds the complete grid for you based on all the choices of the option groups you created.
That means, set up all your option groups and choices first and then choose "Manage Variants". Otherwise, you'll lose any changes you made to the variants grid when you add another choice. Sorry, that's just the way it works right now.

Variants and Inventory
Since variants do not have a separate product record, inventory is managed within the variant grid or on the product record itself. You need to maintain each variations in-stock quantity, weight, price, cost and other values. Notice you cannot keep separate packaging dimensions on the variants grid - variants assumes all variations are the same dimensions as the product the variants are created for.
You have two options for the actual inventory values of Variants. You can choose to have a single in-stock quantity amount and use the product record value, or maintain separate inventory amounts for each variation possible from your choices. This is easily changed on the main product screen with the Inventory Mode pulldown.

Variants and Feeds
Since variants are not separate product records, all variants will have the same URL. You may at some point discover that variants are not included in the AC7 feed uploads. My secret expert contact in the ECommerce world (Judy) has explained that you wouldn't want variants included in those feeds.
The reason is important: you could get some negative results from the search engine by uploading many differently described products with the exact same URL. Kits don't have to worry about this situation because they require separate product records.

Variant Sort Order
You can easily control the order in which variants are displayed in either the swatch mode or dropdown mode. Edit the specific choice group you want to change and use the green arrows to move an entry up or down as necessary.

Displaying All Variants
By now you have noticed that not all the variants display at the same time. The visitor must choose the first variant before the next will appear. Able is aware of the need for having all variant groups display at the same time, however the programming is difficult. That's because each variant could conceivably change the next variants possible choices.

Advanced Variants
A really nifty feature is the ability to disable specific variations. Let's use fishing reels as an example. You might have a reel that comes in three models (Model) and is built for left-hand or right-hand operation (Crankside). But wait, they don't make a Model 300, left-handed fishing reel; The Model 300 only comes in a right-handed version.
In the Variants Grid, you can uncheck the "Avail" column for that particular variation to eliminate it from the displayed choices. It's still in the variant list because it was auto-created, but it will no longer be a possible choice to the visitor.

Variants are a fantastic way to offer product selection choices in a creative way. Knowing their strengths and weaknesses can help you close more sales and make product management much easier.

Tags: , ,

AC7 Articles

Month List