Post by Qphoria » Thu Aug 07, 2008 5:26 am

Here are some contributions that I either created for other carts, or just ideas I found useful. My current list that I am working on is:

Released

Dynamic Relevant SubCategories - I see this has been done a few different ways, however none seem to be both dynamic (multiple levels) and show only the relevant children. I have designed mine to use only 1 database query and be completely level-dynamic. It is fully designable through css, and autohides the non-relevant subs for other categories properly. Search History Report - This was a request from "Lasse" that I figured I could do pretty easily. It logs  to a new database table and saves each search with the time, search_term, ip, and the results. Complete with an admin section for managing the entries. Ignore Admin IP - This was a request from "frame" that was a good prerequisite for a future contrib I will be working on. It allows you to enter an IP address to be ignored for report statistics. Useful when testing your store and don't want to be tracked as a customer. To Do:
  • Add either ranged and/or multiple ip support
USPS Click-n-Ship Form AutoFill - This will take all the customer's delivery data, and the store owners return data and populate the Click-n-Ship form for you with one click. Makes shipping with USPS 10x faster! Supports both Domestic & International! Options Weight & Stock - This contrib adds a weight_factor to a product’s options. Each option multiplies its weight_factor against the base product weight to calculate the total product weight in the cart. Now it has support for stock levels including auto-decrement upon checkout. Now Included with 0.7.9!Minimum Order Quanitity - This is a contrib offered by nowhinjing that I packaged up and commented a bit. I also added some conditional support to the files to decrease the risk of errors when certain variables aren't set. All credit to nowhinjing for the functional coding.
- BONUS - I also inadvertently included my "Display Total Weight on Cart" modifications. So now the Cart will show the total weight. USPS XML Rates for shipping - This is a live quote contrib to get USPS quotes from the USPS API server. It supports all postage types and prices, and uses the cart weight and item count to properly retrieve the correct weights. Choose which postage types your store will support. Supports both Domestic and International rate retrieval. Category Listing Options & Multi-add support - This gives the store owner options on how to display products on the category listings. Many store owners would prefer to allow their customers to be able to quickly add products right from the list page, without needed to goto the product info for each one to order. Supports either checklist style or individual add to cart buttons per product. Authorize.net (SIM) Payment Module - This module processes credit cards using the Authorize.net gateway. During checkout, the customer is redirected to the Authorize.net site to complete the payment process, and then returns the user back to your site. With the SIM version, all security and creditcard info is handled at the actual authorize.net server, so local SSL, gateway costs, or other audit worries are not needed. This is similar to how Paypal and Google Checkout work. Upcoming

Authorize.net AIM Payment Module - This will process credit cards using the Authorize.net gateway. It will support full SSL and proper audit requirements
  • Status: 70%
DB-Based Admin Menu - As many contrib makers know, a major Achilles heel in creating new contribs with an admin interface is the file-based setup for the Admin menu system. Each contrib currently has to go through the pain of making a separate copy of the menu controller, language, and template files which also means that the existing contribs with menu changes get overwritten. There is also a language file and a module file that needs to be updated as well. I'm not sure how it has been dealt with for so long, but it stops here!

This contrib puts the admin menu into the database, and does a simple database query to populate the menu. It also removes the unneeded javascript based menu and replaces it with a pure css based menu system. Completely cross-browser supported.

Adding new menus with the new version is as simple as a single sql insert command. You can add your menu option to an existing menu, or even create a new menu category. It is completely dynamic and doesn't care about the order of install. Best of all there are no more menu files to mess with, and new contribs won't overwrite existing ones.

