Support Center

Connecting to modified eCommerce

Follow

 

modified-eCommerce is available as a shopping cart system at Shopgate.

By setting up the Shopgate plugin for your modified-eCommerce shop, you will get these wonderful features straight into your mobile shop and apps:

 

Supported Version Import to modified-eCommerce

All versions of modified-eCommerce

  Orders
Sync Export to Shopgate Mobile Shop

Delivery Status "Shipped"
Order Status "Canceled"
Stock Quantity, on Product Detail Page



Products
Categories
Reviews



Customer Account Validate, upon Cart Changes

Login with Desktop Shop Account
Login to Desktop Shop with Mobile Account
Customer Groups / Tier Pricing
Show Desktop Orders on Mobile



/
Coupon
Shipping Method
Payment Method
Product Availability



Supported Payments Notes

Prepayment, Direct Debit, PayPal

NEW! Now you can (re)name the payment methods in your mobile shop! More details about payment mapping click here.

 

In this article, you will find the instructions to set up the Shopgate plugin for your shop with modified-eCommerce.

 

Topics covered in this article:

 

1. Installing the Shopgate plugin

The Shopgate plugin for modified-eCommerce can be installed in all modified-eCommerce versions. Simply upload the plugin to your modified-eCommerce folder and activate it in your modified-eCommerce admin page. To do this, please follow the steps below:

1.1 Downloading the plugin

Download the plugin here: http://files.shopgate.com/plugins/modified.zip and extract the contents of the zip file.

 

1.2 Uploading the plugin

To upload files to your FTP server, you will need an FTP client tool. Plenty of FTP programs can be found on the internet. FileZilla is used in the example below. (How to install and use FileZilla?)

  1. Connect FileZilla or another FTP program to your server.

  2. Navigate to the extracted Shopgate plugin in your local directory (left), and your shopping cart folder on the FTP server (right). Select ALL files in your Shopgate plugin local folder and drag them into your shop folder. Upload will start immediately. Click Yes if you are asked to override a folder.

 

1.3 Setting permissions

Set permissions for the folders config and temp that are located in /includes/external/shopgate/shopgate_library to readable and writeable (777). Set the options exactly as it is shown below. Click OK.

 

1.4 Modifying the codes

In order for the Shopgate plugin to work in your modified eCommerce system, a few lines of codes need to be added to 9 files in your modified eCommerce backend. For detailed descriptions on how to modify codes in your shop's backend folders, click here.

Please modify all files listed below. Copy the marked codes, and paste them at the corresponding lines in your file. Line numbers in the following code snippets, however, refer to an "unmodified" version of files. If you already modified your files, the line numbers may vary. Only the highlighted parts need to be added into the files.

The paths are relative to your shop’s base folder. E.g. if your modified eCommerce has been installed at /public_html/catalog/, then the path of includes/filenames.php refers to /public_html/catalog/includes/filename.php.

Also keep in mind that the default folder name admin is used below. If you have renamed your admin folder, please locate the files in that directory.

 

----------------------------------- file 1 -----------------------------------

File: lang/german/admin/german.php

define('TXT_GROUPS','Gruppen:');
define('TXT_SYSTEM','System');
define('TXT_CUSTOMERS','Kunden/Bestellungen');
define('TXT_PRODUCTS','Artikel/Kategorien');
define('TXT_STATISTICS','Statistiktools');
define('TXT_TOOLS','Zusatzprogramme');
define('TEXT_ACCOUNTING','Zugriffseinstellungen für:');

/******* SHOPGATE **********/
include_once DIR_FS_CATALOG.'includes/external/shopgate/base/lang/german/admin/german.php';
/******* SHOPGATE **********/

// javascript messages
define('JS_ERROR','Während der Eingabe sind Fehler aufgetreten!\nBitte korrigieren Sie folgendes:\n\n');

define('JS_OPTIONS_VALUE_PRICE','* Sie müssen diesem Wert einen Preis zuordnen\n');
define('JS_OPTIONS_VALUE_PRICE_PREFIX','* Sie müssen ein Vorzeichen für den Preis angeben (+/-)\n');

 

----------------------------------- file 2 -----------------------------------

File: lang/english/admin/english.php

define('TXT_GROUPS','Groups:');
define('TXT_SYSTEM','System');
define('TXT_CUSTOMERS','Customers/Orders');
define('TXT_PRODUCTS','Products/Categories');
define('TXT_STATISTICS','Statistics');
define('TXT_TOOLS','Tools');
define('TEXT_ACCOUNTING','Admin-access for:');

/******* SHOPGATE **********/
include_once DIR_FS_CATALOG.'includes/external/shopgate/base/lang/english/admin/english.php';
/******* SHOPGATE **********/

