Jump to content

[SOLVED] - Pay Deposit For Pre-Ordered Products


Recommended Posts

Prestashop 1.6.0.8

 

Hi

 

I have a requirement for one of our websites to take a 10% deposit payment for products. So it should be applied at checkout rather than per product.

 

These products will not be delivered for upto 9 months, so we are allowing pre-orders, but want the customer to have the option to pay in full OR pay a deposit. We are using deposit payments as a guide to how much stock we need to order, so we need to know what products have been part-paid for.

 

For example, the customer pays a 10% deposit of £100, leaving a balance to pay of £90 when the product is in stock. So we have the product on the website advertised at full price but only want to charge 10% if the customer wishes. Our payment method is Sagepay.

 

I've thought about using the voucher system, but the voucher created would need to apply only to the products the customer ordered.

 

I've searched around the forum and none of the answers seem to solve my problem.

 

Are there any modules available, or has someone done this before?

 

Thanks as always for any help.

 

Edited by prestatent (see edit history)
Link to comment
Share on other sites

Thanks Razaro

 

I've just looked at this. While it does part of the job, I need the process to be as automatic as possible with the customer paying for the remainder of the product via the website.

 

As you say, I think I may have to modify the sagepay module to get exactly what I need. Probably the best way to do this would be to create a voucher for the customer based on the products ordered, which they can then use to redeem against the full price of the product when it arrives in stock.

Link to comment
Share on other sites

  • 3 weeks later...

Have resolved this issue.

 

Still in testing but it's looking like it will work for all payment modules as I've added an override to the OrderConfirmationController.php.

 

1. Create additional attribute on products for part or full payment.

 

2. When part payment attribute chosen and paid for, order is created as normal and voucher(s) are created for each product matching the part-payment attribute, so that they can only be applied to the products already purchased.

 

As I say, I'm still in testing at the moment but the solution is looking good.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hi

 

Programming part is not complete at this point, however below is a partial solution that may help you get going with no programming. This solution does not create any vouchers but does allow you to take a partial payment.

 

1. Add new Catalog->Product Attributes. Call it "Payment Amount"

2. Add 2 values to this new attribute. Call one "Full Payment" and the other "10% Discount".

3. Add new Price Rules->Catalog Price Rules. Set the following values :

- Name = 10% Deposit Payment
- Reduction Type = Percentage
- Reduction = 90

Add a new condition group. Select "Payment Amount" attribute and "10% Deposit" value. Click on "Add Condition" button.

See attached images.

4. Add the attribute to a product combination. For example:

- if you have a t-shirt, size = small, colour = orange, you would add the "Full Payment" attribute value to this combination.

So, what you will end up with is that you have two products almost exactly the same with the only difference being the Payment Amount, eg:

- T-shirt, Colour = Orange, Size = Small, Payment Amount = Full Payment

AND

- T-shirt, Colour = Orange, Size = Small, Payment Amount = 10% Deposit

See images for examples.

While this is not a perfect solution and does not create any vouchers, it does not involve any programming solution.

The overhead is with having to create two combinations for each product, one with full payment and one with 10% deposit.
 

 

post-374128-0-24206400-1415882257_thumb.jpg

post-374128-0-68714500-1415882257_thumb.jpg

post-374128-0-12718900-1415882258_thumb.jpg

post-374128-0-59131700-1415882258_thumb.jpg

  • Like 2
Link to comment
Share on other sites

×
×
  • Create New...