2.22. ecml
Uses ECML (Electronic Commerce Markup Language) module to map Interchange forms/userdb to ECML checkout
2.22.1. Summary
Parameters: name function
- function (default = 'widget')
Place form boxes on page: [ecml name] [ecml address] Magic database entry from country database: [ecml country] Map values back to Interchange variables for saving in UserDB: <INPUT TYPE=hidden NAME=mv_click CHECKED VALUE="ECML_map"> [set ECML_map] [ecml function=mapback] [/set]
Positional parameters in same order.
The attribute hash reference is passed to the subroutine after the parameters as the last argument. This may mean that there are parameters not shown here.
Must pass named parameter interpolate=1 to cause interpolation.
Invalidates cache: no
Called Routine:
ASP-like Perl call:
$Tag->ecml( { name => VALUE, function => VALUE, } ) OR $Tag->ecml($name, $function, $ATTRHASH);
2.22.2. Description
This package implements the ECML standard for the Interchange demo. ECML stands for "Electronic Commerce Modeling Language", but at this writing it is a simple standard for naming variables so that "electronic wallets" can pre-fill-in your checkout form based on users past purchase from other companies.
It translates into ECML from the following Interchange variables:
ECML | Interchange variable |
Ecom_BillTo_Online_Email | b_email |
Ecom_BillTo_Postal_City | b_city |
Ecom_BillTo_Postal_CountryCode | b_country |
Ecom_BillTo_Postal_Name_First | b_fname |
Ecom_BillTo_Postal_Name_Last | b_lname |
Ecom_BillTo_Postal_Name_Middle | b_mname |
Ecom_BillTo_Postal_Name_Prefix | b_title |
Ecom_BillTo_Postal_Name_Suffix | b_name_suffix |
Ecom_BillTo_Postal_PostalCode | b_zip |
Ecom_BillTo_Postal_StateProv | b_state |
Ecom_BillTo_Postal_Street_Line1 | b_address1 |
Ecom_BillTo_Postal_Street_Line2 | b_address2 |
Ecom_BillTo_Postal_Street_Line3 | b_address3 |
Ecom_BillTo_Telecom_Phone_Number | b_phone_day |
Ecom_ConsumerOrderID | mv_order_number |
Ecom_Payment_Card_ExpDate_Day | mv_credit_card_exp_day |
Ecom_Payment_Card_ExpDate_Month | mv_credit_card_exp_month |
Ecom_Payment_Card_ExpDate_Year | mv_credit_card_exp_year |
Ecom_Payment_Card_Name | c_name |
Ecom_Payment_Card_Number | mv_credit_card_number |
Ecom_Payment_Card_Protocol | payment_protocols_available |
Ecom_Payment_Card_Type | mv_credit_card_type |
Ecom_Payment_Card_Verification | mv_credit_card_verify |
Ecom_ReceiptTo_Online_Email | r_email |
Ecom_ReceiptTo_Postal_City | r_city |
Ecom_ReceiptTo_Postal_CountryCode | r_country |
Ecom_ReceiptTo_Postal_Name_First | r_fname |
Ecom_ReceiptTo_Postal_Name_Last | r_lname |
Ecom_ReceiptTo_Postal_Name_Middle | r_mname |
Ecom_ReceiptTo_Postal_Name_Prefix | r_title |
Ecom_ReceiptTo_Postal_Name_Suffix | r_name_suffix |
Ecom_ReceiptTo_Postal_PostalCode | r_zip |
Ecom_ReceiptTo_Postal_StateProv | r_state |
Ecom_ReceiptTo_Postal_Street_Line1 | r_address1 |
Ecom_ReceiptTo_Postal_Street_Line2 | r_address2 |
Ecom_ReceiptTo_Postal_Street_Line3 | r_address3 |
Ecom_ReceiptTo_Telecom_Phone_Number | r_phone |
Ecom_SchemaVersion | ecml_version |
Ecom_ShipTo_Online_Email | |
Ecom_ShipTo_Postal_City | city |
Ecom_ShipTo_Postal_CountryCode | country |
Ecom_ShipTo_Postal_Name_Combined | name |
Ecom_ShipTo_Postal_Name_First | fname |
Ecom_ShipTo_Postal_Name_Last | lname |
Ecom_ShipTo_Postal_Name_Middle | mname |
Ecom_ShipTo_Postal_Name_Prefix | title |
Ecom_ShipTo_Postal_Name_Suffix | name_suffix |
Ecom_ShipTo_Postal_PostalCode | zip |
Ecom_ShipTo_Postal_StateProv | state |
Ecom_ShipTo_Postal_Street_Line1 | address1 |
Ecom_ShipTo_Postal_Street_Line2 | address2 |
Ecom_ShipTo_Postal_Street_Line3 | address3 |
Ecom_ShipTo_Telecom_Phone_Number | phone |
Ecom_TransactionComplete | end_transaction_flag |
Once the form variables are input and sent to Interchange, the [ecml function=mapback] tag will cause the input results to be mapped back from the ECML names to the Interchange names.
If you only have a name variable in your UserDB, the module will attempt to split it into first name and last name for ECML purposes and map the results back. If you have fname and lname, then it will not.