Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Ticket/help/support system


14steve14

Recommended Posts

Is anyone aware of a ticket/help/support system that will work with oscommerce. It would be good if it would work with the latest BS version.

 

I get several questions asked about products or the service we offer, and would like a way to keep them all in one place. Currently this is all done through the contact us form and email replies but nothing is stored or kept by the website. It means I have to trawl through many emails to find things about questions. It may also help the customer keep track of their questions and the answers they receive.

REMEMBER BACKUP, BACKUP AND BACKUP

Link to comment
Share on other sites

Now running on a fully modded, Mobile Friendly 2.3.4 Store with the Excellent MTS installed - See my profile for the mods installed ..... So much thanks for all the help given along the way by forum members.

Link to comment
Share on other sites

I am surprised that no one has ever done this before. It would be nice to have it integrated, but if I have to a separate setup would be better than nothing. Will have to do a bit more digging.

REMEMBER BACKUP, BACKUP AND BACKUP

Link to comment
Share on other sites

@@14steve14 I'm keenly interested Steve and if we can find one that is written in php and that uses MySQL it would nice to integrate some aspects of it with the shop...I think that adding Order Status updates would be extremely useful.  I know that Cord (Mailbeez) has a module for this but I never did look at it closely.

 

Dan

Link to comment
Share on other sites

Link to comment
Share on other sites

@@14steve14 @@burt @@Mort-lemur @@Dan Cole @@toyicebear

 

In the spirit of http://www.oscommerce.com/forums/topic/410107-what-is-the-biggest-default-less-of-oscommerce/page-2#entry1747860 ("if every shopowner using Responsive took care of 1 addon each and coded (or got it coded) properly, that would be hundreds of addons ready for use...in super quick time."), I updated http://addons.oscommerce.com/info/1230 for Edge

 

- changed $HTTP_GET_VARS to $_GET

- changed $HTTP_POST_VARS to $_POST

- hardcoded filenames

- hardcoded table names

- converted front end files to bootstrap

- converted admin files to current template

- removed ticket_application_top.php and integrated into main code

- removed ticket_configure.php and added to store configuration

 

To test:

 

Upload all files (will not overwrite anything) to store

 

Add defines to admin/languages/english.php

 

  define ('BOX_HEADING_TICKET','Support Tickets');
  define ('BOX_TICKET_VIEW','Tickets');
  define ('BOX_TEXT_ADMIN','Admins');
  define ('BOX_TEXT_DEPARTMENT','Departments');
  define ('BOX_TEXT_PRIORITY','Priorities');
  define ('BOX_TEXT_REPLY','Replys');
  define ('BOX_TEXT_STATUS','Status');

 

run ticket.sql

 

Turn on box module in your store

 

Configure through Configuration -> Support Ticket Settings

 

Still some minor changes to be made but please let me know any errors etc.

osCommerce user since 2003! :thumbsup:

Link to comment
Share on other sites

@@14steve14 @@burt @@Mort-lemur @@Dan Cole @@toyicebear

 

In the spirit of http://www.oscommerce.com/forums/topic/410107-what-is-the-biggest-default-less-of-oscommerce/page-2#entry1747860 ("if every shopowner using Responsive took care of 1 addon each and coded (or got it coded) properly, that would be hundreds of addons ready for use...in super quick time."), I updated http://addons.oscommerce.com/info/1230 for Edge

 

- changed $HTTP_GET_VARS to $_GET

- changed $HTTP_POST_VARS to $_POST

- hardcoded filenames

- hardcoded table names

- converted front end files to bootstrap

- converted admin files to current template

- removed ticket_application_top.php and integrated into main code

- removed ticket_configure.php and added to store configuration

 

To test:

 

Upload all files (will not overwrite anything) to store

 

Add defines to admin/languages/english.php

 

  define ('BOX_HEADING_TICKET','Support Tickets');

  define ('BOX_TICKET_VIEW','Tickets');

  define ('BOX_TEXT_ADMIN','Admins');

  define ('BOX_TEXT_DEPARTMENT','Departments');

  define ('BOX_TEXT_PRIORITY','Priorities');

  define ('BOX_TEXT_REPLY','Replys');

  define ('BOX_TEXT_STATUS','Status');

 

