Offline Credit Card Processing is a payment plugin for VirtueMart that allows you to collect credit card information online to manually process the payment offline

Extension Version: 2.5.8
 
Joomla extension Offline Credit Card Processing

Extension Features

The extension Offline Credit Card Processing is a payment solution designed to facilitate card transactions without requiring an internet connection. It offers VirtueMart users a seamless payment experience, ensuring smooth processing of credit card payments even when offline. This solution provides a convenient way to manage transactions securely, offering flexibility for both merchants and customers due to its robust functionality.

With a user-friendly interface, users can easily set up Offline Credit Card Processing within the VirtueMart platform. The integration process is straightforward, enabling merchants to quickly and efficiently start accepting credit card payments. This streamlining of the payment process makes transactions convenient for both online and in-person purchases.

This payment solution delivers a reliable and secure method for handling credit card payments by encrypting sensitive data to maintain transaction security. By adhering to the highest security standards, the plugin instills trust and confidence in its users, making it the preferred choice for processing payments.

Merchants can benefit from the flexibility and convenience offered by this payment solution. It allows for offline transactions, ensuring businesses can continue accepting payments even without an internet connection, providing uninterrupted service for seamless transactions.

Additionally, the solution enhances the payment experience by offering real-time transaction updates and notifications, providing users with instant feedback on their transaction status. This real-time functionality contributes to a positive user experience, promoting trust and reliability in the payment process.

Specifications:

Release date: 19-11-2014
Last updated: 27-07-2016
Type: Paid
License: GPL 
Subject: e-Commerce Specific for VirtueMart
Compatibility: J3.x
Includes: Plugin
Language packs: English
Developer: -

Rating:
4.5576036866359 1 1 1 1 1 (217 Votes)

Download by subscription!

You need to log in on the site and purchase a club subscription!

Share with your friends!

 

Guide to Using Offline Credit Card Processing in VirtueMart

This guide to Offline Credit Card Processing will help you understand when manually processing card details is genuinely appropriate, prepare Joomla and VirtueMart for a careful rollout, configure the payment method, and verify the entire order path through to securely removing operational data. The focus here is not on purchasing the extension or banking services, but on the practical workflow for an already installed payment add-on: from the conditions that display the form to the order status, staff actions, and final verification.

Offline Credit Card Processing is intended for a VirtueMart store where the customer enters card details on the site and the seller then processes the transaction outside the site through an approved payment workflow. This is fundamentally different from online card processing with an immediate gateway response. The form can check customer-facing indicators that a card number is structurally valid and identify the card type, but it does not confirm available funds, obtain authorization, or mark an order as paid. The decision to charge the card and assign the final status remains with the responsible staff member and their approved payment process.

That is why this extension should not be treated as an ordinary payment toggle. It affects the checkout page, the transmission of card-data fragments, access to orders, email, logging, retention rules, and the actions people take after checkout. An error in any of these links can matter more than a storefront display issue. This guide helps you build a limited, verifiable workflow; it does not promise compliance with bank or card-network requirements.

Offline Credit Card Processing for VirtueMart: separation of the order, protected card-number fragment, and manual review
This instructional illustration shows the extension's main idea: the order is placed in VirtueMart, while the final processing decision is made by a staff member outside the storefront.

What Manual Card Processing Is Designed to Handle

A typical use case involves a seller who is authorized to accept card details remotely but processes the card transaction through a separate terminal or an approved internal workflow. For example, an order first reaches the store, a staff member verifies the items, availability, and delivery terms, then uses an authorized processing channel and changes the order status only after confirmation. This approach can be useful where redirecting the customer to a third-party payment gateway is either unnecessary or unsuitable, but it does not remove the organization's obligation to comply with its bank's requirements, merchant-acquiring agreement, and applicable card-data handling rules.

According to the extension description, card-number data is split: one part is stored in the database in encrypted form, while another part is sent to one or more specified email addresses. CVV has separate handling: the extension does not save the code in the database and instead sends it by email. It also claims to provide card-number validation using the Luhn algorithm, automatic identification of certain payment brands, configurable accepted card types, cardholder name, and expiration date fields. These functions can help construct the form and reduce obvious typos, but they do not replace the storage and transmission rules that apply to a particular merchant.

What the Extension Does Not Do

The most dangerous misunderstanding is to assume that offline means risk-free operation or freedom from card-data requirements. In this context, it does not refer to a terminal that temporarily works without internet access and submits the payment later on its own. VirtueMart receives an order through the website, while the extension organizes the collection of limited fragments for a later manual action. It does not contact the bank on the seller's behalf, tell the customer the final charging outcome, or remove responsibility for staff access, mailboxes, backups, server logs, and the internal deletion procedure.

For that reason, do not automatically assign an order a status that appears to confirm payment on the storefront. It is safer to use a clear interim status indicating that the order was received, its details are awaiting manual review, and the goods have not yet been shipped. Exact status names depend on the store configuration, but the meaning must be unambiguous to the team. The customer should not see language suggesting that bank authorization has already been obtained when no staff member has processed anything yet.

