PDA

View Full Version : Developers - Modules


Ore City
2016-05-15, 12:29 PM
Overview

Modules are php classes that can be dropped into Zen Cart™ to provide extra functionality during checkout.


Currently there are three types of modules.


Payment Modules

These are classes that allow you to add different methods of collecting and validating payment details. This could be something as basic as allowing a COD payment method where no details need to be checked, to connecting to an Authorize.net account to validate the credit card details and check that sufficient funds are available.


Shipping Modules

These are classes that are used to calculate the cost of shipping items. They may act locally, or they may connect to service providers (like UPS or USPS) to calculate shipping prices.


Order Total Modules

Order Total modules are used to calculate/display sub-totals, taxes, totals and other intermediary values for an order. Special order total modules that provide for calculating discounts or special charges are also the province of the order total modules.

Ore City
2016-05-15, 12:29 PM
Introduction

Payment modules consists of two files.


The payment class is stored in

includes/modules/payment/<module name>.php


while all text is stored in the appropriate language file

includes/languages/<current language>/modules/payment/<module name>.php


Payment Class
Anatomy of a Payment Module
Class Names
Constructor Method

Class constructor -> initialize class variables. Sets the class code, description, and status.
update_status Method
javascript_validation Method

Check the user input submitted on checkout_payment.php with javascript (client-side).

Examples: validate credit card number, make sure required fields are filled in
selection Method
pre_confirmation_check Method

Pre confirmation checks (ie, check if credit card information is right before sending the info to the payment server
confirmation Method

Functions to execute before displaying the checkout confirmation page
process_button Method

Functions to execute before finishing the form

Examples: add extra hidden fields to the form
before_process Method
after_process Method
after_order_create Method
get_error Method

If an error occurs with the process, output error messages here
check Method

Check if module is installed (Administration Tool)
install Method

Install the module (Administration Tool)
remove Method

Remove the module (Administration Tool)
keys Method
Tips & Tricks
Trouble Shooting

Ore City
2016-05-15, 12:30 PM
Introduction

Shipping modules consists of two files.

The shipping class is stored in

includes/modules/shipping/<module name>.php

while all text is stored in the appropriate language file

includes/languages/<current language>/modules/shipping/<module name>.php


Shipping Class
Anatomy of a Shipping Module
Class Names
Constructor Method
quote Method
check Method
install Method
remove Method
keys Method
Tips & Tricks
Trouble Shooting

Ore City
2016-05-15, 12:31 PM
Introduction
Order Total Class
Anatomy of an Order Total Module
Class Names
Constructor Method
process Method
check Method
install Method
remove Method
keys Method
Extended Order Total Class
Overview
credit_selection Method
update_credit_account Method
collect_posts Method
pre_confirmation_check Method
apply_credit Method
clear_posts Method
get_order_total_main Method
Tips & Tricks
Trouble Shooting