There is a demo on my site however, I have been reluctant to release it as a contrib, in hopes that it will be adopted into the official code for 0.8 or higher. OpenCart Override System - This is an all encompassing project that I really need to talk to the core developers about. I have it working for about 85% of the files, both catalog and admin, with only css and image files to complete, as well as cleaning up some opencart hardcoded stuff. The design is meant to avoid overwriting or editing any of the OpenCart "core" files, so that when future versions are released, they can seamlessly be upgraded without having to make all your customizations manually again. Currently it is being overridden by using a folder with the name of the template you are using, but I also have some ideas for making it down to the variable level for easy plugin support. The template override method also allows most existing contribs to be restructured without code changes. One Page Checkout - This will make the checkout process all on one page.
  • Status: 90% - Currently trying to figure out the ajax stuff to make it update without page refresh
  • Support Thread
Individual Meta Tags - This will create meta tag sections in the database for each product, category, and the main site.
  • Status: 0%
Package Installer - The plan here is to make installing contribs easier by creating a package installer to handle them.
  • Status: 0%
Tabbed Products - This is another popular contrib I created for Zen-Cart, it was completely div, javascript, and css based, manipulating the customers view of the data, without actually changing the actual data itself. This left it completely Searchable and w3 validated.
  • Status: 0%
Customer Tracker - This will log the referrer id of the search page that the customer used to find your site, as well as track his entire trail on your site. As well as log their IP and country. Great for finding out who is finding you and how, as well as why they might not have ordered based on some information on a particular page.
  • Status: 0%
Admin-Based SQL Patcher - This will allow you to run sql files and patches from within the admin section, instead of having to log into phpmyadmin every time.
  • Status: 0%
Package Installer - The plan here is to make installing contribs easier by creating a package installer to handle them.
  • Status: 0%
Shipping Estimator - Utilize the shipping method lookup during the checkout process for a sneakpeak at the shipping costs during shopping.
  • Status: 0%
I understand that some of these contribs may already exist in the commercial realm, and I mean no disrespect to their creators. However, in the interest in helping this cart software and community to grow, all of my contribs will be released pro bono.

Donations are of course welcome, but not required.
Last edited by Qphoria on Wed Dec 31, 2008 12:24 am, edited 1 time in total.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by jameswallace » Thu Sep 04, 2008 6:10 am

Thank you.
This is very nice that there is still people out there that have a heart for others.
Regards,
Robert :)

Newbie

Posts

Joined
Wed Sep 03, 2008 2:48 am

Post by JohnnyO » Fri Sep 05, 2008 12:54 am

The authorize.net module would defiantly kick up the opencart hype a little.  Having to use paypal is what turns many people away.

Your the man!  -- Just thought I'd let you know

If you make it idiot proof, they will just build a better idiot.


User avatar
New member

Posts

Joined
Wed Nov 14, 2007 7:31 am
Location - Denver, CO - USA

Post by Qphoria » Fri Sep 05, 2008 1:44 am

A little update.

I've gotten my feet wet the the Authorize.net module and their API guide is pretty straight forward but there are a lot of security & audit gotchas to watch for.

So I am first going to code an "Authorize.net (SIM)" module (which is about 90% done).
After that, assuming it works well, I will then look at the "Authorize.net (AIM)" module (about 5% done).

What does that mean?

Authorize.net (SIM) is like paypal, where you leave the site to make the credit card purchase on authorize.net's secure site, and then it returns them back to your site to finalize the order. This is similar to how Paypal and Google Checkout works.
PROS:
- No need for SSL on your site
- No risks with customers credit card info since it is handled at authorize.net's secure site

CONS:
- Customers have to leave your site momentarily
- If the customer doesn't complete the process, or a transmit error occurs, it can leave the order in an unknown state.

Authorize.net (AIM) is on-site processing, where the customer enters all of their information on your site and sends it over an ssl curl session to the authorize.net processing site, and handles the response.
PROS:
- Customer never leaves site
- Processing occurs during order confirmation. If it passes, the cart processes and saves the order all in one step

CONS:
- Have to use SSL cert
- Have to have proper credit-card auditing in place
- Have to pay $10/monthly gateway fee