Where This Method Makes Sense and Where It Does Not

The extension may be appropriate for a small catalog with manual order review, orders requiring prior approval, or a company that already has an authorized process for handling remote card transactions. In these cases, a staff member must verify the order details and make a decision before goods are released anyway, so the manual stage is not artificial. The approach may also be useful when the product range, delivery, or custom assembly requires contact with the customer before final payment.

It is a poor fit for a store that needs an immediate automated response, real-time approval or decline, automatic status changes after a successful transaction, or minimal staff involvement. If the goal is specifically to redirect the customer to a certified payment page and receive automatic confirmation, consider a gateway that supports that flow. Do not substitute one payment model for another simply because both display card fields.

Key principle: before enabling the payment method, define one short internal workflow: who sees a new order, where approved processing takes place, who changes the status, and when accessible information is removed. If any of these questions has no answer, it is too early to publish the card form.

Who Offline Credit Card Processing Is For, and When to Choose a Gateway Instead

This solution is primarily aimed at the VirtueMart store owner and the staff member who is responsible not only for Joomla configuration but also for daily order handling. It is useful to separate these roles in advance. The site administrator installs the package, enables the plugin, creates the payment method, limits access, and checks the storefront display. The order operator sees only the information required to carry out the approved transaction, records the outcome, and clears data under the internal retention policy. One person may combine these roles on a very small project, but even then it is worth documenting the steps as though a colleague will perform them.

The approach is reasonable if the organization already has a lawful basis and a Joomla-independent way to process card transactions manually. Before launch, the store owner should confirm the process with the acquiring bank or payment partner rather than trying to solve the issue through CMS settings. The extension documentation itself mentions a card-processing terminal and an SSL certificate where locally required. In practice, this means that technical site preparation is only one part of the process, not a replacement for organizational and contractual checks.

Signs of a Suitable Setup

  • The store has a clear, authorized process for manually handling remote orders.
  • Staff roles, admin-panel access, and the time allowed to process a new order are defined.
  • The storefront uses a secure connection, and testing takes place on a site copy or during a period without real customers.
  • The order has an interim status that does not promise the customer that a charge has already been completed.
  • The team has a rule for removing accessible information after the approved transaction is complete.

If even one condition is missing, it is better to postpone enabling the form than to cover gaps with cosmetic settings. Be especially careful with shared mailboxes used by multiple people, email forwarding, automatic mail backups, and broadly assigned access to VirtueMart orders. Encrypting one part of a card number does not by itself make the full data path manageable.

When an Automated Payment Gateway Is More Appropriate

An automated gateway is usually preferable when the store expects fast checkout, immediate approval or decline, automatic status synchronization, and fewer manual actions. It is also more suitable when an operator should not receive or process card details. VirtueMart documentation describes payment plugins as the basis for creating payment methods and allows you to manage their published state, order, and restrictions. This makes it possible to keep several payment methods available, but it does not make the manual option mandatory: you can display it only to the customers and for the orders where it is actually approved.

Do not enable Offline Credit Card Processing as a fallback payment method "just in case." It requires separate staff instructions and separate outcome verification. If, after reviewing the workflow, you realize that you cannot process orders promptly, protect access, and remove data, it is more honest to keep this option hidden and use a method that fits your operating model.

What to Check Before Installation: Site, Access, and the Order Workflow

Start with a responsibility map, not by uploading the package. List the components already involved in checkout: Joomla, VirtueMart, the template, email delivery, caching plugins, operational email addresses, and staff with access to orders. The purpose is not bureaucracy. It helps identify where entered information might end up beyond the extension's own screens: in an administrator message, debug log, mailbox backup, or a staff account that should not be able to see customer information.

Verify that the public store opens over HTTPS without browser warnings, not just the home page. Checkout often uses a separate route, another domain, redirect rules, or a template override. Open the cart itself, the transition to checkout, the payment-method selection page, and the final result page. If even one step returns to an unsecured address, displays mixed content, or causes a redirect loop, fix that issue first. A form that could collect card data must not be published beforehand.

Confirm Joomla and VirtueMart Compatibility

The available extension page lists historical compatibility with Joomla 3.x and VirtueMart 3. Treat that as an important signal, not permission to move the package to a different stack without verification. Do not conclude that it is compatible with newer Joomla, PHP, or VirtueMart versions simply because the archive installs. Independently verify the provider's exact documented requirements, whether your version is supported, and its behavior on a store copy. If confirmation is unavailable, document the risk and stop before publication rather than testing the payment form on real customers.

Create a restore point using normal hosting or site-management tools before installation. It is intended for a reversible rollback of code and settings if the plugin conflicts with the template or checkout page, not for retaining newly collected card data. After creating the backup, make sure it does not include test information resembling real card details. Use only artificial values allowed by your internal test process, and do not send them to production mailboxes.

Minimum Access Review

