xoops forums

Mamba

Moderator
Posted on: 12/29 2:58
Mamba
Mamba (Show more)
Moderator
Posts: 10569
Since: 2004/4/23
#1

eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Resized Image

Oledrion, the eCommerce module originally developed for XOOPS by Hervet, has been updated for XOOPS 2.5.9 and PHP 7.2

Some new features: we have now included a simple test data so you can test the module yourself. This sample data is also used in our demo (see below)

The Alpha release was converted to use namespaces. Because of that, bugs are possible, therefore please test it and submit your fixes and improvements.

TUTORIAL: click here

DEMO: click here

DOWNLOAD: click here

FORK: GitHub

Here is a brief summary of its features:

1/ Vendors manager
2/ VAT (Value Added Tax) manager
3/ Categories manager
4/ Manufacturers manager
5/ Advanced products management (with the possibility of linking an unlimited number of files for each product)
6/ Orders manager
7/ A very advanced Discounts manager
8/ Newsletter
9/ Inventory Control
10/ Online and off-line payment
11/ Use an internal cache to limit Mysql queries
12/ RSS
13/ Integrated with the XOOPS search (and advanced search)
14/ Notifications system for sales
15/ Several blocks
16/ Integration of the XOOPS comments
17/ URL Rewriting
Support XOOPS => DONATE
Use 2.5.9 | Docs | Modules | Bugs

rossb

Just popping in
Posted on: 5/28 21:16
rossb
rossb (Show more)
Just popping in
Posts: 30
Since: 2006/8/28
#2

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Hi;

This regards paypal on Oledrion V-2.34
downloaded from: https://github.com/XoopsModules25x/oledrion