There is a valid need for both, but for now the SIM method is A) Easier, and B) Universally usable whether you use ssl or not, and OpenCart needs at least one USA CC payment processing module.
Last edited by Qphoria on Fri Sep 05, 2008 9:00 am, edited 1 time in total.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by Qphoria » Fri Sep 05, 2008 8:59 am

LOL sh!t... I just spent about 5hrs creating an Authorize.net SIM module, and I just came across:
http://forum.opencart.com/index.php/top ... ml#msg5058... People really need to learn to upload their contribs to the download section to keep track of this.. Perhaps some moderators can start crackin the whip :)

At any rate, I've gotten a bit farther than that one so I'll finish mine up and upload it properly
Last edited by Qphoria on Sat Sep 06, 2008 3:35 am, edited 1 time in total.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by jameswallace » Sun Sep 07, 2008 4:13 am

Hi Qphoria
I have a question could you please email me. onegoodprice@yahoo.com
Thanks.

Newbie

Posts

Joined
Wed Sep 03, 2008 2:48 am

Post by Qphoria » Fri Sep 19, 2008 5:20 am

After spending the day trying to add proper handling for pre-processed orders.. I realize that it just isn't worth it. I'm neck deep in the code and its ballooned into a whirlpool of madness. Trying to maintain dynamic reference ids across sessions and database id's is a recipe for going crazy.

After researching it a bit with other carts, they all come to the same damn conclusion... The risk of desynchronizing the order when a customer has to leave your site. Paypal fixed it with their IPN code. Authorize.net doesn't offer that. Instead they offer the AIM (advanced integrated method).

I'm going to release the SIM module with only the normal post-processing functionality. It works perfectly when the customer does everything they are supposed to do, but be aware that orders can be lost if they don't click the final "return to store" button. Most customers I would assume would follow through all the way but the warning is there.

I am going to switch focus back on the AIM version that integrates into your store via SSL and removes all risk of mismatching the order and payment, since the customer never leaves your site. The lesson learned in SIM module creation: Don't waste your time  ???

Q

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by bruce » Fri Sep 19, 2008 10:30 am

try this in catalog\library\cart\order.php in the constructor

Code: Select all

		//
		//  No longer delete this information as it is useful history AND
		//  allows the store owner to recover from the paypal issue of
		//  Payment completed, IPN not received and customer does not return.
		//
		//$sql = "delete from order_data where expire < '?'";
		//$this->database->query($this->database->parse($sql, time()));


Active Member

Posts

Joined
Wed Dec 12, 2007 2:26 pm

Post by Qphoria » Fri Sep 19, 2008 11:11 am

lol but the comment above the code says:
"No longer delete it because it is useful"
:D

The delete wasn't really the problem. The rough part was trying to pre-process the order and put it in the actual order table, but leave it in the customers cart so they don't see an empty cart. But if the customer were to leave without paying, or refresh that order confirmation page, or go back and change something in their cart, OpenCart would generate a new reference id, breaking the link to the already pre-processed order's previous reference id. But its not really an OpenCart limitation. Its just the nature of a 3rd party SIM style of payment system. It just became one huge tarball.

Meanwhile the AIM module is actually a lot easier than I thought and I'm nearly done with it anyway so I'll focus on that for now.
Last edited by Qphoria on Fri Sep 19, 2008 11:13 am, edited 1 time in total.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by Qphoria » Wed Oct 08, 2008 11:17 pm

Now that 0.7.9 RC1 has been released, it is important to note that some of my contribs will need to be updated.

Mainly the ones that supported Min Ord qty as a contrib, now need to remove the dual existence references to that, as it is now part of the core.

Contribs Compatible with 0.7.9:
  • Search History Report
  • USPS Click-n-Ship Form AutoFill
  • DB Admin Menu
Contribs NOT yet Compatible with 0.7.9:
  • Ignore Admin IP
  • Category List Options
  • Options Weight & Stock