Separately review who can access System, the Joomla plugin manager, VirtueMart settings, and the order list. Excessively broad permissions make technical configuration meaningless: a user may disable the plugin, change the message recipient address, export order data, or publish a payment method without a second review. Remove outdated accounts, use individual access rather than a shared administrator account, and limit the operator role to the sections actually required. Test any permission change first with a separate test account so that you do not lock out the store owner.

Do not overlook email. If the configuration uses one or more addresses, define the owner of each mailbox, access procedures, a ban on automatic forwarding, and a message-deletion process in advance. Do not choose a staff member's personal mailbox simply because it is faster to configure. The email component must be as controlled as admin-panel access. When an employee changes, the rule should allow their access to be removed without losing the order history or leaving sensitive fragments uncontrolled in old correspondence.

Prepare Statuses and Clear Customer Messaging

Before creating the payment method, decide which status a new order receives. A manual workflow calls for a status that reflects pending review, not payment or shipment. Choose a label using your store's terminology, such as "Awaiting Manual Processing," if that status already exists. It must be clear to both the operator and the customer and must not trigger automatic fulfillment, a fully-paid email, or warehouse integration prematurely.

Prepare neutral text for the confirmation page and standard order email. It can explain that the order was received and will be reviewed by a staff member, state the response timeframe under your policy, and provide a contact channel for order questions. Do not describe publicly which data fragments are sent where, ask customers to send a card number in a reply email, or use wording such as "payment processed successfully" before the manual transaction is complete.

What should be ready before the payment method appears on the storefront
CheckWhy it mattersWhat readiness looks like
Secure checkout pathThe customer never moves to an unsecured form pageCart, payment, and confirmation all open over HTTPS without warnings
Test environmentThe plugin can be tested without real ordersA site copy or a short test window with artificial data is available
Staff rolesOnly the necessary people receive accessUser lists and order permissions have been reviewed
Interim statusThe order does not appear automatically paidThe status does not trigger fulfillment and is clear to the operator
Deletion ruleData does not remain accessible longer than neededA responsible person, deletion point, and completion record are assigned

After this preparation, it is useful to run a short exercise: a staff member who did not configure the system receives a test order and tries to determine what happens next. If they cannot identify the status, approved processing channel, and deletion point without verbal explanation, the instructions are not sufficient yet. Fixing this before enabling the form for visitors is less expensive and safer.

Install the Package and Run an Initial Check Without Publishing the Form

The provider specifies a standard installation through Joomla's Extension Manager. In practice, begin on a site copy or during a maintenance window when you can keep the payment method unpublished. In the Joomla admin panel, open extension installation, select the archive you received, and complete the process. Do not rush into placing an order afterward. First, confirm that the package appears in the extension list and that the system log contains no installation error, incompatible-version warning, or missing-dependency message.

In Joomla, plugins often install successfully but remain disabled. Find the extension entry in Plugin Manager, read the available fields, and enable it only after every setting is understood. For testing, it helps to document the starting state: the payment method is not yet published, real customers cannot see it, and the operator does not receive production emails. This sequence lets you separate technical installation from a VirtueMart configuration error.

Create a Separate Payment Method in VirtueMart

VirtueMart uses payment plugins to create payment methods. In the store administration area, create a new method, select the installed Offline Credit Card Processing plugin, and save the main record so that its specific parameters appear. Do not rebuild an existing live payment method over it: a separate entry lets you compare settings, restrict test visibility, and quickly disable only the new option. Use a customer-facing name that is clear but does not promise instant authorization.

On the method's main tab, check its published state, position among payment methods, available shopper groups, countries, currencies, and amount limits if those fields are available in your VirtueMart version. Use only restrictions you can explain. For example, a country restriction may be justified by an agreement or internal workflow, but it should not accidentally hide the payment method from established customers. Keep the test scope narrow at first: use a separate test group or controlled store. After every change, click Save & Close, then open checkout in a fresh browser session.

The First Outcome You Need to See

Before entering any data, confirm three things: the new payment method appears only in the expected context, the selection persists as the customer moves between order steps, and standard payment methods have not disappeared. If the plugin is enabled but the method is not visible, do not try to compensate with a template edit. Return to the published state of the plugin and method, buyer, country, currency, amount, and cart restrictions. This approach identifies the cause faster than randomly changing several settings at once.

Installation checkpoint: the package is installed, the plugin is enabled, and a separate payment method has been created, but publishing it to ordinary customers is postponed until the form, operational-message delivery, and order status have been verified.

Configure the Form and Display Rules After Installation

Once the payment method is visible in controlled checkout, move on to its parameters. The purpose of configuration is not to enable as many fields as possible, but to ensure that the form collects only what is necessary for the approved manual process and is available in the right context. Start with the method name and a brief description. Customers should understand that the order will undergo manual review, but the description should not reveal internal storage paths or ask them to send information outside the form.

Next, review the accepted card types. The provider lists supported brands and states that the accepted-type list is configurable. Enable only brands that your approved process can actually handle. A broad list may look convenient, but it creates false expectations for customers and extra manual work for operators. After making changes, always verify the storefront: the interface should display only the expected options, and customers should not see a conflict between a logo, explanatory text, and the actual processing method.

