Elxis CMS Forum

Support => Technical support => Topic started by: Amigamerlin on January 06, 2017, 11:42:36

Title: Open Shop 1.6 Incoherency
Post by: Amigamerlin on January 06, 2017, 11:42:36
Ciao Datahell,
I'm facing a little probelm with e-shop.
Scenario:

I've 1 piece of the Object A (physical object) in stock;
User A buy Object A using Paypal but don't do the payment.
In the order status I've Waiting for payment;
The warehouse report 0 as availability;
IMHO It should report 1 since no pyament is done.
This because if another user (User B) buy it and do the payment he has the right to get the last object in warehouse.

Shortly ...stock quantity should be updated ONLY if /when payment is done .
Let me know.
Title: Re: Open Shop 1.6 Incoherency
Post by: Amigamerlin on January 10, 2017, 08:37:03
Datahell,
Open Shop 2.0 now is out.
I didn't have done the update yet, just a question:

In Open Shop 2.0 the order are managed in the same way of Release 1.6? Have the same incoherency managing order?

Let me know.
Thank you .
Title: Re: Open Shop 1.6 Incoherency
Post by: datahell on January 10, 2017, 10:04:52
No, stock quantity should be updated on order regardless the payment status because if the stock is left as is and an other user makes a second order he will have no product to get if there is only 1 product in stock. Then you will have 2 users having purchased the same product! When you make an order the products are reserved for you. If the order is cancelled/deleted the reserved products are released and become available again for other users (this requires stock to be enabled in Open Shop). Open Shop v1.x and v2.x works the same way in this.
Title: Re: Open Shop 1.6 Incoherency
Post by: Amigamerlin on January 10, 2017, 14:32:31
No, stock quantity should be updated on order regardless the payment status because if the stock is left as is and an other user makes a second order he will have no product to get if there is only 1 product in stock. Then you will have 2 users having purchased the same product! When you make an order the products are reserved for you. If the order is cancelled/deleted the reserved products are released and become available again for other users (this requires stock to be enabled in Open Shop). Open Shop v1.x and v2.x works the same way in this.

No Datahell IMHO can't work that way. Say me why user B should not get the last product if payment is not done by user A. In the current condition even If I have 10 pieces of one item and User A get all the 10 pieces without doing the payment I loose the opportunity to sell 10 pieces until I remove the order ?

At least provide an automatic option that provide to cancel the not paid orders after XX days. As remainder An e-mail should be sent to the user that don't do the payment about the order cancellation in xx days.

Anyway IMHO a solution must be found because in this condition I can have hundred of product blocked waiting for payment !!!

Let me know.
Title: Re: Open Shop 1.6 Incoherency
Post by: datahell on January 10, 2017, 21:57:21
I totally disagree. You can create a mess if you don't reserve the purchased products after an order. Consider this: You have 5 items of product A. Customer X buys all of them, the order is saved and selects as payment bank deposit. This is an offline payment method, the administrator will be notified about the deposit even 2 days later. After some hours customer Z orders 1 product A he makes an online payment and gets the product. Now the next day, or after a few hours, customer X makes the payment and waits you to send them 5 A products but you have only 4 in stock! He has placed a legal order, paid for the products and you have no product to give him. Is this right? I strongly believe it is not. You can't convince me for the opposite. Except if you want to play boxing with your customers... This is a simple case, I can make you more complex examples.

Open Shop has cron jobs for various tasks but not for the task you want. But you can use Elxis cron jobs for that task.
Put your custom PHP code in a .php file (any name) and place it in folder repository/cronjobs/
Enable cron jobs in Elxis configuration and you will have automatic deletion of unpaid orders.

Elxis will execute any php file will find in folder "cronjobs" periodically.

I believe most administrators want to delete orders by themselves and not use an automatic deletion mechanism because some orders may be delayed on purpose (eg waiting for a customer to reply, waiting for products to arrive, problems with the payment gateway, etc).
Title: Re: Open Shop 1.6 Incoherency
Post by: Amigamerlin on January 10, 2017, 22:25:28
I totally disagree. You can create a mess if you don't reserve the purchased products after an order. Consider this: You have 5 items of product A. Customer X buys all of them, the order is saved and selects as payment bank deposit. This is an offline payment method, the administrator will be notified about the deposit even 2 days later. After some hours customer Z orders 1 product A he makes an online payment and gets the product. Now the next day, or after a few hours, customer X makes the payment and waits you to send them 5 A products but you have only 4 in stock! He has placed a legal order, paid for the products and you have no product to give him. Is this right? I strongly believe it is not. You can't convince me for the opposite. Except if you want to play boxing with your customers... This is a simple case, I can make you more complex examples.

Open Shop has cron jobs for various tasks but not for the task you want. But you can use Elxis cron jobs for that task.
Put your custom PHP code in a .php file (any name) and place it in folder repository/cronjobs/
Enable cron jobs in Elxis configuration and you will have automatic deletion of unpaid orders.

Elxis will execute any php file will find in folder "cronjobs" periodically.

I believe most administrators want to delete orders by themselves and not use an automatic deletion mechanism because some orders may be delayed on purpose (eg waiting for a customer to reply, waiting for products to arrive, problems with the payment gateway, etc).

Sorry Datahell .. .really sorry ...  now I've understood what you mean !!! I completely agree with you for bank wire transfer and for all the other method that don't provide automatic payment !!!

The problem that I was facing was about an order done using Paypal as payment service (no more payment are allowed in my case). I've get locked some Items for 7 days without getting the payment.

I admit .. I should have written this in my primary post, then all the request was done with this problem in mind !!! :'( :'(  Now that you know the sense of my post, any solution about? 

Let me know and sorry again !!!
Title: Re: Open Shop 1.6 Incoherency
Post by: datahell on January 10, 2017, 22:38:52
You can have problems with just paypal too. This problem is more likely to happen on a shop installation with big traffic. If the selected payment is paypal and payment fails or the customer clicks the cancel button I believe you should delete the payment after a while, you don't have to wait 7 days. If the customer comes back he can repeat the order. The correct act is to reserve the products in any case. I understand that this can lead to low stock but this is less important than the problems will be created with the reverse functionality.

My personal suggestion is not to use the stock option if possible and always try to have enough stock for the products you sell. The "availability" option is something it can help you a lot with that because you can set a product's availability to, for example, "Delivery 1 to 3 days" and that period will be enough to bring the product after an order even if you don't have it in stock.
Title: Re: Open Shop 1.6 Incoherency
Post by: Amigamerlin on January 10, 2017, 22:53:55
You can have problems with just paypal too. This problem is more likely to happen on a shop installation with big traffic. If the selected payment is paypal and payment fails or the customer clicks the cancel button I believe you should delete the payment after a while, you don't have to wait 7 days.

This is what I would like to prevent !!! My idea about the option to have something that delete the orders in XX days was done having Paypal orders in Mind  :'(.