#!/usr/bin/perl $| = 1; # Enter your server information here. # Any URL included will be able to run the script. require "../var.pl"; require "../master.pl"; require "$siteroot/store/data/settings.dat"; &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/admin/store.setup.db"); &require_supporting_libraries (__FILE__, __LINE__, "$sc_html_setup_file_path", "$sc_commerce_subs_path"); $sc_order_script_url = "http://$domainroot/cgi-bin/store.cgi"; if(-e "$siteroot/store/store.cgi") { $sc_order_script_url = "http://$domainroot/store/store.cgi"; } if(-e "$siteroot/store.cgi") { $sc_order_script_url = "http://$domainroot/store.cgi"; } $currency_script_url = "http://$domainroot/cgi-bin/currency.cgi"; if(-e "$siteroot/store/currency.cgi") { $currency_script_url = "http://$domainroot/store/currency.cgi"; } if(-e "$siteroot/currency.cgi") { $currency_script_url = "http://$domainroot/currency.cgi"; } if ($ENV{'CONTENT_LENGTH'} ne "") { my( @pairs, $pair, $name, $value ); read(STDIN, $value, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $value); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $form_data{$name} = $value; } } if ($ENV{'QUERY_STRING'} ne "") { @pairs = split(/&/, $ENV{QUERY_STRING}); foreach $pair (@pairs) { ($name,$value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $form_data{$name} = $value; } } if ($form_data{'product'} ne "") { push (@files_to_open, $form_data{'product'}); } elsif ($form_data{'type'} ne "") { $form_data{'type'}=~ s/_/ /g; $form_data{'type'}=~ s/\%20/ /g; $form_data{'type'}=~ s/\%26/\&/g; $form_data{'type'}=~ s/\%23/\#/g; $form_data{'type'}=~ s/\%21/\!/g; $form_data{'type'}=~ s/\%28/\(/g; $form_data{'type'}=~ s/\%29/\)/g; $form_data{'type'}=~ s/\%22/\"/g; $form_data{'type'}=~ s/\%27/\'/g; $form_data{'type'}=~ s/\%2F/\//g; $form_data{'type'}=~ s/\%3A/\:/g; $form_data{'type'}=~ s/\%3B/\;/g; $form_data{'type'}=~ s/\%3F/\?/g; $form_data{'type'}=~ s/\%5C/\\/g; $form_data{'type'}=~ s/\%7C/\|/g; $form_data{'type'}=~ s/\%2B/\+/g; $form_data{'type'}=~ s/\%60/\`/g; $form_data{'type'}=~ s/\%7E/\~/g; $form_data{'type'}=~ s/\%24/\$/g; $form_data{'type'}=~ s/\%5E/\^/g; $form_data{'type'}=~ s/\%2C/\,/g; $form_data{'type'}=~ s/\%5B/\[/g; $form_data{'type'}=~ s/\%5D/\]/g; $form_data{'type'}=~ s/\%7B/\{/g; $form_data{'type'}=~ s/\%7D/\}/g; $form_data{'type'}=~ s/\%3C/\/g; } elsif ($form_data{'keywords'} ne "") { &open_cats; } elsif ($form_data{'sku'} ne "") { &open_cats; } elsif ($form_data{'query_price_low_range'} ne "") { &open_cats; } elsif ($form_data{'query_price_high_range'} ne "") { &open_cats; } $search_request = $form_data{'search_request_button'}; $refer_id = $form_data{'refer_id'}; if ($refer_id =~ /^(\w+)$/) { $refer_id = $1; } else { $refer_id = ""; } if ($form_data{'cart_id'} eq "") { $cdata = $ENV{'HTTP_COOKIE'}; @cookies = split(/;/,$cdata); foreach $new_cookie (@cookies) { ($cookie_name, $cid) = split(/=/,$new_cookie); if($cookie_name =~ /cart/) { $cart_id=$cid; $cookie="yes"; } } if ($cart_id eq "") { srand (time|$$); $cart_id = int(rand(10000000)); $cart_id .= "_$$"; $cart_id =~ s/-//g; @months = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug", "Sep","Oct","Nov","Dec"); @days = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); ($sec,$min,$hr,$mday,$mon,$yr,$wday,$yday,$isdst) = gmtime(time + (86400*1)); $timestr = sprintf("%3s, %02d-%3s-%4d %02d:%02d:%02d GMT", $days[$wday],$mday,$months[$mon],$yr+1900,$hr,$min,$sec); print "Set-Cookie: cart_id=$cart_id; expires=$timestr\n"; } } if ($form_data{'cart_id'} ne "") { $cart_id=$form_data{'cart_id'}; } $sc_cart_path = "$sc_carts_directory_path/$cart_id.cart"; $are_any_query_fields_filled_in = "no"; foreach $query_field (@sc_db_query_criteria) { @criteria = split(/\|/, $query_field); if ($form_data{$criteria[0]} ne "") { $are_any_query_fields_filled_in = "yes"; } } print "Content-type: text/html\n\n"; if ($form_data{'add_to_cart_button'} ne "") { require "$siteroot/store/library/cart.pl"; &add_to_the_cart; exit; } elsif ($form_data{'modify_cart_button'} ne "") { require "$siteroot/store/library/cart.pl"; &display_cart_contents; exit; } elsif ($form_data{'checkout'} eq "yes") { $form_data{'no_cart'}="yes"; require "$siteroot/store/library/store_order_lib.pl"; require "$siteroot/store/library/calculations.pl"; require "$siteroot/store/admin/shipping.setup.db"; $form_data{'order_form_button'}="yes"; &display_order_form; &StoreFooter; exit; } elsif ($form_data{'view_cart'} ne "") { require "$siteroot/store/library/cart.pl"; &display_cart_contents; exit; } elsif ($form_data{'order_status'} ne "") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/store_html_search.pl"); &order_tracking; exit; } elsif ($form_data{'order_status_submit'} ne "") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/store_html_search.pl"); &order_tracking_submit; exit; } elsif ($form_data{'advanced_search'} ne "") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/store_html_search.pl"); &advanced_search; exit; } elsif ($form_data{'advanced_search_submit'} ne "") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/store_html_search.pl"); &advanced_search_submit; exit; } elsif ($form_data{'change_quantity_button'} ne "") { require "$siteroot/store/library/cart.pl"; &output_modify_quantity_form; exit; } elsif ($form_data{'submit_change_quantity_button'} ne "") { require "$siteroot/store/library/cart.pl"; &modify_quantity_of_items_in_cart; exit; } elsif ($form_data{'delete_item_button'} ne "") { require "$siteroot/store/library/cart.pl"; &output_delete_item_form; exit; } elsif ($form_data{'submit_deletion_button'} ne "") { require "$siteroot/store/library/cart.pl"; &delete_from_cart; exit; } elsif ($form_data{'order_form_button'} ne "") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/store_order_lib.pl", "$siteroot/store/library/calculations.pl", "$siteroot/store/admin/shipping.setup.db"); &display_order_form; &StoreFooter; exit; } elsif ($form_data{'confirm_order_button'} ne "") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/confirm.pl", "$siteroot/store/library/calculations.pl", "$siteroot/store/admin/shipping.setup.db"); &confirm_order; &StoreFooter; exit; } elsif ($form_data{'submit_order_confirm_button'} ne "") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/process.pl", "$siteroot/store/library/calculations.pl", "$siteroot/store/admin/shipping.setup.db", "$siteroot/store/library/export.pl","$siteroot/store/library/cust_log.pl"); srand (time|$$); $cart_id = int(rand(10000000)); $cart_id .= "_$$"; $cart_id =~ s/-//g; &process_order_confirm; &StoreFooter; exit; } elsif (($page ne "" || $form_data{'search_request_button'} ne "" || $form_data{'continue_shopping_button'} || $are_any_query_fields_filled_in =~ /yes/i) && ($form_data{'return_to_frontpage_button'} eq "")) { &display_products_for_sale; exit; } elsif ($form_data{'cancel'} ne "" && $ENV{'HTTP_REFERER'} eq /paypal.com/) { } elsif ($form_data{'return'} ne "" && $ENV{'HTTP_REFERER'} eq /paypal.com/) { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/process.pl","$siteroot/store/library/calculations.pl","$siteroot/store/library/export.pl","$siteroot/store/library/cust_log.pl"); srand (time|$$); $cart_id = int(rand(10000000)); $cart_id .= "_$$"; $cart_id =~ s/-//g; &process_order_confirm; exit; } elsif ($form_data{'x_response_code'} eq "1") { &require_supporting_libraries (__FILE__, __LINE__, "$siteroot/store/library/process.pl","$siteroot/store/library/calculations.pl","$siteroot/store/library/export.pl","$siteroot/store/library/cust_log.pl"); srand (time|$$); $cart_id = int(rand(10000000)); $cart_id .= "_$$"; $cart_id =~ s/-//g; &process_order_confirm; exit; } elsif ($form_data{'x_response_code'} eq "2" || $form_data{'x_response_code'} eq "3") { print "I'm sorry, an error has occurred. Please return to the orderform, check your data, and try again."; exit; } else { if (-e "$siteroot/index.html") { open(HTM, "$siteroot/index.html"); @html=; close(HTM); $indxhtml=join('',@html); $indxhtml=~ s/cart_id=/cart_id=$cart_id/g; $indxhtml=~ s/refer_id=/refer_id=$refer_id/g; print $indxhtml; } } ####################################################################### # display_cart_contents Subroutine # ####################################################################### sub display_cart_contents { local (@cart_fields); local ($field, $cart_id_number, $quantity, $display_number, $unformatted_subtotal, $subtotal, $unformatted_grand_total, $grand_total); &standard_page_header("View/Modify Cart"); &display_cart_table(""); &cart_footer; exit; } ####################################################################### # Require Supporting Libraries. # ####################################################################### sub require_supporting_libraries { local ($file, $fileline, @require_files) = @_; local ($require_file); foreach $require_file (@require_files) { if (-e "$require_file" && -r "$require_file") { require "$require_file"; } else { print "I am sorry but I was unable to require $require_file at line $fileline in $file. Would you please make sure that you have the path correct and that the permissions are set so that I have read access? Thank you."; exit; } } # End of foreach $require_file (@require_files) } # End of sub require_supporting_libraries ####################################################################### # Display products for Sale # ####################################################################### sub display_products_for_sale { if ($sc_use_html_product_pages eq "yes") { if ($form_data{'search_request_button'} ne "") { &standard_page_header("Search Results"); require "$sc_html_search_routines_library_path"; &html_search; &html_search_page_footer; exit; } &display_page("$sc_html_product_directory_path/$page", "Display products for Sale", __FILE__, __LINE__); } else { &create_html_page_from_db; } } ####################################################################### # create_html_page_from_db Subroutine # ####################################################################### sub create_html_page_from_db { $idcount=0; $full_count=0; local (@database_rows, @database_fields, @item_ids, @display_fields); local ($total_row_count, $id_index, $display_index); local ($row, $field, $empty, $option_tag, $option_location, $output); if ($form_data{'add_to_cart_button'} ne "" && $sc_shall_i_let_client_know_item_added eq "yes") { print "$sc_item_ordered_message"; } if (!($sc_db_lib_was_loaded =~ /yes/i)) { &require_supporting_libraries (__FILE__, __LINE__, "$sc_db_lib_path"); } ($status,$total_row_count) = &submit_query(*database_rows, $form_data{'hits_seen'}); if ($form_data{'product'} ne "" && $form_data{'sku'} ne "") { $select=qq~$keyword_header : Sku \# $form_data{'sku'}~; } if ($form_data{'product'} ne "" && $form_data{'sku'} eq "") { $looper=0; $looper2=0; $pages_total=0; while ($looper < $how_many_rows) { if ($looper2 eq "$sc_db_max_rows_returned"){$pages_total ++;$looper2=0;} $looper ++; $looper2 ++; } $end_page_number=$pages_total+1; $hits_select=""; $looper=0; while ($looper < $pages_total) { $looper ++; $page_number=$looper+1; $option_value=$looper*$sc_db_max_rows_returned; $hits_select .="