A partial refund in PrestaShop should be settled at the level of specific order items and quantities. First, determine what the customer is returning and how much they actually paid for it. Then record the request, receipt of the parcel, and the refund separately. This way, returning one product does not turn into cancelling the entire order, and the next support agent can see what has already been done.

Partial order refund: selected product, item list and return parcel

This guide is for store owners and after-sales support teams. It shows the process and a demonstration calculation for a cart with three items. The amounts and products are examples; they do not come from a customer order.

1. Start with the order, item and quantity

The message “I’m sending back the mug” is not enough for safe settlement. The order may contain two mugs, a different colour of the same model, or a product purchased as part of a bundle. The request should indicate the order number, the correct item, variant, and the number of units being returned. The person handling the case must also check previous returns related to that purchase.

The basis for the amount is the historical order record. The current catalogue price may have changed after the purchase, and the discount may have resulted from a product promotion, a cart code, or purchase conditions. Using today’s price or ignoring a previous settlement gives an incorrect result, even if the return form itself works correctly.

  • Identify the customer and the order in the manner adopted by the store; the public order number alone should not disclose their data.
  • Select the item and variant from the order instead of copying the name from the current product page.
  • Check the quantity purchased, previously returned, and remaining to be settled.
  • Record the date the statement was received regardless of the later parcel delivery date.

2. Separate the status of the request, parcel and money

The most common misunderstandings start with a single status: “return completed”. For the warehouse, this may mean a received parcel; for accounting, an issued document; and for the customer, money in their account. These events are not the same.

The table below is a proposed workflow, not an interface screenshot or mandatory module status names.

Demonstration flow of a partial refund
Stage What you record What you check before moving on
Request received Order, items, quantities, date and type of case. Whether the scope is unambiguous and does not overlap with a previous return.
Parcel in transit The agreed return method and parcel number, if available. Whether the customer received the correct address and instructions.
Goods received The actually received variant, number of units and inspection result. Whether the delivery matches the request and whether any discrepancy needs clarification.
Amount approved Products, discounts, delivery costs and any separate settlements. Whether the calculation takes previous payouts into account.
Payout ordered The method, amount and operation identifier. Whether the operator accepted the request and what status was returned.
Payout confirmed Confirmation of operation completion and documents. Whether the case history and customer message match the actual outcome.

Receipt of goods should not automatically mean they are available for sale again. First assess their condition and determine the warehouse decision. Likewise, a correction document or a refund entry in the panel is not in itself proof of a transfer.

3. Example: one mug from a discounted cart

Let us assume the order is: a bottle for PLN 100, two mugs at PLN 50 each, and a blanket for PLN 100. The product value is PLN 300. The cart discount is PLN 30 and in this example applies proportionally to all products. Delivery cost PLN 15, so the customer paid PLN 285. They return one mug.

Demonstration example — gross amounts in PLN
Item Value before cart discount Assigned discount Value after discount Returned units
Bottle, 1 × PLN 100 PLN 100 PLN 10 PLN 90 0
Mug, 2 × PLN 50 PLN 100 PLN 10 PLN 90, i.e. PLN 45/unit 1
Blanket, 1 × PLN 100 PLN 100 PLN 10 PLN 90 0
Total products PLN 300 PLN 30 PLN 270 Product part of the refund: PLN 45

PLN 50 minus PLN 5 of assigned discount gives PLN 45 for the returned mug. We do not subtract the entire PLN 30 discount from one unit, and we do not refund the customer the price before the code was applied. However, the way the discount is allocated must be related to its actual conditions: a discount only on the bottle should not reduce the value of the mug.

The table calculates the product part and does not determine the final amount due. The original delivery cost, return shipping cost, and any return label require separate determination. In the case of a partial withdrawal, do not apply the automatic rule “we always refund the full delivery” or “we never refund it” without analysis. Do not deduct the label fee just because the field exists in the system.

If the customer later returns the second mug, support should see the first payout. Checking the remaining quantity and amount is necessary for subsequent requests and when correcting a failed operation.

4. Withdrawal from the contract vs complaint

