Every order has hidden margin
Packaging, insurance, express preparation — these are services the customer wants but that nobody often offers them. Astracheckoutextras brings them at the right moment: when they're already buying.
Astracheckoutextras transforms the PrestaShop checkout into a structured upsell engine. Configurable services, fixed or percentage prices, advanced filters for carrier and country. Without creating dozens of separate products for each service. Without complicating anything.
Real service examples
Every service you see here is configured in minutes from the back office — with name, description, price type and visibility rules. No separate module for each type of service.
In the checkout
Every selected service is managed internally through a dedicated technical product. The customer sees no technical names, no extraneous products in the summary — they see only the chosen service with its name and price, as expected.
The chosen service persists in the cart, passes to the order on confirmation, appears in the back office, in the confirmation email and on the PDF invoice. The customer sees their choice everywhere.
Configure services as independent checkboxes (stackable) or as radio buttons with group_code (exclusive choice between alternatives). You can have multiple independent radio groups in the same checkout.
The service appears on the order in the back office (displayAdminOrderMainBottom), on the PDF invoice (displayPDFInvoice) and in the order confirmation email. Complete traceability.
The pricing types
The service always costs the same amount, regardless of the cart value. Ideal for services with a defined operational cost.
The price is a percentage of the total products in the cart. Ideal for services whose risk or value scales with the order.
The rules engine
Not all services are relevant for all customers, carriers and countries. Astracheckoutextras includes a mini rules engine to show each service only when appropriate.
Show the service only if the customer has selected one of the allowed carriers. Reinforced packaging makes sense with BRT, not with in-store collection.
If carrier = DHL or BRTShow the service only for certain countries. Refrigerated shipping makes sense for Italy, not for intercontinental destinations.
If country = IT, FR, DEShow the service only to customers in certain groups. The dedicated B2B service should be visible only to users in the Business group.
If group = BusinessShow the service only within a cart value range. Shipping insurance makes sense above €50 — below that threshold it is not economically relevant.
If cart ≥ €50Each service has a position field to order the sequence of appearance in the checkout. You can show the most relevant services first, then the secondary ones.
position = 1, 2, 3…What really changes
Every service the customer can choose changes how they perceive the store — and the average cart value. These effects multiply with every order.
Packaging, insurance, express preparation — these are services the customer wants but that nobody often offers them. Astracheckoutextras brings them at the right moment: when they're already buying.
The module manages all services through a single PrestaShop technical product with dynamic prices. You don't need to create a product for each service — Astracheckoutextras handles it internally, without multiplying entities in the system.
Carrier, country, customer group and cart value filters turn Astracheckoutextras into a mini decision engine. The right service appears only when it makes sense — not always, not to everyone.
Cart, order, back office, PDF invoice, confirmation email. The chosen service doesn't disappear at checkout — it follows the entire order lifecycle. The merchant always knows what every customer chose.
When Astrashipping calculates a high volume → Astracheckoutextras suggests "Reinforced packaging". This integration is already on the roadmap — the module is designed to be extended within the Astralith ecosystem.
Average Order Value. It's the KPI every merchant wants to grow — without discounts, without promotions. Additional services in the checkout are one of the most effective and non-invasive ways to increase it.
Technical architecture
Each service has name and description configurable for every active language. The dedicated tables (astracheckoutextras_service + _service_lang) keep services as their own entities — clean, scalable, non-monolithic architecture.
When the order is confirmed, the selection is saved in astracheckoutextras_order with the service, the price at the time of purchase and the order ID. The historical data is never lost — even if the service is later modified or disabled.
The module automatically creates and manages a PrestaShop technical product — used internally for each service line in the cart. A single technical product manages all services: you don't need to create one for each configured option.
Technical productFrom displayPaymentTop to displayPDFInvoice, via actionValidateOrder, displayAdminOrderMainBottom, displayOrderConfirmation and actionCartSave. The service is present at every relevant point in the journey.
Despite the complexity of the flow, Astracheckoutextras does not overwrite any core file. The override folder is present for structure but contains no active classes. Freely updatable without conflicts.
Hook-onlyAstracheckoutextras is integrated into the Astralith Update Center with SHA256 download verification — the same standard as all Astralith modules. No auto-install, no unverified updates.
SHA256 updatesAstralith architecture
Frequently asked questions
Astracheckoutextras creates a single PrestaShop technical product that it uses internally to manage service lines in the cart. When a customer selects a service at checkout, a line is added with that technical product but with the name and price of the chosen service. This means you don't need to create a separate product for each configured service — a single centralised technical product manages everything.
Services configured as checkboxes are independent: the customer can select zero, one or more at the same time. Services configured as radio with the same group_code form an exclusive choice group: selecting one automatically deselects the others in the same group. You can have multiple independent radio groups on the same checkout page, each with its own distinct group_code.
The percentage price is calculated on getCartProductsTotalTaxIncl — the total products in the cart including VAT. If the cart is worth €200 and the "Insurance" service is set at 1.5%, the calculated price will be €3.00. The calculation happens live on every cart update — if the customer adds or removes products, the service price updates automatically.
Yes. On order confirmation, actionValidateOrder saves the selected service in the astracheckoutextras_order table with the service, the price at the time of purchase and the order ID. This data is permanent — even if you later modify or disable the service, the history of past orders remains intact and viewable from the back office.
Yes. The module is hooked into displayPDFInvoice — the chosen service appears on the PDF invoice of the order. It also appears in the order confirmation email, in the order detail in the customer area and in the order panel in the back office. The customer can always see what they had chosen, wherever they consult their order.
The annual licence at €149 includes: full use of the module for 1 PrestaShop store, all updates released within 12 months, access to the Astralith Update Center with SHA256 verification, dedicated technical support and all future improvements. Astracheckoutextras is the module with the highest commercial potential in the Astralith catalogue — every additional service sold pays back the licence.
Licence
/ year · 1 shop · excl. VAT
Secure payment · Licence activated immediately · Annual renewal