// javascript messages
define('JS_ERROR','Error have occured during the process of your form!\nPlease make the following corrections:\n\n');

 

----------------------------------- file 3 -----------------------------------

File: includes/database_tables.php

// BOF - Tomcraft - 2009-10-03 - Paypal Express Modul 
define('TABLE_PAYPAL','paypal');
define('TABLE_PAYPAL_STATUS_HISTORY','paypal_status_history');
// EOF - Tomcraft - 2009-10-03 - Paypal Express Modul

/******** SHOPGATE **********/
define("TABLE_SHOPGATE_ORDERS","orders_shopgate_order");
/******** SHOPGATE **********/

// BOF - cYbercOsmOnauT - 2011-02-11 - New DB Cache System
$constants=get_defined_constants(true);
$tablesArray=array();

 

----------------------------------- file 4 -----------------------------------

File: admin/orders.php

if($order_updated){

/******* SHOPGATE **********/
if(MODULE_PAYMENT_SHOPGATE_STATUS=='True'){
include_once DIR_FS_CATALOG.'includes/external/shopgate/base/admin/orders.php';
setShopgateOrderStatus($oID,$status);
}
/******* SHOPGATE **********/

$messageStack->add_session(SUCCESS_ORDER_UPDATED,'success');
}else{
$messageStack->add_session(WARNING_ORDER_NOT_UPDATED,'warning');
}
xtc_redirect(xtc_href_link(FILENAME_ORDERS, xtc_get_all_get_params(array('action')).'action=edit'));
break;

 

----------------------------------- file 5 -----------------------------------

