Access to add and change pages is restricted. See: https://cwiki.apache.org/confluence/display/OFBIZ/Wiki+access

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Many eCommerce websites, especially in Asian countries, nowadays use short messaging service (SMS) to notify customers with their order detail, shipment tracking, one time passwords etc. So we thought of contributing generic code and one sample implementation of SMS gateway integration to the OFBiz.

User Stories:

  • As a user/developer, I should be able to configure multiple SMS gateway vendors into the system so that there will not be any dependency on single SMS gateway vendors.
  • As a developer, the implementation process for multiple SMS gateway vendors should be simple and generic.
  • As a user, I should be able to send different types of SMS like order confirmation, new user registrations etc using any of the SMS gateway setup in the system.
  • As a user, I should be able to setup the static/dynamic contents for the SMS to be sent.
  • As a user, I should be able to configure different SMS gateways for different stores.

Taking the reference of already implemented email, shipment and payment gateway integration in OFBiz, the database schematic for SMS gateway integration can be designed as follows:


Brief about the data model:

  1. ProductStoreTelecomSetting:
    This entity will be used for associating all gateway related setting with the product store. The details of each field in the entity are as below:
    -- productStoreId: will hold the value of the Product Store to which gateway settings need to be applied.
    -- telecomMethodTypeId: will hold the value of the type of telecom method user wants to use. for ex. SMS, MMS, WhatsApp etc. This entity will have relatioship with TelecomMethodType entity.
    -- telecomMsgTypeEnumId:  will hold the value of type of telecom message user wants to send. for ex. ORDER_SMS, INVOICE_SMS, USER_REGISTRATION_SMS, OTP etc. This entity will have relatioship with Enumeration entity.
    -- telecomCustomMethodId: will hold the value of custom method which needs to be called to send the telecom message. This entity will have relatioship with CustomMethod.
    -- telecomGatewayConfigId: will hold the value of which gateway configurations need to be used.
  2. TelecomGatewayConfig:
    This entity will hold the value of telecomGatewayConfigId and bridging the ProductStoreTelecomSetting with the custom entity specific to the telecom gateway. i.e. here it is Msg91GatewayConfig.
  3. TelecomMethodType:
    This type entity will hold the values of the type of message user wants to send. for ex. ORDER_SMS, INVOICE_SMS etc.
  4. Msg91GatewayConfig:
    This will be the custom entity specific to the telecom gateway which will hold all configuration related values of the gateway.

At service level, we will be writing one common generic service to send SMS as like sendEmail in OFBiz. The user/developer will need to write the custom service, specific to the API provider/vendor to prepare vendor specific parameters or data which will be needed for calling SMS APIs.

  • No labels