Offline Credit Card Processing configuration diagram: VirtueMart payment method, card types, statuses, and storefront verification
This conceptual instructional diagram connects payment-method settings to the outcome visible to the customer. It is not a screenshot of a specific admin-panel version.

Form Fields That Need Separate Verification

The extension description lists cardholder name, number, security code, and expiration date. The number field is validated with the Luhn algorithm and includes a validation indicator, while the card type may be detected automatically. These cues are useful for catching typos early, but they do not validate whether a card is active. Explain this to staff: a green form indicator only means that the number matches a mathematical pattern, not that the bank approved the transaction.

Pay attention to cases where the form changes according to the card type. American Express is stated to use a four-digit security code rather than a three-digit one. For Maestro, the extension may request an issue number or issue date. Verify these differences in a test view without using real data: make sure the fields appear only for the relevant type, labels are clear, and a required field does not prevent checkout for other brands. Do not manually rewrite extension files because the wording is unsatisfactory. Joomla provides a built-in language-override mechanism for supported strings, which survives updates better than directly changing language files.

Language Overrides Without Editing the Package

If users need clearer email text or a form label, first locate the extension's language constant in the Joomla interface. Then use System - Manage - Language Overrides, select the required language and the Site or Administrator area, create the override, and verify it on the storefront. Joomla's official documentation explicitly recommends overrides instead of editing core or third-party extension files because a file change may disappear after an update.

Notification content should help the operator identify the order without expanding the amount of information. Do not add arbitrary card fields, diagnostic data, passwords, the customer's full address "just in case," or forwarding instructions to an email template. Change only wording that is genuinely needed for the workflow: the order identifier, a neutral notice that review is required, and a link to the administrative record if your access policy permits it. After saving, run a test: create an order and verify the text locale, delivery address, and absence of unnecessary data.

Operational Email Addresses and Limiting Recipients

The extension states that part of the data is sent to one or more specified addresses. Do not interpret the ability to use multiple addresses as a recommendation to duplicate the notification to accounting, the warehouse, and the owner simultaneously. Every additional recipient expands the access circle. Start with the minimum number of controlled operational addresses already included in the approved process. Confirm that each address is accurate, has no external forwarding configured, and is not connected to a public group.

Test the absence-of-staff-member case. If the only operator goes on vacation, the store should neither lose orders nor force the owner to add a new personal mailbox at the last moment. It is safer to establish a replacement responsible person and an access-removal procedure in advance. At the same time, do not turn normal email delivery into an archive of card transactions. The goal is to process the order promptly within an authorized environment, not to accumulate message copies for future use.

Order Status as Protection Against False Confirmation

Connect the selected payment method to an initial order status that makes the next steps obvious. In VirtueMart, payment-method display order and some availability conditions are controlled through method settings, while the order status provides an important signal to the team. Choose an interim state in which the order can be opened and reviewed but the warehouse or delivery service does not receive an automatic fulfillment instruction. For a store that reserves inventory, separately verify how that status affects stock: it may reserve inventory or leave it unchanged, depending on the overall store configuration rather than the plugin alone.

Then define transition rules. After a successful manual action, an authorized staff member changes the status to the store's equivalent of "confirmed" or "payment accepted." If the transaction was not completed, use a clear cancellation or customer-contact-pending status rather than simulating payment. Do not combine these outcomes under one generic status: reports and customer notifications must distinguish between "details received," "transaction manually confirmed," and "order canceled."

Publish It to the Right Audience

Once the basic form works, configure the method's availability as carefully as its fields. In VirtueMart, payment methods can be restricted by shopper groups, countries, currencies, and amounts. Use these settings to implement a verified rule, not as protection against every risk. For example, if the manual procedure applies only to certain orders, limit the method with the relevant conditions and test edge cases: a discounted item, a cart at the amount threshold, a guest without a profile, a customer using another currency, and a repeat order.

After each meaningful setting change, run one focused test and record an observation: "method displayed," "field appeared," "message received," or "order has the expected status." This log must not contain card data. Its purpose is to let you roll back the latest change when a problem appears instead of guessing which of ten parameters affected checkout.

Configuration checkpoint: accepted brands and fields match the approved process, operational addresses are minimal and controlled, and the order status honestly shows that bank confirmation has not yet occurred.

How an Order Becomes an Operator Task

This section is intended to prevent form validation from being confused with payment processing. The observable behavior of Offline Credit Card Processing consists of several stages. The customer selects the payment method and completes the required fields. The extension checks the number structure using the Luhn algorithm, attempts to identify the stated card type, and adjusts some fields. VirtueMart then creates an order with the selected interim status. According to the provider's description, number fragments are split between encrypted database storage and a sent notification. After that, the site must not present itself as a bank: the next stage belongs to the operator using an approved procedure outside the public storefront.

It is important for readers to see the responsibility boundary. The input is a completed form and an order in the cart. The observable outcome on the site is a created order in a pending state and an operational signal to the responsible person. There is no confirmed automated authorization between those points. The manual transaction, outcome verification, and status change occur outside the public form. This boundary explains why you cannot trigger shipment, a thank-you email for a received payment, or discount automation merely when the order is created.