File: admin/includes/column_left.php

  if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['products_expected'] == '1')) echo '<li><a href="' . xtc_href_link(FILENAME_PRODUCTS_EXPECTED, '', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_PRODUCTS_EXPECTED . '</a></li>';
echo ('</ul>');
echo ('</li>');

/******** SHOPGATE **********/
include_once DIR_FS_CATALOG.'includes/external/shopgate/base/admin/includes/column_left.php';
/******** SHOPGATE **********/

// BOF - Tomcraft - 2009-11-28 - Included xs:booster
//---------------------------XSBOOSTER
if (MODULE_XTBOOSTER_STATUS=='True') {
echo ('<li>');

 

----------------------------------- file 6 -----------------------------------

File: admin/includes/filenames.php (if not, try admin/includes/application_top.php)

define('FILENAME_PRINT_PRODUCT_INFO','print_product_info.php');
define('FILENAME_PRINT_ORDER','print_order.php');

/******** SHOPGATE **********/
define('FILENAME_SHOPGATE','shopgate.php');
/******** SHOPGATE **********/

define('FILENAME_ERROR_HANDLER','error_handler.php');
define('FILENAME_CONTENT','shop_content.php');

 

----------------------------------- file 7 -----------------------------------

File: admin/includes/functions/general.php

function xtc_remove_order($order_id,$restock=false){
if($restock=='on'){
xtc_db_query("update ".TABLE_PRODUCTS." p
join ".TABLE_ORDERS_PRODUCTS." o on o.products_id = p.products_id
set p.products_quantity = p.products_quantity + o.products_quantity,
p.products_ordered = p.products_ordered - o.products_quantity
where o.orders_id = '".xtc_db_input($order_id)."'");
}
xtc_db_query("delete from ".TABLE_ORDERS." where orders_id = '".xtc_db_input($order_id)."'");
xtc_db_query("delete from ".TABLE_ORDERS_PRODUCTS." where orders_id = '".xtc_db_input($order_id)."'");
xtc_db_query("delete from ".TABLE_ORDERS_PRODUCTS_ATTRIBUTES." where orders_id = '".xtc_db_input($order_id)."'");
xtc_db_query("delete from ".TABLE_ORDERS_STATUS_HISTORY." where orders_id = '".xtc_db_input($order_id)."'");
xtc_db_query("delete from ".TABLE_ORDERS_TOTAL." where orders_id = '".xtc_db_input($order_id)."'");
xtc_db_query("delete from ".TABLE_ORDERS_PRODUCTS_DOWNLOAD." where orders_id = '".xtc_db_input($order_id)."'");

/******** SHOPGATE **********/
$sql_select="SHOW TABLES LIKE '".TABLE_SHOPGATE_ORDERS."'";
$query= xtc_db_query($sql_select);
if(xtc_db_num_rows($query)>0){
xtc_db_query("delete from ".TABLE_SHOPGATE_ORDERS." where orders_id = '".xtc_db_input($order_id)."'");
}
/******** SHOPGATE **********/
}

 

----------------------------------- file 8 -----------------------------------

File: includes/header.php

?>
<?php
/******** SHOPGATE **********/
if(MODULE_PAYMENT_SHOPGATE_STATUS=='True' && strpos($_SESSION['customers_status']['customers_status_payment_unallowed'], 'shopgate') === false){
include_once (DIR_FS_CATALOG.'includes/external/shopgate/base/includes/header.php');
}
/******** SHOPGATE **********/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html <?php echo HTML_PARAMS; ?>>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $_SESSION['language_charset']; ?>" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<?php
/******** SHOPGATE **********/
if(MODULE_PAYMENT_SHOPGATE_STATUS=='True' && strpos($_SESSION['customers_status']['customers_status_payment_unallowed'], 'shopgate') === false){
echo $shopgateJsHeader;
}
/******** SHOPGATE **********/
?>
<?php include(DIR_WS_MODULES.FILENAME_METATAGS); ?>
<link rel="shortcut icon" href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER).DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/favicon.ico';?>" type="image/x-icon" />
<?php

 

----------------------------------- file 9 -----------------------------------

File: includes/modules/product_info.php

Released under the GNU General Public License
---------------------------------------------------------------------------------------*/

/******* SHOPGATE **********/
if(MODULE_PAYMENT_SHOPGATE_STATUS=='True' && strpos($_SESSION['customers_status']['customers_status_payment_unallowed'], 'shopgate') === false){
include_once DIR_FS_CATALOG.'includes/external/shopgate/base/includes/modules/product_info.php';
}
/******* SHOPGATE **********/

//include needed functions
require_once (DIR_FS_INC.'xtc_check_categories_status.inc.php');

 

1.5 Installing the plugin

  1. Log into your shop’s backend.

  2. Navigate to Modules > Payment Systems in menu bar.



  3. In the list of modules, locate Shopgate, and click + Install button on the right.



  4. If installed correctly, the Install button will become Uninstall and Edit buttons. Your plugin is now installed successfully in your modified-eCommerce backend. Reload the page - you should now see Shopgate on your top menu bar.



  5. Click on Shopgate > Settings to open the configuration page (shown below) for the Shopgate plugin. Leave this page open - we will explain how to find the required info in the next chapters.

 

2. Establishing connections between the plugin and Shopgate

After the Shopgate plugin has been installed successfully, two simple tasks need to be done to connect your mobile shop at Shopgate to your shop's backend: to enter API credentials in your shop's backend, and to enter your shop's URL in your Shopgate's admin page.

2.1 Getting API credentials

  1. Log in to your Shopgate Admin page.

  2. Click on Integration from the menu bar, then select Install Interface.



  3. In the drop-down labeled Select a system, type modified-eCommerce and select it.



  4. A popup opens. Look for Customer number, Shop number, API key, and Alias under 2. Configure. These are the API credentials the plugin needs to authenticate at the Shopgate backend. Leave this page open - we will come back to enter the URL (explained in 2.2 Establishing connection)



  5. Copy Customer number, Shop number, API key, and Alias, and paste them individually onto the plugin configuration page you left open from the last chapter. The rest of the options can be configured later (Explained in Chapter 4. Configuring the Plugin). Click Save.

 

2.2 Connecting your shop to Shopgate

  1. Go back to the pop-up window at your Shopgate merchant page (step 4). Enter your shop's URL to the text field under 3. Enter URL. Click connect to establish the interface.



  2. If a connection is made successfully, a popup shown below will open. Here you will be able to assign jobs for your first connection. We recommend leaving all assignments to ON at this time. Click Save.



  3. Congratulations! Now you should see the progress bar running, and the Shopgate backend automatically filling your mobile shop with your products. Depending on how many products you have, the import process can take anywhere from a few minutes to a few hours. You can always check the status of the imports. If no status bar is shown, it means either the import is finished, or no import is running at the moment.

    Welcome to the mobile world :)

 

3. Updating an existing Shopgate plugin

3.1 Deactivating the plugin

Log into your shop’s backend. Navigate to Modules > Payment Systems in the menu on top. Find Shopgate in the list of modules, and click Uninstall on the right.

 

3.2 Backing up the plugin

Use an FTP tool like FileZilla to back up your installation of the plugin. Back up the folder includes/external/shopgate by downloading it:

 

3.3 Deleting the plugin

Use your FTP tool to delete the folder includes/external/shopgate: Right click on Shopage folder, click Delete, and click Yes.

 

3.4 Installing the new version

Please refer to Chapter 1 to learn how to install the latest version of the plugin. However, skip Chapter 1.4. You do NOT need to modify the codes every time you update the plugin.

 

4. Configuring the plugin

Find the detailed explanations under each option. Refer to Chapter 1.5.5 to learn where to find the configuration page.

4.1 Connection Settings

 

4.2 Mobile Redirect

 

4.3 Exporting Categories and Products

 

4.4 Importing Orders

 

4.5 System Settings

 

5. Frequently Asked Questions (FAQ)

5.1 How can I replace the code name of a payment on an order's detail page?

On an order's detail page of your mobile shop, a code name is shown for each payment method. For example, "AUTHN_CC" is shown if a customer has paid with a credit card via Authorize.net, and "COD" is shown if a customer selected "cash on delivery".

If you would prefer to display different names for your payment methods, you can now use the payment mapping feature in your modified-eCommerce admin. To do so, follow the steps here.

  1. In your modified-eCommerce admin, find the Shopgate entry on the left and click Settings.
  2. In the section Importing orders, find Display names for payment methods.
  3. To map your display names, enter "Codename"="your display name" and separate each payment with a semicolon. For example, enter
    AUTHN_CC=Credit card via Authorize;COD=Cash on delivery

Use the table below to find the code names of your payments.

Code name Description Codename Description
ACCRD_INS Installment via Accarda PAYONE_IDL iDEAL via PAYONE
ACCRD_INV Invoice via Accarda PAYONE_INV Invoice via PAYONE
AUTHN_CC Credit card via Authorize.net PAYONE_KLV Klarna invoice via PAYONE
BARZAHLEN Pay in store via Barzahlen PAYONE_PP PayPal via PAYONE
BILLSAFE Invoice via Billsafe PAYONE_PRP Prepayment via PAYONE
BRAINTR_CC Credit card via Braintree PAYONE_SUE SOFORT Überweisung via PAYONE
CHASE_CC Credit card via Chase Paymentech PAYPAL PAYPAL
CMPTOP_CC Credit card via Computop PAYU PayU
CMPTOP_DBT Direct debit via Computop PP_WSPP_CC Credit card via PayPal Website Payments Pro
CMPTOP_PP PayPal via Computop PPAL_PLUS PayPal Plus
COD Cash on Delivery PREPAY Prepayment
COLL_STORE Collection at store REALEX_CC Credit card via Realex
CONCAR_CC Credit card via ConCardis (DirektLink) SAGEPAY_CC Credit card via SagePay
CYBRSRC_CC Credit card via CyberSource SAGEPAY_PP PAYPAL via SagePay
DEBIT Direct debit SHOPGATE Shopgate payments
DT_CC Credit card via DataTrans SIX_CC Credit card via SIX Saferpay (External)
DTCASH_CC Credit card via DataCash SIX_IDEAL iDEAL via SIX Saferpay
EWAY_CC Credit card via eWAY SIX_PP PayPal via SIX Saferpay
FRSTDAT_CC Credit card via FirstData US SKRILL_CC Credit card via Skrill (External)
HDLPAY_CC Credit card via HeidelPay SKRILL_DBT Direct debit via Skrill
HDLPAY_SUE HeidelPay (SOFORT Überweisung) SKRILL_IDL iDEAL via Skrill
HIPAY Credit card via HiPay (external) SKRILL_SUE SOFORT Überweisung via Skrill
INVOICE INVOICE (Own Settlement) SPONE_DBT Direct debit via SEPAone
KLARNA_INV Invoice via Klarna STRIPE_CC Credit card via Stripe
MASTPAY_CC Credit card via Masterpayment SUE SOFORT Überweisung
MASTPAY_PP PAYPAL via Masterpayment TELECSH_CC Telecash
MASTPAY_SUE Masterpayment (SOFORT Überweisung) TRNSFST_CC Credit card via TransFirst
MSTPAY_INV Invoice via Masterpayment UPAID_MCM MasterPass
MWS Amazon Payments (Own - APA) USAEPAY_CC Credit card via USA ePay
OGONE_CC Credit card via Ogone WCARD_DBT Direct debit (External) via Wirecard (Checkout Page)
PAY4ONE_CC Credit card via Pay4one WCARD_INV Invoice via Wirecard (Checkout Page)
PAYJUNC_CC Credit card via PayJunction WCARD_PP PayPal via Wirecard (Checkout Page)
PAYMRW_DBT Direct debit via Paymorrow WCARD_SUE SOFORT Überweisung via Wirecard (Checkout Page)
PAYMRW_INV Invoice via Paymorrow WCARDS_CC Credit card (External) via Wirecard (Checkout Seamless)
PAYOL_INS Installment via Payolution WCARDS_DBT Direct debit (External) via Wirecard (Checkout Seamless)
PAYOL_INV Invoice via Payolution WCARDS_PP PayPal via Wirecard (Checkout Seamless)
PAYONE_CC Credit card via PAYONE WCARDS_SUE SOFORT Überweisung via Wirecard (Checkout Seamless)
PAYONE_DBT Direct debit via PAYONE WIRECRD_CC Credit card (External) via Wirecard (Checkout Page)
PAYONE_GP Giropay via PAYONE WORLDLINE Credit card via Worldline (External)

Comments