Contribs not yet tested with 0.7.9:
  • Authorize.net (SIM)
  • USPS XML Api Real-time Rates
  • Dynamic Relevant SubCategories
Updates will be coming shortly for the ones that need it
Last edited by Qphoria on Wed Oct 08, 2008 11:21 pm, edited 1 time in total.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by adam777 » Mon Nov 10, 2008 9:38 pm

One Page Checkout and a quick way to skin the cart. That's what would be great.  :)

User avatar
New member

Posts

Joined
Fri Aug 01, 2008 4:07 pm

Post by Qphoria » Mon Nov 10, 2008 9:53 pm

One Page Checkout I've actually started playing with.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by Qphoria » Tue Nov 11, 2008 1:18 am

Ok I played with it a bit more
Here's a rough semi-working concept

Things to note:
- This was just a proof of concept for myself
- It is not necessarily anything like the version that will be in 0.8
- It uses refresh POST instead ajax because it was easier
- It has little to no error validation

That being said, here is how to see it:
1. Goto: http://unbannable.com/oc07c/index.php?c ... ount_login
2. Login with: demo@demo.com / demo
3. Click on "Cart" in the header
4. Click the checkout button on the cart page (not the link in header)
Last edited by Qphoria on Tue Nov 11, 2008 1:20 am, edited 1 time in total.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by adam777 » Tue Nov 11, 2008 2:07 am

WOW!

If that One Page Checkout could be in RC4 it would be great!  ;D

It's quicker than the one in Magento!
Last edited by adam777 on Tue Nov 11, 2008 2:10 am, edited 1 time in total.

User avatar
New member

Posts

Joined
Fri Aug 01, 2008 4:07 pm

Post by Qphoria » Tue Nov 11, 2008 2:13 am

It is possible that I could release it as a contrib for 0.7.9 but the official version will not occur until v0.8 and will likely look and possibly act different

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by adam777 » Tue Nov 11, 2008 2:19 am

Qphoria wrote: It is possible that I could release it as a contrib for 0.7.9 but the official version will not occur until v0.8 and will likely look and possibly act different
It would make a great contrib. It's what a lot of people are looking for  ;)

User avatar
New member

Posts

Joined
Fri Aug 01, 2008 4:07 pm

Post by jty » Tue Nov 11, 2008 8:48 am

adam777 wrote: It's quicker than the one in Magento!
Everything is faster than Magento. My pet snail is faster than Magento  8)

Q, if you release it for 0.7.9, I promise I will break it for you.
I am ready to break something else
Please  :P

jty
Active Member

Posts

Joined
Sat Aug 30, 2008 8:19 am

Post by Qphoria » Tue Nov 11, 2008 9:08 am

Ok.. i also have a different layout:

Using the first 3 steps i posted above, use this new url for step 4, instead of clicking the checkout button.:

http://unbannable.com/oc07c/index.php?c ... t_onepage2

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by jty » Tue Nov 11, 2008 9:44 am

Excellent ...... except .............

We got the "jump" problem
I went researching the jump problem the other night. I found a fix ...... but it was in asp. LOL.
Another site talked about using javascript to record the screen position and refresh back to that position but then I got lost in the techo talk  :'(

For your CLO, I have now modified it to jump back to the product where the buy button was pressed using a simple anchor tag. It's still a jump but at least it is not jumping to the "top" of the page.

May I have the files for this checkout please. I understand it is pre-release and I promise I won't ask for my money back (that I never paid)

jty
Active Member

Posts

Joined
Sat Aug 30, 2008 8:19 am

Post by Qphoria » Tue Nov 11, 2008 11:05 am

lol no we don't got the jump problem. We just have the quick'n'dirty POST implementation until I implement ajax.+
And once I add it here, I can add it to the CLO.
Last edited by Qphoria on Tue Nov 11, 2008 11:12 am, edited 1 time in total.

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am
Who is online

Users browsing this forum: No registered users and 3 guests