What Number Validation Shows, and What It Does Not

The Luhn algorithm checks a number's checksum. If a number does not pass this test, the form may reject an obvious input error. This is convenient for customers and reduces orders containing typos, but the outcome says nothing about the cardholder, credit limit, card validity, ability to charge it, or the bank's decision. An operator must therefore not treat a valid indicator as permission to release goods.

Automatic brand detection is also an interface hint. When the form recognizes American Express and changes the expected code length, it helps gather the fields correctly. When it requests additional information for Maestro, that reflects the corresponding form requirement. However, the selected brand must be part of the process the store actually supports. If the organization does not accept a particular card type, it is better not to leave it in the available list and assume the operator will sort it out later.

Why Splitting Fragments Does Not Remove the Need for Control

The extension description says that one part of the number is encrypted in the database while the remaining part is sent to the specified email address. This lowers the likelihood that all required elements will be in one location, but it does not eliminate the need to assess the entire environment. Access to the database, keys, and administrative orders, backup rules, mailbox permissions, email forwarding, and retention periods form one system. What must be evaluated is not an individual feature but the actual data path from the form through order completion.

The security code requires particular attention. The PCI SSC states that card verification codes are sensitive authentication data and cannot be stored after authorization, even in encrypted form. The extension description states that it does not store CVV in the database and sends it by email. That does not mean the email channel can be considered secure storage or that the code may remain in a message until the next day. Before launch, confirm with your bank, a qualified requirements specialist, and internal rules whether your intake process is allowed and how retention of such data is prevented. This article is not legal advice; it is a reason to stop and verify the model before publication.

An Operational Log Without Sensitive Information

It can be useful to maintain a separate activity log, but it should contain only safe process markers: order number, time received, assigned operator, selected status, time of manual decision, deletion time, and cancellation reason when needed. Do not enter the card number, expiration date, security code, email text, or screenshots containing such data in the log. This minimal trail helps answer operational questions: whether an order was lost, whether it was shipped before a decision, and whether information remained accessible longer than permitted.

Offline Credit Card Processing workflow: a staff member reviews a VirtueMart order and sees an interim status before the manual decision
This practical scene shows an important operator moment: an order is not yet the same as confirmed payment, so the visible status and review log matter more than automatic fulfillment.

Practical Example: An Order Reviewed Manually Before Goods Are Released

Consider a small store that sells products requiring custom assembly. It needs to accept an order on the site, confirm availability, and only then perform an approved transaction through an external process. The goal of this example is to create an order that does not proceed to fulfillment on its own, is clear to the operator, and gives the customer an honest message about the upcoming review. This example does not teach you how to enter card data into third-party systems and does not replace your bank's instructions.

Preparing the Workflow

VirtueMart is installed on a site copy, and a separate Offline Credit Card Processing method has already been created. The plugin is enabled, card types are limited to those actually accepted, an operational address is defined, and the test operator has access to the needed order list without unnecessary administrative permissions. New orders use the status "Awaiting Manual Processing." Warehouse or delivery automation is configured so that this status does not release goods. The storefront displays short text stating that the order was received and will be confirmed after review.

Sequence of Actions

  1. The customer adds an item to the cart and proceeds through standard HTTPS checkout.
  2. The customer selects the created payment method and sees only the fields required by the selected card type.
  3. The form checks the number structure and provides a clear hint, but the page does not claim that a charge succeeded.
  4. VirtueMart creates an order with an interim state and sends the designated operational notification to the controlled recipient.
  5. The operator opens the order in the admin panel and verifies the contents, amount, availability, and delivery rules without sending details through unauthorized channels.
  6. An authorized staff member completes the external manual action under the internal procedure and records only the outcome: confirm, request clarification, or cancel.
  7. The operator changes the order status, starts subsequent product handling, and performs the required cleanup of accessible information.

Each stage in this chain has a verifiable outcome. After the third step, the selected method and form are visible. After the fourth, an order exists with an honest pending state. After the sixth, there is a decision, but not necessarily a technical record of card details. After the seventh, the customer and warehouse receive a status that reflects reality. If the operator cannot distinguish these steps, the status configuration or instructions need improvement.

Inventory and Amount-Change Considerations

If the final amount depends on assembly, delivery, or manual inventory review, do not treat the created order as a promise of an immediate final amount unless the conditions are clear in advance. First agree on the rules with the customer through a channel that is safe for your process, and only then continue the approved transaction. Do not ask the customer to send new card details by email or in an order comment. If the workflow regularly requires changing the amount after checkout, you likely need to review the business process and select a payment method better suited to those changes.

Example check: a good test order leaves four safe pieces of evidence: the method appeared on the storefront, the status does not claim payment, the notification reached only the assigned recipient, and fulfillment did not begin automatically.

Verify the Outcome: From the Storefront to the Administrative Decision