First, a className bug in oledrion/class/oledrion_gateways.php, two places, preventing admin gateway setup for paypal (// = bug):

public static function gatewayClassName($gatewayName)
{
// B.R. return 'oledrion_' . $gatewayName;
return 'Oledrion_' . $gatewayName;
}
public static function asGoodAncestor($gateway)
{
// B.R. if (get_parent_class($gateway) === 'oledrion_gateway') {
// B.R. if (get_parent_class($gateway) === get_class($this)) { - tried, doesn't work
if (get_parent_class($gateway) === 'Oledrion_gateway') {
return true;
} else {
return false;
}
}

Can someone update repo?

And, a question regarding paypal IPN callback

file "oledrion/paypal-notify.php" just exits and, I assume it is to be replaced with the paypal IPN code from https://github.com/paypal/ipn-code-samples

Paypal recommends async operation (don't wait for transaction completion). So, how is oledrion notified that transaction is complete?

Thanks;
Bill

rossb

Just popping in
Posted on: 5/29 10:44
rossb
rossb (Show more)
Just popping in
Posts: 30
Since: 2006/8/28
#3

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Monologue with self...

Correction: the oledrion IPN notifications already in place via:

gateway-notify.php which calls Oledrion_paypal->gatewayNotify in admin/gateways/paypal/gateway.php

Bill

Mamba

Moderator
Posted on: 5/30 10:42
Mamba
Mamba (Show more)
Moderator
Posts: 10569
Since: 2004/4/23
#4

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Thank you for testing this module and providing fixes.

Please note that there are already some changes in my fork at:

https://github.com/mambax7/oledrion

There will be few more coming in the next couple of weeks (hopefully )

Do you have already an account on GitHub? It would be the best to fork the modules and provide directly fixes to them.

Once you start using Git and GitHub, you'll never go back to any other way of coding
Support XOOPS => DONATE
Use 2.5.9 | Docs | Modules | Bugs

rossb

Just popping in
Posted on: 5/30 12:29
rossb
rossb (Show more)
Just popping in
Posts: 30
Since: 2006/8/28
#5

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Hi Mamba;

May get around to github, once I am confident with changes. FYI, for now (too many things to do), I am stuck at Xoops 2.7.1 and (will do diffs, inspect), your fork may be too far ahead of me. Attempting to ecommerce this site: https://www.rossco.org/modules/publisher/item.php?itemid=3

Will be looking at changes in these areas (will expand):

Alter the checkout state machine process so can freely select checkout phases (and omit irrelevant ones):

_MI_OLEDRION_CHECKOUT_LEVEL_3', 'Long - Information, Packing, location, Delivery, Payment, Confirm');

For example, my products are: Package Repository Access, S/W Licensing for Product[a, b, c...], so checkout is: Info, Payment, Confirm

So, I may add to _MI_OLEDRION_CHECKOUT_LEVEL_X, to cover all permutations or use radio buttons (config) to select applicable checkout stages, where unchecked are ignored in checkout state machine.

May also make checkout phases a table driven SM.

Add user hints when required config such as Packing, location, Delivery are missing which is confusing to users (no way to select, empty radio buttons)

Currently I am stuck at never make it to paypal since:
$payment = $h_oledrion_payment->get($payment_id); returns empty in checkout.php, despite existing in db.

Xoops (and internet in general) is pretty sparse regarding Oledrion in general, with paypal integration in particular. I would like to see (and contribute to) this module going Xoops mainstream.

If you know of any active oledrion ecommerce sites that I can inspect, would really help. Your demo site lacks ability to fake purchase anything. Perhaps complete it using Paypal sandbox?

Regards;
Bill

rossb

Just popping in
Posted on: 5/31 12:59
rossb
rossb (Show more)
Just popping in
Posts: 30
Since: 2006/8/28
#6

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

monologue continues...

Got Paypal (sandbox) working, pondering changes (global, to submit to xoops) ...

solicting opinions on checkout order:

Currently: Send orders emails and SMS before initiate Paypal transaction. Assumes order success, incorrect.

Proposed: Send emails, SMS (success / fail) after Paypal transaction complete. Add stub update DB function to update user DB entry upon successful purchase.

Also, IMHO, way too much customer info collected (privacy, phone#, name, city, address). Propose making these fields optional, and, if configured as non-optional, populate from xoops user db if user logged in and fields exist.

Thoughts?

Mamba

Moderator
Posted on: 6/2 4:10
Mamba
Mamba (Show more)
Moderator
Posts: 10569
Since: 2004/4/23
#7

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Quote:
Proposed: Send emails, SMS (success / fail) after Paypal transaction complete. Add stub update DB function to update user DB entry upon successful purchase.

Yes, that makes sense

Quote:
Also, IMHO, way too much customer info collected (privacy, phone#, name, city, address). Propose making these fields optional, and, if configured as non-optional, populate from xoops user db if user logged in and fields exist.

That also makes sense.

Please keep your ideas coming, and feel free to also submit them on GitHub:
https://github.com/XoopsModules25x/oledrion/issues
so we can keep track of them
Support XOOPS => DONATE
Use 2.5.9 | Docs | Modules | Bugs

rossb

Just popping in
Posted on: 6/4 17:26
rossb
rossb (Show more)
Just popping in
Posts: 30
Since: 2006/8/28
#8

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Mamba;

My "plan" is to tarball my "working" module, send it privately to U (or any volunteers) and U can do diffs from release (original) version, design review and, if necessary, cleanup and do another release for V2.34.

Then, U can take changes and roll into V2.35 or whatever U release as latest and greatest.

This is because I am on critical path for my product site and, cannot (yet) take the time for github, ... learning curve. Plus, of course, lack of knowledge regarding Xoops "best practices". I assume having working (and tested) oledrion e-commerce module is of general interest to the xoops community and worth some effort, in addition to mine.

I was pre-mature regarding paypal success. The module was "happy", but Paypal was not due to:
HTTP/1.0, no ssl, port 80 (443 required) and major timing problems getting "200 OK" to Paypal within the required 30 second response time window. All now resolved (< 2 seconds).

I could use some mentoring (I am most definitely not a php guru, but experienced H/W, S/E engineer) and, if there is anyone else interested in collaborating (divide the tasks) with me, let me know.

Seeking input regarding alternate payment gateways for our eastern friends.

Current Changelog:

Updated Paypal Gateway:
- use current protocols HTTP/1.1, ssl, port 443
- send verification emails after payment cleared (previously before)
- offload payment processing (after paypal confirm) to separate thread (pcntl_fork, to decouple paypal transaction time from total transaction time (due to site load)
- include transaction ID in verification emails
Changed oledrion_thankyou.tpl and oledrion_cancelpurchase.tpl to links to point to main site URL (whatever is configured as home module, as opposed to OLEDRION_URL)

I will announce when my site (www.rossco.org) goes live for payments.

Other things to change:
- fix bug with selecting Picture for payment (admin). May be the wrong place to select picture, since it is used to represent gateway and should be a gateway property (ie; paypal image).
- fix templates (checkout) for "Select delivery method form" and "Select payment method form" so that radio button fields are one line each.
- may get rid of redundant validation email, since both customer and vendor already receive emails upon gateway (paypal) transaction complete.

rossb

Just popping in
Posted on: 6/6 20:15
rossb
rossb (Show more)
Just popping in
Posts: 30
Since: 2006/8/28
#9

Re: eCommerce Oledrion MyShop 2.35 Alpha 1 for PHP 7.2

Have taken Mamba's suggestion and created a GitHub issue with working code and changelog:

https://github.com/XoopsModules25x/oledrion/issues/7

Bill