In a typical online purchase, a consumer may, as a rule, withdraw from the contract without giving a reason within 14 days; there are statutory exceptions. A complaint due to non-conformity of goods with the contract, on the other hand, concerns a problem with the goods and has its own conditions and possible claims. The form should make it possible to identify the type of case instead of treating every complaint like a standard return of purchase. Explanations: UOKiK — withdrawal deadlines and UOKiK — non-conformity of goods with the contract.

UOKiK also distinguishes between the costs of delivering the order and the costs of returning the goods. In the case of withdrawal concerning the entire contract, significance is attached, among other things, to the cheapest ordinary delivery method offered by the seller. The rules for full withdrawal should not be transferred unreflectively to every partial refund configuration. Details and examples: UOKiK — withdrawal costs. The module settings must be adapted to the applicable rules and the specific situation; installation alone does not ensure the legal compliance of the process.

5. How to confirm the actual refund of money?

Before the payout, check the original payment method, transaction identifier, currency, and the remaining possible amount. For automatic integration, correct configuration of the given operator is required. The mere presence of its name on the list does not mean that a specific order can be settled via API.

After ordering, save the refund identifier and read its result. If a timeout occurs, do not immediately order a second payout: first check the first operation on the operator’s side. The request may have arrived despite the lack of a response in the panel. In the case of a manual refund, attach proof of execution and only then mark the case according to the adopted process.

The message “we have ordered the refund” should mean that the instruction has been sent. The message about a completed payout should result from a confirmed status. Do not promise the customer that the funds are already in their account when the system confirms only acceptance of the request.

6. Where does the Returns and Withdrawals Pro module help?

Returns and Withdrawals Pro organises requests, returned items, calculation and case history. The scope verified in the code of version 1.3.29 includes calculating amounts for selected quantities and taking into account discounts, delivery, fees, and the remaining order amount. The module has manual settlement paths and automatic integrations, the use of which depends on the configuration and the original payment.

The described example is a demonstration of the process and arithmetic. It does not constitute a payout test with every operator or confirmation of compatibility with any version of an external payment module.

Checklist before closing the case

  • The item, variant and number of received units match.
  • The calculation uses the order and takes the correct discount into account.
  • Delivery and other settlements have a separately recorded basis.
  • The history includes previous payouts and the identifier of the current operation.
  • Documents, stock status and the customer message correspond to what was actually done.

Do you want to organise this process in your store? See partial refund handling in the Returns and Withdrawals Pro module. When choosing the configuration, indicate the payment method used and the way return parcels are handled.

Substantive verification: 13 September 2026. Demonstration example, without customer data. Material prepared on the basis of UOKiK documentation and the module code; it does not describe an executed refund transaction.

Related products

Returns in PrestaShop – form and refunds Pro | PrestaDev Returns in PrestaShop – form and refunds Pro | PrestaDev 2
  • New
Orders, returns and complaints

Returns and Withdrawals Pro module for PrestaShop

PrestaDev.pl
PDLRPRO
zł 248.00 zł 201.63no tax
1 Reviews
Returns and Withdrawals Pro is a PrestaShop module for handling contract withdrawals, product returns, and refunds within a single administrative process. It enables logged-in customers and guests to submit a return request online, select products, choose the shipment return method, and specify the refund method. The administrative panel organises...
See the author's articles
Patryk Marek

Patryk Marek — owner of PrestaDev.pl and a developer specializing in PrestaShop. For many years, he has been involved in creating, developing, and maintaining online stores. He combines work on store and module code with the configuration of the server environment in which these solutions operate.

He designs and develops PrestaShop modules, customizes existing features, and prepares integrations with wholesalers and external services. He works on product data import and updates, catalog management automation, the order process, and tools supporting the store owner's daily work.

His experience also includes store updates and migrations, error diagnosis, performance analysis, and the configuration of servers and services required for PrestaShop to operate. When solving problems, he takes into account the dependencies between modules, the theme, PHP, the database, and hosting settings.

On the blog, he shares knowledge gained from many years of programming practice and working with the technical backend of stores. The guides focus on specific problems, ways to verify them, and the limitations of the described solutions. They help store owners and technical specialists prepare changes, assess their scope, and verify the result.

Comments (0)

No comments at this moment

New comment

You are replying to a comment