Post-configuration verification should reproduce the full order path rather than stopping at opening the plugin page. Ideally, two people perform it: one acts as the customer in a fresh browser session, while the other observes the resulting order and operational workflow. If one administrator performs the test alone, they can easily miss a condition already retained in their session, such as shopper group, currency, or profile data. Before starting, clear the cart, sign in with a test account, or use a guest workflow if the store supports one.

The first verification layer is payment-method display. Add an item whose amount falls within the selected conditions to the cart and ensure that Offline Credit Card Processing appears where expected. Then test several boundaries: another currency, a different country, an amount at the limit, and a user who should not see the method. The outcome is good not when the option is visible to everyone, but when its availability matches the rule adopted earlier.

Test the Form Without Using Real Data

On the form, review field order, whether the name and expiration date are required, the number hint, and interface changes under permitted test cases. Do not use an employee's own card, the owner's card, customer data, or a number found online. The purpose of this test is the interface, not a payment transaction. Confirm that an invalid-number error explains the issue clearly and does not reset the cart. Then verify that a structurally valid test value proceeds to order creation without displaying language about bank approval.

If the form asks for a security code, treat that item as a critical area. The check should establish only that the field appears for the selected card type and that the overall workflow does not retain test data in unjustified locations. Do not send real codes, take screenshots containing entered values, or leave the test order in the production database. After the test is complete, delete or securely invalidate the test record under your procedure.

Check the Created Order

After test checkout, open the VirtueMart order list under the operator role. Verify the order number, cart contents, selected payment method, and initial state. Make sure the storefront message matches that state: the order was received and is awaiting review, not "funds were charged." Then confirm that routine automated actions did not run too early: no fulfillment task was sent, no final payment document was generated, and no external action intended for a confirmed order was triggered.

Next, check permission limits. A content manager, catalog employee, or temporary assistant must not receive the same access as the assigned operator. If the current role setup cannot achieve the necessary separation, do not compensate with a verbal prohibition. Return to the Joomla and VirtueMart access model, narrow the roles, or abandon the workflow until acceptable control is available.

Email Verification and Message Lifecycle Control

After the test order, make sure the operational notification reaches the expected address and is not duplicated to unauthorized recipients. Check not only the primary mailbox but also its rules: automatic forwarding, shared groups, connected mobile clients, backups, filters, and archives. In many cases, ordinary email settings create unnoticed copies that remain after the order is complete. If you cannot control those copies, extension configuration does not solve the problem by itself.

Document the procedure for handling the notification after the manual decision. The organization should define in advance who verifies that the transaction is complete, where the safe outcome is recorded, how data is removed, and how deletion is verified. Do not include card details in the operational instructions; they should be suitable for process auditing without copying secret information. For example, an operator can record "order processed, record cleared" along with the date and order ID, without adding the number, code, or an email screenshot.

Offline Credit Card Processing outcome verification: VirtueMart storefront, pending order status, and controlled cleanup
This instructional visual compares the confirmation visible to the customer with the administrative review: the created order is still awaiting a manual decision and subsequent cleanup.

Deletion and Data-Minimization Control

The extension page states that card information can be deleted in the VirtueMart admin panel after processing. This capability must become a required part of the operational workflow, not an occasional action taken "when someone remembers." Define the event that triggers deletion: a successful transaction, order cancellation, expiry of a short agreed waiting period, or transfer of the order to another approved process. Then assign a responsible person and a second verification step if order volume or risk level requires it.

Use a test to confirm that after deletion the operator can no longer view the relevant information through the normal order screen. Do not claim on that basis that the information has disappeared from every infrastructure layer: that depends on email, backups, logs, exports, and other systems. The objective is to prove that the intended admin-panel function works while identifying locations that require separate controls. If there is uncertainty, consult the person responsible for security and the payment process rather than trying to solve the issue by clicking VirtueMart again.

A Short Checklist for Every Shift

  • Open only orders with the interim status and assign a responsible person.
  • Verify contents, amount, contact details, and availability before the external manual action.
  • Record only the outcome of the approved transaction, not card details.
  • Change the order status to the actual state and make sure the customer receives the correct notification.
  • Perform cleanup within the approved timeframe and note it in the safe log.
  • Resolve orders without a decision by the end of the shift or hand them over under the approved rule.

This list does not replace an internal policy, but it makes the workflow observable. It is especially important after updates to Joomla, VirtueMart, the template, mail server, or caching settings. Any of these changes may disrupt the method display, form, or notification even when the plugin remains enabled.

Useful Joomla and VirtueMart Combinations Without Risky Customizations

The most useful combination here is not an additional module or custom code, but Joomla and VirtueMart's built-in mechanisms: a separate payment method, access roles, clear order statuses, and language overrides. Each element has its own purpose. The payment method determines where the customer sees the option. VirtueMart restrictions define the display context. The status shows the operational stage. Joomla permissions limit the staff circle. A language override lets you clarify wording without modifying the extension package.

The configuration order is as follows: first create the role and verify access, then add the interim status, then create and restrict the payment method, and only afterward change storefront wording. This is not an official provider integration, but a safe practical approach based on standard CMS capabilities. Its advantage is reversibility: you can disable the method, restore the previous text, or narrow permissions without editing Joomla core files or the extension files.