run ticket.sql

 

Turn on box module in your store

 

Configure through Configuration -> Support Ticket Settings

 

Still some minor changes to be made but please let me know any errors etc.

 

Oh, and no core changes apart from the language defines!

 

Where are the files. I cant seem to find them.

REMEMBER BACKUP, BACKUP AND BACKUP

Link to comment
Share on other sites

Add defines to admin/languages/english.php

 

  define ('BOX_HEADING_TICKET','Support Tickets');

  define ('BOX_TICKET_VIEW','Tickets');

  define ('BOX_TEXT_ADMIN','Admins');

  define ('BOX_TEXT_DEPARTMENT','Departments');

  define ('BOX_TEXT_PRIORITY','Priorities');

  define ('BOX_TEXT_REPLY','Replys');

  define ('BOX_TEXT_STATUS','Status');

 

Here's a solution that solves this piece of core code change.

 

I'm assuming you've made a box called tickets and it is in the admin/includes/boxes/ directory.  

 

Make a language file for that box which contains what I've quoted and upload that language file into admin/includes/languages/english/boxes/  - ensuring both the box file and its language file have the same name...

 

You can now remove the quoted piece above from the main english file and all is still working :)

Link to comment
Share on other sites

@@14steve14 I'm keenly interested Steve and if we can find one that is written in php and that uses MySQL it would nice to integrate some aspects of it with the shop...I think that adding Order Status updates would be extremely useful.  I know that Cord (Mailbeez) has a module for this but I never did look at it closely.

 

Dan

 

Dan

 

I have been looking into this a bit more and was looking at my hosting accounts softilicious setup and there seems to be many open source ticket systems available. Some of them are php based and use mysql as far as I can see.  I was looking at 'maian support'. I have downloaded the package and will look to see what it looks like and whether I feel that I could make it work within oscommerce.

REMEMBER BACKUP, BACKUP AND BACKUP

Link to comment
Share on other sites

@@14steve14

 

Let's have a look at what @@frankl pulled together and go from there....it would be nice to have something that we can tightly integrate with osC.

 

Dan

Link to comment
Share on other sites

Here's a solution that solves this piece of core code change.

 

I'm assuming you've made a box called tickets and it is in the admin/includes/boxes/ directory.  

 

Make a language file for that box which contains what I've quoted and upload that language file into admin/includes/languages/english/boxes/  - ensuring both the box file and its language file have the same name...

 

You can now remove the quoted piece above from the main english file and all is still working :)

 

Thanks @@burt, english file actually goes in admin/includes/languages/english/modules/boxes/ but I'm sure that's just a typo. That worked like a charm!

 

Apologies to everyone, I didn't check to see if the zip file had uploaded correctly :blush:

 

I have attached it to this post.

 

To test:

 

Upload all files (will not overwrite anything) to store

 

run ticket.sql

 

Turn on box module in your store

 

Configure through Configuration -> Support Ticket Settings

 

Still some minor changes to be made but please let me know any errors etc.

osCommerce user since 2003! :thumbsup:

Link to comment
Share on other sites

@@frankl


To test:

 

Upload all files (will not overwrite anything) to store

 

run ticket.sql

 

Turn on box module in your store

 

Configure through Configuration -> Support Ticket Settings

 

 

Are you aware that you can include the creation of the database tables in the module itself, and not have to run the .sql file manually?

 

