Cấu Hình MobiSales
This document describes how to configure CloudERP for Retail explaining solution specific settings in
- Enterprise model
- Store pricing
- Cash Management
For generic documentation about CloudERP configuration please follow the Quick Guide. If you are trying out CloudERP for Retail for the first time, you MUST first execute all of the Business Setup configuration instructions in the Quick Guide before executing the configuration instructions below.
Installing CloudERP for Retail
To install the module (an CloudERP Professional instance is needed because it is a commercial module):
- Login as System Administrator
- Navigate to General Setup -> Application -> Module Management
- Click the Add Modules tab
- Find the CloudERP for Retail module within the list of available modules.
- Click on Install Now and follow the guided installation flow
Add Retail Stores to the Organization Model
In CloudERP an organization is a business unit within an entity (company). Each entity can have more than one business unit to cover different zones, areas, region, stores... CloudERP allows the definition of a hierarchical structure of organizations where a parent-child relationship between them can be determined. The result is a n-level organization tree, as follows:
This structure is flexible enough to support any further organizational change and may have unlimited levels, branches and nodes at each level as the situation may demand.
In Organization window there is new group of fields called Retail Configuration. There you can find Retail Organization Type field where you define whether an organization is a store or a group of stores:
- Represents a physical retail store
- Only leaf organizations should be configured as store type
- The POS terminals set up in CloudERP shall be restricted to stores
- Must have an Anonymous Customer (Business Partner defined as Customer)
- Must have an Anonymous Customer Location
- Must have at least one on-hand warehouse defined in the "Warehouses" tab
- The currency defined is the currency that will be used in all terminals of this store. The currency used can be edited to define retail configurations like the precision used in MobiSales terminals.
- Represents a grouping of stores (or other groups)
Store Pricing Configuration
Item pricing can be managed by store or store group. This allows the retailer to manage multiple pricing for a single item.
In Organization window there is a 'Price List' field inside Retail Configuration group. Any node of the enterprise model (either group or store) can have a sales price list assigned.
Pricing management rules:
- Prices defined at store level will always overwrite the prices defined at parent level
- If the store does not have any attached price list, the price will be inherited from the parent element (store group) in the organizational structure
In the following example all stores located on Zone 1 will use the prices defined at Zone 1 level, except the Store 11, that is going to have its own price list.
Before RMP19, only price lists which included the tax were supported. Starting RMP19, pricelists without including taxes are also supported in Retail.
In case a pricelist without taxes is used, the prices shown in the receipt lines will be net prices, and an additional line which includes the total tax will be shown. The total amount of the receipt will still be the gross amount.
Assortment management allows the retailer to determine the product range that will be made available for sale at various stores.
A new window Assortment is created to provide a new grouping for products.
The window has two processes (buttons) for common operations dealing with assortment:
- Clone: New button is displayed in the toolbar. It will create a copy (clone) of the selected assortment. Newly created assortment is opened in form view in order to let the user modify it if required
- Include all products: The user will be able to include all products at once in the assortment by using this button. Duplicated products in the same assortment are not allowed
Organization window has a new optional field Assortment inside Retail Configuration section. Any node of the enterprise model (either group or store) can have an assortment assigned.
Assortment management rules:
- If a store has an attached assortment, it can only trade with products defined inside the assortment
- Assortment defined at store level will always overwrite assortment defined at parent level
- If the store does not have any attached assortment, the assortment will be inherited from the parent element (store group) in the organizational structure
Note: Only products included in the assortment and have a price defined in the price list assigned to the store will be available to sell.
Cash Management Events
A cash management event is either a cash deposit or withdrawal in the store, but also the process of cashing up. A store can have several cash management events and they are configured differently depending on the nature of the event (in, out, close).
These events are managed in WebPOS and need to be defined in tab Cash Management Event in Organization window.
For each event you need to define the following:
- Name: Name of the event. In "in/out" event type, the name can be seen as the event reason shown in WebPOS to allow the cashier give more detail of the operation (e.g it can be different reasons for withdrawing money from the store, for instance the cash security level is reached in the store, or we need to transfer money from one store to another)
- Currency: Currency of the event
- Payment Method: Payment method associated to this event. In case of cash up, it is necessary to create as different close events as different payment methods are supported in the store
- Event Type: In, out, close depending on the nature of the event
- Financial Account: The account which will be the destination (or the origin) of the cash movement and it depends again on the nature of the event. For in case, it is the financial account from where money is going to be extracted (origin). For out case, it is the financial account from where money is injected (destination). Finally, for close it is the financial account where money is also going to be injected (destination). Be careful, do not use the same financial account in payment types (payments allowed for a POS Terminal) and for "close" Financial Accounts. Moreover, it is recommended to use a different financial account in payments allowed for a POS Terminal and for the "cash management" events.
Customers default configuration
The are some fields we must fill if we want to create new customers in MobiSales. These fields will be the default value for customers created in our terminal.
- Default invoice term for BPs
- Default payment term for BPs
- Default BP Category for BPs
- Default country for BPs
- Default organization term for BPs
- Show Tax ID for BPs Edition: If checked, this option will show an extra field to insert the Tax ID.
- Show BP Category selector for BPs edition: If checked, this option will show an extra field to select the BP category.
By default all of the products are grouped in MobiSales. It means that when a line representing a product is already in the ticket and more units are added, the line will change the quantity without creating new lines.
If you want to create a new line for each product, "Grouped product" field should be disabled.
This field is located in the header of the product window.
Since RMP32 Not grouped products will generate new lines when they are added to the ticket through "Browse", "Search", "Scan". When they are added to the ticket we will be able to change the quantity of each line (Not allowed before).
Enable cross store for a product
Cross store is an utility which allow us to see the detailed stock by bin in our store and also the stock of the product in other warehouses of the organization.
To see the stock detail view the field Show stock screen shuold be checked in the product window.
In this example we will activate the stock screen for the product Base camp duffel 70L
After this configuration, MobiSales will open the stock window when a product is clicked in order to be added to the ticket.
By default, the product images are automatically loaded into the browser local database, so they can be used offline in a convenient way. However, the browser local database has a maximum size limitation in all environments, and in some of them this maximum size can be quite restrictive (specifically, in iOS, the maximum size is restricted to 50 MB).
If this maximum size is not enough for your needs, you can configure the MobiSales so that it doesn't save the images into the local database, and instead requests them directly to the server.
The slight downside to using this method is that in when the POS goes offline, images for previously used products will be available, but the images for products not yet used will not (the generic 'box' image will be shown instead). If this downside is not relevant for you, then you can definitely use this method to make it possible to use big amounts of products with images in devices such as the iPad
How to configure the alternate way to load images
The first step to configure this alternate way to load images is to create a preference in the system, with property MobiSales Product Images from server instead of cache, and with value Y.
This preference will tell the MobiSales that it needs to load images from the server directly, instead of loading them from the local database.
To improve the performance of this functionality, and ensure that the server is not overloaded with the image requests, the images are read directly from files in the server, instead of the database. This means that image files need to be generated from the product images in the database. To do this, a process called Generate Product Images needs to be run.
This process receives an assortment as a parameter, and will generate files for all products in the assortment which contain an image. After this process has been run, the MobiSales terminals should be able to load all product images without trouble.
POS Terminals represent the different terminals on each store and need to be configured properly in order to ensure operations are well supported in the backofice (e.g stock is updated in the backoffice when a sale is registered, invoice is created if customer requires it, etc.).
Most of the configuration take place in two windows:
- POS Terminal Type
- POS Terminal
The POS Terminal Type window contains what can be described as a "POS Terminal Configuration". This is a configuration designed to model a type of POS terminal. Each POS Terminal can only have one POS Terminal configuration.
It allows a very flexible configuration and an example would be a multi-store company. Each store could be managed differently (e.g have different cash up processes). In this case, different Pos Terminal Types could be defined for each store. And terminals within same store could share the same Pos Terminal Type.
This two tables are designed to simplify the configuration process for the user: if the user needs to configure 100 terminals, but all of them are basically identical, then the amount of data he will need to insert is quite small, because all POS terminals will point to the same POS Terminal configuration.
In this section, we will first describe how POS Terminal Types are configured, and then we will describe the POS Terminal window.
POS Terminal Type window
In this window, you basically design a POS Terminal configuration, which will be used by one or many POS terminals. Here you configure relevant information at POS level, but also at payment method level.
In the header, you configure the following fields:
- Name: The name of the POS terminal type
- Document type: The document type used for sales orders
- Document type for returns: The document type for returned receipts
- Document type for reconciliations: The document type used for the reconciliations done when executing the "Cash up" process in the POS
- Document type for quotations: The document type for quotations
- Group orders in one invoice: If checked, then all orders processed in MobiSales without an invoice are grouped by Business Partner and an invoice for each group of orders is created in the Cash Up process. If unchecked, one invoice per order will be created.
step will appear to open drawer before finish paying the ticket.
- Allow pay on credit: If checked, all POS terminals of this POS terminal type will be able to pay sales orders as a credit.
- Default Payment Method: Selects the payment method that will be used by default when closing a receipt.
- Use external input: (Previously Use barcode scanner) If checked, the MobiSales will take into account that an external input (keyboard or barcode scanner) is going to be used in this POS terminal type. Checking this option and then not connecting an external barcode will cause the virtual keyboard to be shown continuously in some devices (specifically, in iOS devices (iPads, iPhones)).
In addition to these, there are two more fields which define how the masterdata reloading is done:
- Time to fully refresh masterdata (in minutes): A full refresh is the process of reloading the whole masterdata set (including products, business partners, prices, taxes, ...). This operation is very expensive and time consuming, so it should be done only when really needed (typically, every day). If done with too much frequency, this may tax too much the server, greatly slowing down the operation of POS terminals.
- Time to incrementally refresh masterdata (in minutes): This process is much lighter than a full refresh, because it only loads records which were changed from the last time a refresh was done. This is much less expensive than a full refresh, but has the disadvantage that if a record was deleted, it will not detect it.
If neither of the fields is defined, then the system will fully refresh all data when the user logs in (and data will not be automatically refreshed until the next log in).
If only the first field is filled, then the system will fully refresh all data both on login, and periodically every number of minutes as specified in the field.
If only the second field is filled the system will fully load the data the first time the user logs in the POS, and afterwards only incremental loads will be done (periodically, every number of minutes as specified in the field).
If both fields are specified, then both incremental and full reloads will be done each number of minutes as indicated on each field.
In the Payment Method subtap, you configure the following fields:
- Search key: An identifier string for the payment method.
- Name: The name of the payment method
- Payment method: The CloudERP payment method associated with this POS payment method
- Currency: The currency associated to this payment method in POS
- G/L Item for Writeoff: In case the amount received when paying a ticket differs from what is expected, this G/L Item reflects this difference. We strongly recommend using the name of the POS terminal and the Payment method for naming the G/Item in order to avoid problems with matching transactions and bank statements. Example: VBS Cash overpayments
- Payment Provider: Dialog that will be used to confirm the payment of a receipt using this payment method, usually the dialogs listed in this field are included by payment gateway modules.
- Refund Provider: Dialog that will be used to confirm the refund of a return order using this payment method, usually the dialogs listed in this field are included by payment gateway modules.
- Allow Open Drawer: If checked, to paid, the cash drawer will be opened
- Open drawer before closing ticket: If checked, when paying a ticket, new
- Cash: When checked indicates this payment method is a cash method and will show a coins and bank notes panel when selected. To configure a new coins and bank notes panel go the document How to create a new coins and bank notes selector. It also indicates that overpayments made with a cash method will be returned to the customer and the change to return to the customer will be calculated and displayed in the payment panel.
- Show coin keypad: If the payment method is cash you can configure if you want to see the coin keypad checking this field to yes. If unchecked, the basic numeric pad will appear.
- Automate movement to Other: If this field is selected, there will be an additional step during the cash up process for this payment method, which will allow the user to specify how much money should be kept in the main account, and how much will be moved to a secondary account (configured in the Cash Management Events tab of Organization window). Hence, if you select this, following checks need to be considered, which are the different options given to the user while cashing up for this payment method:
- Keep Fixed amount: A fixed amount will be kept in the financial account of the terminal
- Amount:: The amount for the previous option
- Allow variable amount: If checked, the user will be able to input an amount to keep in the financial account of the terminal
- Allow not to move: If checked, the user will be able to keep everything in the financial account of the terminal, so not "moving" money
- Allow move everything: If checked, the user will be able to move all money to the destination financial account configured in the Cash Management Event
- Cash differences: This G/L Item is used if there are cash differences during cash up (theoretical amount different than the counted one). The created transaction will be associated with it. We strongly recommend using the name of the POS terminal and the Payment method for naming the G/Item in order to avoid problems with matching transactions and bank statements. Example: VBS Cash differences
- Cash deposit/withdrawal: This G/L Item is the one associated in the transaction added in the financial account in both terminal and backoffice after cash up processed is processed. So it is important a G/L Item is configured here. We strongly recommend using the name of the POS terminal and the Payment method for naming the G/Item in order to avoid problems with matching transactions and bank statements. Example: VBS Cash G/L Item for Cash up
- Count Cash: For payment methods marked as Cash indicates whether to show or not a cash count step in the cash up process to count the cash amount in the drawer with the help of currency denominations. To activate this option you must configure first Coins and Bank notes in the Currency window for the payment method currency.
- Allow withdrawals: If checked, withdrawals can be created associated with this payment method
- GLItem for withdrawals: The G/L Item associated with the transactions created for withdrawals. We strongly recommend using the name of the POS terminal and the Payment method for naming the G/Item in order to avoid problems with matching transactions and bank statements. Example: VBS Cash withdrawal
- Allow deposits: If checked, deposits can be created associated with this payment method
- GLItem for deposits: The G/L Item associated with the transactions created for deposits. We strongly recommend using the name of the POS terminal and the Payment method for naming the G/Item in order to avoid problems with matching transactions and bank statements. Example: VBS Cash differences
POS Terminal window
In this window specific POS terminals can be added. Every POS terminal needs to be added here.
In the header, the following fields are configured:
- Search key: An identifier for this terminal, it must be unique and it is the one that is going to be used in the URL to access the terminal
- Name: The name of the terminal
- Hardware URL: The URL of the receipt printer, it will be given by the hardware manager, followed by /printer
- Scale URL: The URL of the scale
- Order Document No PREFIX: This prefix is used for the POS order documents generated in Sales Order window in the backoffice for each ticket of the POS terminal
- Order Quotation No Prefix: This prefix is used for the document number of POS quotations generated in this POS terminal.
- POS Terminal type: The Terminal Type which describes the configuration used by this POS terminal
- Default Tab for MobiSales: Ability to define whether the tab for selecting products is Scan (when scanning products is the main action) or the browse
- Default customer: The customer can be configured at store level or at terminal level. In this case it is more restrictive so if it is filled then the system will use this customer instead
- Terminal Key Identifier: When Terminal Authentication enabled preference is 'Y', this is the code for this POS Terminal configuration. Using for first time a physical device connecting to MobiSales we will be able to link the device to this configuration using this code.
- Is linked to a physical device: This field is checked when a physical device is linked to this POS Terminal configuration using Terminal Authentication security.
- Unlink device: This process button allow us to unlink the actual physical device from this configuration. We could lose data not synchronized in the ERP (terminal is offline and exists data to send to the ERP), we need to be sure of this action.
In the payment type, the following information is configured:
- Search key: It is an identifier string for the payment method.
- Name: The name of the payment method
- Payment method: The payment method type defined in the POS Terminal Type, which contains the configuration information for this payment method
- Financial account: The financial account associated with this payment Very important: The financial account must be associated only with this payment. The Organization of the Financial Account, must be in the Org Access list of the User Role (Only in the Cash Up process) . POS processes will not work correctly otherwise
- Cash management close event: The cash management close event which should be used when executing the cash up process
Very important. Payment methods are secured by Search key value in Role preferences. There are three predefined values: OBPOS_payment.cash for cash payments. OBPOS_payment.cash payment method is also used to calculate cash change in the payment panel. OBPOS_payment.card for card payments and OBPOS_payment.voucher for voucher payments. If you need to add new payments with different Search key values you need to secure them in order to allow users to use the new payments you create. To do this, as System Administrator you need to go to the window References, in this window search the record with name Property Configuration and in the tab List Reference add a new record with the same Search key as the new payment you need to add. Once it is created you will be able to assign permissions to this new payment in the Preferences window.
Note. The search key field in the tab List Reference must start with the DB prefix of the module you are creating this value, but the search key of the payment method does not need to start with any prefix, so for example if the search key in List Reference is OBPOS_payment.mypayment the search key in the payment method to secure can be OBPOS_payment.mypayment or payment.mypayment.
Note. When a ticket is created within MobiSales, the information related to the payments of this order is stored in Sales Order > Payment plan > payment details
Note. Do not add payment types if this posterminal has an open cashup. This window is to define configuration before start working in MobiSales, if you change the configuration while the terminal is operating you could have errors in the terminal or data inconsistency.
In the cash up history, the following information is configured:
- Organization: It is store of the POS Terminal.
- User/Contact: The name of the user who did the cash up.
- Cashupdate: The date when the cash up was done.
- Cash Up Report: This process button, create a pdf report with all the information about the cash up.
In the reconciliation subtab, the following information is configured:
- Payment type: It is payment type which is related to the financial account of the reconciliation.
- Reconciliation: The reconciliation itself.
Not every user is supposed to have access to MobiSales and not every MobiSales user is supposed to have access to Cash Up and Cash Management. You can set access to these windows in the back office as follows.
Enabling a role to access MobiSales:
- Go to the Role window in the back office (General Setup > Security > Role)
- Select the role you want to grant access to MobiSales to
- Go to the child tab called Form Access
- If it does not exist yet, create a new record and set the Special Form field to MobiSales.
- Save and reload the MobiSales for the changes to take effect
Setting access to specific functionality:
Note roles defined as Automatic (Manual field is unchecked) have access to all functionality regardless preferences.
- Go to the Preference window in the back office (General Setup > Application > Preference)
- Create a new record and select the functionality in the Property field. For example order.discount or MobiSales window Cash Up.
- Set the value to Y in the value field to enable access.
- Set the desired visibility in the Visibility section below.
- Save and reload the MobiSales for the changes to take effect
The following functionalities are relevant for MobiSales users:
- Changing price (MobiSales action Change price, by default revoked)
- Giving discount (MobiSales action Apply discount, by default revoked)
- Invoice receipt (MobiSales action Invoice receipt, by default granted)
- Return receipt (MobiSales action Return receipt, by default granted)
- Print report in Cash Up (MobiSales action Print cash up, by default granted)
- Print report in Cash Management (MobiSales action Print cash management, by default granted)
- Print receipt menu action (MobiSales action Print receipt, by default revoked)
- Using payment type card (MobiSales payment Card, by default granted)
- Using payment type cash (MobiSales payment Cash, by default granted)
- Using payment type voucher (MobiSales payment Voucher, by default granted)
- Accessing Cash Management (MobiSales window Cash management, by default revoked)
- Accessing Cash Up (MobiSales window Cash Up, by default revoked)
- Accessing Point of Sale (MobiSales window Point of Sale, by default granted)
- Accessing Back Office (MobiSales Back Office, by default granted)
- Creating Discretionary Discounts (MobiSales action Advanced Discounts, by default granted; together with MobiSales action Apply discount)
- Editing Firm Quotation check when creating order from Quotation (MobiSales Quotation: Editable Firm Check, default granted, available from RMP27)
- Change profile settings (Mobile Change Profile, by default granted, available from RMP30). Allows to change profile settings (role and language)
- Sales with Returns (Do not allow Sales with return, by default revoked)
- Switch from positive to return line (Enable switch from positive line to return line, by default granted)
- Multi Order (MobiSales Enable Multi Order menu entry, by default granted)
- Receipt Discounts from Keyboard (MobiSales Open Discounts From Keyboard, by default granted, available from RMP28)
- Open Drawer button (MobiSales Open drawer from menu, by default granted, available from RMP29)
- Select a specific warehouse to consume the goods for a specific order line (Allow to select a warehouse for a specific line order), by default revoked.
The following functionalities are related to Quotations:
- Create Quotation (MobiSales action create new quotation, by default revoked)
- Sales Order from Quotation (MobiSales action create sales order from quotation, by default revoked)
- Reactivate Quotation (MobiSales action reactivate quotation, by default revoked)
- Reject Quotation (MobiSales action reject quotation, by default revoked)
- Show Quotation (MobiSales action show quotations, by default revoked)
Note that access to Cash Up and Cash Management will be disabled by default for new roles.
When the user has no access to specific menu entries these ones will be hidden in the menu
Enabling specific terminals for users:
Starting CloudERP for Retail RMP20, specific users can be given access to specific POS terminals. This is done through the POS Terminal Access tab in the User window.
The following rules are followed to decide whether a user has access to a terminal or not:
- If a user doesn't have entries in the POS Terminal Access tab, then it can log in all the available POS Terminals (provided that it has access to a role with access to the MobiSales form).
- If a user has entries in the POS Terminal Access tab, then it can only access the terminals specified there.
Some actions require of supervisor's approval in order to be accomplished.
When an action requiring of approval is performed a pop up requesting supervisor's credentials is shown and it is not possible to continue till these credentials are provided or the approval is cancelled aborting the action in this way.
In case the user launching the action is a supervisor, no approval is requested to complete it.
Each action requiring approval can have its own supervisors, thus it is possible for a user to be supervisor of action A but not action's B supervisor.
Each Approvable Action require of a different preference to be set:
- "Approvable Action" Preference with value N at client level. In order to show Approval Modal.
- "Approvable Action" Preference with value Y at user's or role level. In order to give access to this action.
Note that, as opposite as the other security preferences, supervisor preferences require of explicit setting, this means automatic roles are not considered as supervisor unless there is a preference defining it.
Here is the list of actions that can require approval:
- When pressin Total toolbar button, approve Discretionary Discounts. Property MobiSales Discretionary Discount Approval (OBPOS_approval.discounts). More information about this action can be found here.
- Open Cash Management window. Property MobiSales Cash Management window approval (OBPOS_approval.cashmgmt).
- Open Cash Up window. Property MobiSales Cash Up window approval (OBPOS_approval.cashup).
- Open Cash Drawer in Cash Up window. Property MobiSales Open Drawer approval Cas Up (OBPOS_approval.opendrawer.cashup).
- Open Cash Drawer in Point of Sale window. Property MobiSales Open Drawer approval Menu (OBPOS_approval.opendrawer.menu).
- Remove suspended orders in Cash Up(Step 1) window. Property MobiSales Remove Receipts Approval in Cash Up (OBPOS_approval.cashupremovereceipts).
- Remove receipts with Delete button or Login out. Property MobiSales Remove Receipts Approval (OBPOS_approval.removereceipts).
- Remove an order line. Property MobiSales Delete Line Approval (OBPOS_approval.deleteLine).
- When pressin Total toolbar button, approve return lines. Property MobiSales Returns Approval (OBPOS_approval.returns).
- Set price of a product in a line. Property MobiSales set Price approval (OBPOS_approval.setPrice).
- Approve difference between Expected and Counted cash. Property MobiSales Cash Up Differences Approval (OBPOS_approval.cashupdifferences).
Whenever an action is approved by a supervisor, the Sales Order created in the back office keeps track of the supervisor's user as well as the action she approved.
This information can be seen in the Approvals read only sub tab in Sales Order window.
Approvals can be granted in offline mode. In order to approve an action being in this mode, it is required that the user that has granted to that action has logged in at least one time being online in the terminal
Terminal Authentication Security
In order to enable the new Terminal Authentication Security (Enhance Terminal Authentication) exists a Preference: Terminal Authentication enabled. By default, this preference has 'N' value, put 'Y' to enable Authentication security.
If security is not enabled we need to put the terminal searchKey in the URL. If security is enable we share the same URL in all terminals.
- Terminal Authentication enabled is 'N': Access url --> openbravo/web/org.openbravo.retail.posterminal/?terminal=VBS-1
- Terminal Authentication enabled is 'Y': Access url --> openbravo/web/org.openbravo.retail.posterminal/
The following preferences can be also set.
- Quotations are not Firm by default. When creating an order from a quotation, by default Firm is checked unless this preference is set to Y.
MobiSales Locale Settings
UI language in MobiSales works in a similar way as in ERP: it is defined per session and can be changed, while being online, from User > Profile dialog.
It is possible to define a default language for MobiSales at role level, this default language will be set to user when the role is set as default for MobiSales. Additionally it a user can be restricted not to change her defaults by using the Change Profile Settings preference.
Business Objects such as Product, Product Categories, Taxes, Promotions and Discounts, etc. Are also translated to the same language the UI is set to.
Date and Numeric
Numeric and date formats in MobiSales are defaulted to the same that in backoffice.
Starting from RMP31 these formats can be set different to the default ones at Store, Group of Stores or Group of Organization levels. It will be used the most specific one, for example having this Organization tree:
Formats in Format.xml: date: dd/MM/yyyy numeric: "." decimal, "," for thousand grouping Organizations/Stores definition: * |- Group 1 (defined date format: MM-dd-yyyy) | |- Store 1.1 | |- Store 1.2 (defined numeric format: "," decimal, "." for thousand grouping) |- Group 2 (defined numeric format: "," decimal, "." for thousand grouping) |- Store 2.1 |- Store 2.2 (defined numeric format: "." decimal, "," for thousand grouping)
The format that would be used in each of the stores would be:
|Store||Date Format||Numeric format (decimal/thousands separator)|
|Store 1.1||MM-dd-yyyy (taken from Group 1)||./, (taken from Format.xml)|
|Store 1.2||MM-dd-yyyy (taken from Group 1)||,/. (taken from Store 1.2)|
|Store 2.1||dd/MM/yyyy (taken Format.xml)||,/. (taken from Group 2)|
|Store 2.2||dd/MM/yyyy (taken Format.xml)||./, (taken from Store 2.2)|
These settings can be configured in Organization window:
Print templates are used to print different reports from MobiSales. Default ones can be overwritten by others provided by external modules.
In the same way it is possible to change date and numeric formats at Store/Organization level, templates can be defined at those levels. They are set in Organization window in MobiSales Formats field section. Precedence of these settings works in the same way as described in previous section.