Why You Should Not Add Custom Code

Offline Credit Card Processing does not need a PHP or JavaScript snippet to "improve" the form. Any custom handling of payment fields can alter the data flow, create a new log entry, or break extension updates. If you need to change a short label, use a language override. If you need to change method order, use VirtueMart settings. If you need different business behavior, first obtain a confirmed approach from the provider or select a payment solution that officially supports that workflow.

Verification checkpoint: the setup is ready when the method is shown only to the required customers, the form does not promise authorization, the order receives an honest status, the notification is controlled, and the team can confirm deletion within its procedure.

Troubleshooting Offline Credit Card Processing: Symptoms, Causes, and Safe Actions

Begin troubleshooting with the observed symptom, not by changing settings in bulk. The payment method sits at the intersection of Joomla, VirtueMart, the template, cart rules, roles, and email. If you immediately reinstall the package, clear the cache, change the status, and add exclusions, you will lose track of what caused the outcome. Preserve safe indicators: the page address, test-user role, cart contents, selected restrictions, displayed status, and standard system-message text. Do not attach card data, screenshots containing it, or the content of an operational notification to a support request.

Offline Credit Card Processing troubleshooting: from a missing method or incorrect status to rule verification and a restored order
This troubleshooting diagram recommends moving from a specific symptom to one verifiable layer: publication, VirtueMart conditions, the form, email, or order status.

The Payment Method Does Not Appear at Checkout

Symptom: the plugin is installed, but the customer cannot see Offline Credit Card Processing in the cart. Likely cause: either the plugin itself or the created payment method is disabled, or the country, currency, shopper group, amount, or display-order conditions are not met. The issue can also result from testing in an old browser session that already retains different profile data.

What to check: first make sure the plugin is published in Joomla Manager, then open the payment method in VirtueMart and review its published state. After that, check restrictions one at a time. Use a fresh test session, one cart, and one currency. How to fix it: temporarily narrow the configuration to a controlled setup, such as a test group and one clear cart, confirm that it displays, and then restore the required restrictions one at a time. When to roll back: if changing conditions causes normal payment methods to disappear, revert the latest change and compare the order of plugins and methods.

Card Fields Do Not Display or the Form Does Not Complete the Order

Symptom: the selected method is visible, but fields do not appear, appear incompletely, or send the customer back to the same step on submission. Likely cause: a conflict with a template override, optimization scripts, checkout-page caching, unverified version compatibility, or an HTTPS transition error. Historical VirtueMart discussions show that the absence of a secure connection and differences in older payment mechanisms can easily create incorrect expectations about card fields.

What to check: open checkout in a private window, see whether the issue disappears with caching disabled only on the test copy, and confirm that every step remains on HTTPS. Compare behavior with a temporarily standard template only on a site copy. How to fix it: return one conflicting layer to its original state, add a meaningful checkout-page exclusion only when your stack confirms it, or postpone deployment when compatibility is unverified. When to roll back: if a solution requires editing plugin files or Joomla core, undo it and contact the provider or a specialist for the current version.

The Notification Did Not Arrive or Reached an Unnecessary Recipient

Symptom: the operator does not see the operational signal, or the email arrived to several people. Likely cause: an incorrect address, filtering rule, forwarding, shared mailing list, hosting email limitation, or an outdated address left in the method parameters. What to check: use a test order without real card values, verify the exact recipient in the parameters and the rules on every involved mailbox. Check whether the email is becoming an automatically forwarded copy.

How to fix it: retain the smallest controlled recipient list, remove forwarding, and repeat the test after confirming the mailbox owner. If delivery is unreliable, do not publish the method: the operator may not see the order in time, while the customer receives an unclear waiting experience. When to roll back: if the mail system does not allow you to limit access or delete messages according to the workflow, disable the method until the infrastructure changes.

The Order Gets the Wrong Status or Triggers Fulfillment

Symptom: after checkout, the order appears paid, the customer receives an overly confident email, or the goods are immediately sent to fulfillment. Likely cause: the wrong initial status was selected, warehouse automation listens for too broad a set of statuses, or testing was performed using a copy of a status that the team interprets differently. What to check: create one test order and trace the events: which status was assigned, which email was generated, and which integration received a notification.

How to fix it: select a distinct pending state and configure warehouse actions to respond only to a confirmed manual outcome. Review every email and notification template. When to roll back: if you cannot separate pending manual review from goods release in the current configuration, temporarily unpublish the method and use a payment method with clear automated behavior.

Information Remains Accessible After Processing

Symptom: a staff member completed the manual transaction, but the record can still be opened in the admin area or a notification copy remains in regular email. Likely cause: the deletion step is not included in the instructions, is assigned to the wrong person, or affects only one storage layer. What to check: for a test order, complete the intended VirtueMart deletion and separately review controlled email rules without opening or forwarding sensitive values.

