Archive for October, 2011

Oct

30

Client Profile – Toyflow

October 30th, 2011

Visit Toyflow

Toyflow Latest Project

Toyflow.com is a new Canadian-based deal of the day site that sells toys and other children’s products to customers in the United States and Canada. The daily deal site has now been through two phases of development and has been in production selling products for the last month.  The site was designed with some very unique features in addition to the typical features you would see on a deal of the day site.

  • Since the deal of the day site sells its products to customers in the United States and Canada, there were some customizations that needed to happen to accomodate the diverse customer base.
  • The site is fully internationalized when it comes to language and can be configured to display text in both French and English.
  • Toyflow accepts both the Canadian Dollar and US Dollar.  A user can elect to show prices for the products in either of these currencies as well as shipping costs, tax, and discount codes.
  • The site utilizes geolocation to determine which currency to show to a visitor as well as assists the user in filling out their order info by pre-filling their country, city, and state/province based on this geolocation data.
  • A full shipping integration has been built in order to allow the site to compute shipping costs to the United States as well as to Canada.  The entire shipping process has been fully automated.  The client can export orders to UPS Worldship for printing labels, print packing slips, and process returns using RMA numbers.
  • Canadian sales tax is calculated automatically based on the GST and PST taxes in each of the Canadian provinces
  • The site has the ability to feature side deals in addition to the standard deal of the day.  These deals can be scheduled based on date or on inventory.
  • Integration with Moneris for secure credit card payments directly on the site.
  • Ability to tag products for use in reporting.  Products can be tagged and placed into various categories so that sales can be analyzed to see which groups of products are selling the best.  This reporting is built into the site’s administrative console and all reports are exportable to Microsoft Excel.

We at Halfslide Design really enjoyed working with David and Terry at Toyflow on the development of their daily deal website.  They are excellent communicators and have an excellent business plan.  In addition, they did a superb job of planning the website design project and clearly illustrating the requirements of their site.  If you haven’t checked out Toyflow.com yet, give it a look and grab some toys for your kids.

Visit Toyflow

Oct

26

I ran into an interesting problem I’d never seen before this evening. I’m not sure if this is a problem isolated to the CodeIgniter framework because I’ve seen a few forum posts on Sencha/ExtJS reporting the same type of issue. But this was definitely happening for me on CodeIgniter.

The situation was that every time a user exported some data from one of my web applications to csv in Internet Explorer 8 and then opened that csv file, it would invalidate their session.  So, for example, they were running a report in the administrative console that provided results in an html table.  On all of the web applications that I write, I always give the user the ability to export the data to csv through a link above the table.  When a user clicked this link in IE and downloaded the csv file and then opened it, it essentially killed their session and forced them to log back in.  The key thing is that it would only do this if the user opened the file.  If they didn’t open it, their session was fine.

After doing some troubleshooting, I found that the issue was fixed by changing the Content-Type in the header.   In the method that exports the data to csv, it was set up as this:

header(“Cache-Control: must-revalidate, post-check=0, pre-check=0″ );
header(“Content-Type: application/vnd.ms-excel” );
header(“Content-Disposition:attachment; filename=”.$filename );
header(“Content-Transfer-Encoding: binary” );

print $out;

Where the “print $out” is actually printing out the details.

I was able to resolve this problem by changing the content-type header line above to:

header(“Content-Type: application/octet-stream”);

I didn’t see many forum posts about this, so hopefully this blog post will help someone out down the road who runs into this.