Here's an example of (part of) a module I worked on that includes the creation of the tables when installing, and the deleting of the tables when un-installing:

    function install() {
      tep_db_query("CREATE TABLE IF NOT EXISTS latest_news (news_id int(11) NOT NULL auto_increment, date_added datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, status int(1) DEFAULT '0' NOT NULL, important int(1) DEFAULT '0', PRIMARY KEY (news_id))");

      tep_db_query("CREATE TABLE IF NOT EXISTS latest_news_content (news_id int(11) NOT NULL,language_id int(11) NOT NULL, headline varchar(255) NOT NULL,content text NOT NULL, PRIMARY KEY (news_id))");


      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_BOXES_LATEST_NEWS_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '1', now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Latest News Module', 'MODULE_BOXES_LATEST_NEWS_STATUS', 'True', 'Do you want to enable the Latest News module?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Content Placement', 'MODULE_BOXES_LATEST_NEWS_CONTENT_PLACEMENT', 'Right Column', 'Should the module be loaded in the left or right column?', '6', '1', 'tep_cfg_select_option(array(\'Left Column\', \'Right Column\'), ', now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Delete the database tables when removing this module', 'MODULE_BOXES_LATEST_NEWS_DELETE_TABLES', 'False', 'Do you want to delete the tables that were created by this module?<br><i>Note: All created data will be deleted!</i>', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, date_added) values ('Box Height','MODULE_BOXES_LATEST_NEWS_HEIGHT',200,'Height of the box displayed in the store (px)',6, now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, date_added) values ('Scroll Delay','MODULE_BOXES_LATEST_NEWS_SCROLLDELAY',250,'Delay when scrolling, in milliseconds. The larger the number, the slower the scroll',6, now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('On which pages to display the Latest News', 'MODULE_BOXES_LATEST_NEWS_PAGES', 'All', 'On which pages do you want the Latest News to display?', '6', '1', 'tep_cfg_select_option(array(\'All\', \'Home page only\'), ', now())");

    }



    function remove() {
      tep_db_query("delete from configuration where configuration_key in ('" . implode("', '", $this->keys()) . "')");

      if($this->delete_tables) {
        tep_db_query("drop table if exists latest_news");
        tep_db_query("drop table if exists latest_news_content");
      }
    }

Malcolm

Link to comment
Share on other sites

@@ArtcoInc

 

Thanks Malcolm!

 

I know about that, but only the box is a module, so I'm not sure if it would be best practice to have it in there? Would it be better to have a "setup" page where sql is installed at the press of a button?

 

I'm also wary of dropping tables without checking to make sure that's what the store owner wants to do, in another module I wrote I have included the option to drop tables or to keep all the data.

osCommerce user since 2003! :thumbsup:

Link to comment
Share on other sites

@@frankl


I'm also wary of dropping tables without checking to make sure that's what the store owner wants to do, in another module I wrote I have included the option to drop tables or to keep all the data.

 

I've done that too. In fact, you can see in the above example where it tests to see if you want to delete the tables when you un-install the module.

 

Malcolm

Link to comment
Share on other sites

I'm useless. More sql entries need to be added for the admin pages to work correctly :)

 

INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('Minimum Reply Length', 'TICKET_ENTRIES_MIN_LENGTH', '5', 'When you reply this is the minimum number of characters you can use.', '8288', '9', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('Ticket Admin Name', 'TICKET_ADMIN_NAME', 'Admin', 'The name of the admin', '8288', '10', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use status?', 'TICKET_USE_STATUS', 'true', 'Allow admin to change status of ticket?', '8288', '11', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use department?', 'TICKET_USE_DEPARTMENT', 'true', 'Allow admin to change department of ticket?', '8288', '12', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use priority?', 'TICKET_USE_PRIORITY', 'true', 'Allow admin to change priority of ticket?', '8288', '13', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use order IDs?', 'TICKET_USE_ORDER_IDS', 'true', 'Allow admin to use and/or change order IDs for tickets?', '8288', '14', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use subject?', 'TICKET_USE_SUBJECT', 'true', 'Allow admin to use and/or change subject for tickets?', '8288', '15', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin - customer login requirement', 'TICKET_CHANGE_CUSTOMER_LOGIN_REQUIREMENT', 'true', 'Change the use of TICKET_CUSTOMER_LOGIN_REQUIREMENT_DEFAULT per ticket via admin. If you set this to true you can allow / notallow registered customers to view tickets without being logged in', '8288', '16', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());

osCommerce user since 2003! :thumbsup:

Link to comment
Share on other sites

@@Dan Cole Thanks Dan, it's good to go now.

 

 

 

Just upload the files, import the sql file, then change  line 107 in catalog/ticket_create.php from

 

$time = mktime();

 

to

 

$time = time();

 

and add the new sql

 

INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('Minimum Reply Length', 'TICKET_ENTRIES_MIN_LENGTH', '5', 'When you reply this is the minimum number of characters you can use.', '8288', '9', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('Ticket Admin Name', 'TICKET_ADMIN_NAME', 'Admin', 'The name of the admin', '8288', '10', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use status?', 'TICKET_USE_STATUS', 'true', 'Allow admin to change status of ticket?', '8288', '11', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use department?', 'TICKET_USE_DEPARTMENT', 'true', 'Allow admin to change department of ticket?', '8288', '12', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use priority?', 'TICKET_USE_PRIORITY', 'true', 'Allow admin to change priority of ticket?', '8288', '13', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use order IDs?', 'TICKET_USE_ORDER_IDS', 'true', 'Allow admin to use and/or change order IDs for tickets?', '8288', '14', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin use subject?', 'TICKET_USE_SUBJECT', 'true', 'Allow admin to use and/or change subject for tickets?', '8288', '15', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Admin - customer login requirement', 'TICKET_CHANGE_CUSTOMER_LOGIN_REQUIREMENT', 'true', 'Change the use of TICKET_CUSTOMER_LOGIN_REQUIREMENT_DEFAULT per ticket via admin. If you set this to true you can allow / notallow registered customers to view tickets without being logged in', '8288', '16', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());

 

I've tested it in the newest edge (downloaded today).

 

Although it works fine for me I'd appreciate someone else testing it!

osCommerce user since 2003! :thumbsup:

Link to comment
Share on other sites

Very nice Frank! It works great!

 

I installed it and played around with it and only had one error pop up. It's this: Warning: Illegal string offset 'username' in /home/xxxxxx/public_html/name-of-my-admin/includes/header.php on line 49.

 

This is line 49 in my name-of-my-admin/includes/header.php: <td class="headerBarContent" align="right"><?php echo (tep_session_is_registered('admin') ? 'Logged in as: ' . $admin['username']  . ' (<a href="' . tep_href_link(FILENAME_LOGIN, 'action=logoff') . '" class="headerLink">Logoff</a>)' : ''); ?>  </td>

 

Also, at the bottom of name-of-my-admin/ticket_view.php it say: "Customer must not be logged in to view the ticket".  I was able to view the exchange on my site without being logged in. Could that have caused that error? If so, how do I correct that?

 

Thank you very much for this add-on, I truly appreciate it and all of your effort.

 

Bill

Link to comment
Share on other sites

@@ecommunlimited and others, my apologies but I'm leaving shortly for a few days off, it's a long weekend here, I will be back on (my) Tuesday.

 

 

 

I installed it and played around with it and only had one error pop up. It's this: Warning: Illegal string offset 'username' in /home/xxxxxx/public_html/name-of-my-admin/includes/header.php on line 49.

 

 

 

On every page of admin, or just one of the ticket admin pages? Possibly it is the setting Configuration -> Support Ticket Settings -> Ticket Admin Name (TBH, don't even know what that's for!), change that from 'Admin' to something else.

 

 

 

 

Also, at the bottom of name-of-my-admin/ticket_view.php it say: "Customer must not be logged in to view the ticket".  I was able to view the exchange on my site without being logged in. Could that have caused that error? If so, how do I correct that?

 

 

Did you install the additional sql above? That should be a drop down menu with a choice of 'Customer must not be logged in to view the ticket' or 'Customer must be logged in to view the ticket'.

 

Also check in database table ticket_ticket, does that ticket have a value of '1' in column  ticket_login_required?

osCommerce user since 2003! :thumbsup:

Link to comment
Share on other sites

 I was able to view the exchange on my site without being logged in.

 

 

That may happen if you are customer number one on your test site. If so, change line 187 in catalog/ticket_view.php from

 

 

          if ($ticket['ticket_customers_id'] > 1 && $ticket['ticket_login_required']=='1' && !tep_session_is_registered('customer_id') ) {

 

 

to

 

 

          if ($ticket['ticket_customers_id'] > 0 && $ticket['ticket_login_required']=='1' && !tep_session_is_registered('customer_id') ) {

osCommerce user since 2003! :thumbsup:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...