How to fix it: tie deletion to the end of every workflow outcome - success, cancellation, or expiry of the agreed period - and record the safe fact of completion in the log. When to roll back: if the team cannot demonstrate data minimization in the systems it controls, stop using the form and review the payment path with the person responsible for security.

Troubleshooting rule: one symptom - one verification layer - one reversible change. Any request to the developer should use an anonymized description of the environment version, status, and form behavior, without customer information.

Questions to Ask Before Publishing a Manual Payment Method

Does Offline Credit Card Processing Charge Money Automatically?

No. Based on the available description, the extension collects information for later manual processing; it does not act as a gateway with immediate bank authorization. Customers must not be told that payment succeeded when the order is created. Configure an interim status and clear messaging about follow-up review, then change to the final state only after the approved external process has produced an outcome.

Is Luhn Validation Enough to Accept an Order?

No. Luhn validation shows that the entered sequence satisfies a checksum and helps filter out some typos. It does not confirm the balance, card validity, cardholder identity, right to charge, or the bank's decision. Use it only as a form hint. Before releasing goods, you need your approved review procedure and the actual decision of the authorized process.

Can the Payment Method Be Left Enabled for All Countries and Currencies?

Technically, availability is determined by VirtueMart settings and depends on the conditions available in your version of the method. In practice, enabling the option without restrictions is appropriate only after your manual process genuinely works for every country, currency, and order type. If rules differ, start with the smallest clear scope and test cart boundaries. A hidden method under unsuitable conditions is better than an order the team cannot process correctly.

What Should Be Done With CVV, and Why Can It Not Be Stored "Just in Case"?

CVV is sensitive authentication data. The PCI SSC states that this code cannot be stored after authorization, even when encryption is used. The extension description says that it does not write CVV to the database, but that does not eliminate the need to control email messages and staff workflows. Before launch, confirm the permitted process with your bank, payment partner, and requirements specialist. Do not turn email, order notes, or screenshots into informal storage.

Is HTTPS Still Necessary When Payment Is Processed Manually?

Yes. A secure connection remains a basic technical requirement for the checkout page. It does not automatically make the entire process compliant, but the absence of HTTPS at any step is a clear reason not to publish the form. Check the transitions between cart, payment selection, order confirmation, and any template pages. Also make sure HTTPS is not disrupted by caching plugins, redirects, or third-party scripts.

Can Form Text Be Changed Without Editing Extension Files?

If the extension uses standard Joomla language strings, the built-in language-override mechanism is preferred. It lets you change an individual label or template text through the admin interface without editing a third-party package file. After an update, repeat the form test anyway: the override must appear in the correct area, and the message must not imply confirmed payment.

Why Is the Method Visible in the Admin Panel but Not to Customers?

Most often, the cause is not installation but availability conditions: the method is disabled, unpublished, restricted by shopper group, country, currency, amount, or display order. Check them one at a time in a fresh browser session. Do not use real data for troubleshooting or change multiple parameters at once. If the method appears only after all restrictions are removed, restore them sequentially and identify the exact condition instead of leaving the form open to all users.

How Can You Tell That This Extension Does Not Suit the Store?

Reject the manual model if you need immediate bank authorization, automatic status confirmation, around-the-clock fulfillment without human involvement, or you cannot limit access to orders and operational email. Another stop signal is the lack of confirmed compatibility with your current environment. In these cases, it is safer to choose a gateway or another payment method that fits your operating model than to try to compensate for the mismatch with form settings.

When Offline Credit Card Processing Is a Good Choice

Offline Credit Card Processing makes sense not because it adds card fields to VirtueMart, but because it can fit those fields into an already approved manual process. A successful rollout begins with honest answers to three questions: who is authorized to perform external processing, which status the order shows before a decision, and how the team ends access to data after completion. If the answers are documented, Joomla and VirtueMart can be configured as a clear interface for a limited workflow. If the answers do not exist, technical installation is only an appearance of readiness.

Before publication, repeat one full test without real card data: the method is visible only to the appropriate customer, HTTPS remains in place throughout the path, the form gives clear hints, the order receives a pending status, the notification reaches a controlled workflow, and automatic fulfillment does not begin. Then test the other side of the process: the operator knows how to record a safe outcome, move the order to the correct state, and perform cleanup under the internal rule. Repeat this test after updates to the CMS, VirtueMart, the template, email system, or caching rules.

Do not underestimate the limitations. The capabilities listed on the extension page - encrypting part of the number, splitting fragments, Luhn validation, brand detection, configurable card types, language strings, and deleting a record from the admin panel - solve specific parts of the task. They do not replace a bank agreement, a compliance assessment, access control, or a retention policy. The most practical approach is to use the minimum capabilities your procedure needs and verify every link separately.

When preparation is complete, your environment's compatibility is confirmed, and the team is ready to run a controlled test, you can download the installation file and deploy the extension to a store copy first. Keep the list of tests, statuses, and responsible people alongside your internal documentation. That way, the publication decision will be based on a verified process rather than on the fact that a form simply appeared at checkout.

By OceanTheme.org Editorial Team

You are not logged in to post comments.