US20180165067A1 - Automatic generation of native e-commerce applications for mobile devices - Google Patents
Automatic generation of native e-commerce applications for mobile devices Download PDFInfo
- Publication number
- US20180165067A1 US20180165067A1 US15/379,427 US201615379427A US2018165067A1 US 20180165067 A1 US20180165067 A1 US 20180165067A1 US 201615379427 A US201615379427 A US 201615379427A US 2018165067 A1 US2018165067 A1 US 2018165067A1
- Authority
- US
- United States
- Prior art keywords
- organization
- information
- online system
- product
- mobile application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
Definitions
- the present invention generally relates to the field of online systems, and more specifically, to automatically generating native mobile applications.
- a mobile application generation module of an online system automatically generates source code for a mobile application for e-commerce that can run natively on a mobile device.
- the mobile application may be automatically customized so that its users will associate it with whichever organization it represents.
- customization is achieved using data about the organization that is obtained from a webpage representing the organization and by obtaining regularly updated details about any products the organization presents via a data feed from the organization.
- Customization may further include analyzing webpages of the organization in order to reflect characteristics of the organization (e.g., analyzing images on the webpage of the organization to determine a set of theme colors for the organization).
- the online system can also provide a set of templates so that the organization may choose how the application will ultimately appear and function for end users.
- FIG. 1 illustrates a computing environment in which native mobile applications for e-commerce are automatically generated, according to one embodiment.
- FIG. 2 is a high-level block diagram illustrating a detailed view of the application generation module 102 , according to one embodiment.
- FIG. 3 illustrates the interactions that take place between different entities of FIG. 1 when automatically generating a customized mobile application, according to one embodiment.
- FIG. 4A illustrates a user interface corresponding to an organization page, according to one embodiment.
- FIG. 4B illustrates an optional page extraction interface, according to one embodiment.
- FIG. 4C illustrates user interfaces corresponding to mobile application templates and a final application interface, according to one embodiment.
- FIG. 1 illustrates a computing environment in which native mobile applications for e-commerce are automatically generated, according to one embodiment.
- FIG. 1 illustrates an online system 100 and an organization 120 , such as a third party organization, connected to client devices 110 by a network 140 .
- the online system 100 uses data from the organization 120 , as well as information that references characteristics of the organization 120 stored by the online system 100 , to generate mobile applications corresponding to the organization 120 .
- the client devices 110 use the mobile applications natively to participate in e-commerce with the organization 120 .
- the client devices 110 are one or more computing devices capable of receiving user input as well as transmitting and/or receiving data via the network 140 .
- a client device 110 is a conventional computer system, such as a desktop or laptop computer.
- a client device 110 may be a device having computer functionality, such as a personal digital assistant (PDA), a mobile telephone, a smartphone or another suitable device.
- PDA personal digital assistant
- a client device 110 is configured to communicate via the network 140 .
- a client device 110 executes an application allowing a user of the client device 110 to interact with the online system 100 .
- a client device 110 executes a browser application to enable interaction between the client device 110 and the online system 100 via the network 140 .
- a client device 110 interacts with the online system 100 through an application programming interface (API) running on a native operating system of the client device 110 , such as IOS® or ANDROIDTM.
- API application programming interface
- the client devices 110 are configured to communicate via the network 140 , which may comprise any combination of local area and/or wide area networks, using both wired and/or wireless communication systems.
- the network 140 uses standard communications technologies and/or protocols.
- the network 140 includes communication links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, code division multiple access (CDMA), digital subscriber line (DSL), etc.
- networking protocols used for communicating via the network 140 include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP).
- Data exchanged over the network 140 may be represented using any suitable format, such as hypertext markup language (HTML) or extensible markup language (XML).
- all or some of the communication links of the network 140 may be encrypted using any suitable technique or techniques.
- the organization 120 includes a product catalog 105 .
- the organization 120 further includes a data feed 103 that makes available information about items from the product catalog 105 .
- Data feed 103 information may include one or more of availability of a product, a brand associated with the product, information about coloring or appearance of the product, information about a condition of the product, a name of the product, a manufacturer identification number of the product, and a price of the product.
- the data in the data feed 103 is based on information from the product catalog 105 .
- the data feed 103 is shown hosted by the organization 120 in FIG. 1 , in one embodiment, the data feed 103 could be hosted by the online system 100 .
- the product catalog 105 comprises information about the products, or services, offered to consumers by organization 120 .
- the product catalog 105 takes the form of a structured data file with lists of items.
- the product catalog 105 could include information about the names, colors, brands, prices, and availabilities of hats that are sold by an organization that sells hats.
- the data feed 103 comprises a set of products or services made available by the organization 120 that are retrieved on a recurring basis from the product catalog 105 according to some prescribed schedule or uploaded from the product catalog 105 by the organization 120 .
- the organization may have multiple data feeds, each data feed representing various combinations of products from the product catalog 105 , such as one feed for a line of hats, another feed for a line of sunglasses, etc.
- the online system 100 comprises an application generation module 102 , an organization page 104 , a feed reader 106 , and an aggregate product catalog 108 .
- the online system 100 further comprises modules associated with social networking systems, such as an object store or a graph information store, although such modules are not included in the example of FIG. 1 .
- the online system 100 further comprises an application programming interface (API) with additional accessible functionalities, although such a module is not shown in the example of FIG. 1 .
- API application programming interface
- the application generation module 102 is described in more detail with respect to FIG. 2 .
- the organization page 104 is a webpage that comprises information about organization 120 and that is stored on the online system 100 .
- an organization 120 that sells handmade hats may host a webpage on the online system 100 to promote its products.
- the webpage may include a logo of the hat organization, a name of the organization, promotional photographs of people wearing handmade hats, information about the people who make the hats, contact information, and a page for purchasing hats.
- An organization page 104 may additionally include other information such as videos, user comments, and notes.
- the organization page 104 could be stored on a different server that is also connected to the network 140 , but which can be accessed by the online system 100 .
- the information stored on the organization page comprises the organization name and may further comprise one or both of an organization logo and an image file.
- the feed reader 106 obtains current information about items in the product catalog 105 from the data feed 103 as an input to the application generation module 102 .
- the feed reader 106 stores information obtained from the data feed 103 in an aggregate product catalog 108 on the online system 100 .
- the feed reader 106 determines product information that has changed since the last time the feed reader 106 accessed the data feed 103 , and updates information about the product catalog 105 stored within the application generation module 102 .
- the feed reader 106 obtains information about some or all items in the product catalog 105 , via the data feed 103 , regardless of whether the information has changed since the last time the feed reader 106 accessed the data feed 103 .
- the feed reader 106 may periodically poll the data feed 103 to determine if there are any new items, if the attributes of any items have changed, or if any items have been removed from the product catalog 105 . For example, the feed reader 106 may review the data feed 103 of a hat organization and recognize that a new type of hat is listed for sale. The feed reader 106 subsequently adds information about the new hat product to the aggregate product catalog 108 .
- the aggregate product catalog 108 is a data store that may contain information about product catalogs 105 from one or more organizations 120 .
- the aggregate product catalog 108 may be updated by the feed reader 106 when it obtains new information about the product catalog 105 via the data feed 103 .
- FIG. 2 is a high-level block diagram illustrating a detailed view of the application generation module 102 , according to one embodiment.
- the application generation module 102 comprises application templates 201 , a page extraction module 206 , and a template customization module 208 .
- the application templates 201 comprise a plurality of templates that describe different ways of specifying the appearance and/or functionality of mobile applications.
- templates define options including user interfaces, animations, menu positions, and user interaction events.
- an application template may define the layout and appearance of a list of products.
- the page extraction module 206 extracts features and information about the organization 120 from a business page of the organization, herein referred to as the organization page 104 , e.g., by parsing HTML constituting the page 104 .
- the page extraction module 206 performs text analysis on the contents of the organization page 104 to determine the name and the logo of the organization 120 .
- the page extraction module 206 uses an image from the organization page 104 to select a set of theme colors for the organization 120 by analyzing the image to find a plurality of frequently occurring colors within the image.
- the template customization module 208 uses the data about the organization's products from the feed reader 106 and the information about the organization 120 obtained by the page extraction module 206 to build a customized mobile application by generating code native to a target platform (e.g., a mobile platform, such as the ANDROID operating system).
- a target platform e.g., a mobile platform, such as the ANDROID operating system.
- the customized mobile application is generated using one or more templates that are based on a declarative programming language (e.g., React Native).
- further functionalities relating to an API residing on the online system 100 may be incorporated into the generated mobile application.
- the generated code of the mobile application could incorporate calls to the API such that the items listed by the feed reader 106 appeared in order of current popularity within the mobile application.
- some of the functions called by the API calls cause the online system 100 to store statistics related to the call in a statistics log.
- the following provide examples of an API that can be accessed via HTTP requests and several uses thereof, where the URLs and parameters specify the functions to be called. As a first example, to retrieve a list of products from a category (to provide the information to the application):
- API endpoint https://graph.onlinesystem.com/v2.8/ ⁇ PRODUCT_CATALOG_ID>/ products
- Param1: fields [“category”, “name”, “image_url”]
- Param2: filter ⁇ “name”: ⁇ “i_contains”:”shoes” ⁇
- API endpoint https://graph.online system.com/v2.8/ ⁇ PRODUCT_CATALOG_ID>/products
- Param1: fields [“price”, “sale_price”, “availability”, “image_url”]
- Param2: filter ⁇ “price”: ⁇ “gt”:12 ⁇ , “availability”: ⁇ “eq”:”in stock” ⁇
- API endpoint https://graph.onlinesystem.com/ ⁇ APP_ID>/activities
- Param1: event fb_mobile_add_to_cart (or fb_mobile_content_view, fb_mobile_purchase)
- Param2: fb_content_id 1234
- Param3: fb_content_type product
- Param4: fb_currency USD
- Param5: _valueToSum 12
- FIG. 3 illustrates the interactions that take place between the online system 100 and the organization 120 of FIG. 1 when automatically generating a customized mobile application, according to one embodiment.
- the organization 120 establishes a presence on the online system 100 .
- the process of developing a presence on the online system 100 involves creating an account on the online system 100 and creating the organization page 104 .
- the organization 120 makes 302 a request to the online system 100 to generate a native mobile application for the organization 120 that users will use to access information about the organization and information about products sold by the organization.
- the request is made via a user interface provided by the online system 100 to the organization 120 , such as via a link or button in an administration user interface.
- the organization 120 specifies 304 a descriptor of the data feed 103 (e.g., http://www.example.com/sample_feed.tsv) to the online system 100 . This allows the online system 100 to access information about items and products that are presented or sold by the organization 120 .
- the organization 120 specifies 304 a descriptor of the data feed 103 by indicating which of the data feeds associated with the organization 120 should be used (i.e., by an employee or other member of the organization 120 selecting one of the feeds from a drop-down menu on a configuration webpage).
- the online system 100 extracts 306 information about the organization 120 from the organization page 104 using the page extraction module 206 .
- the extracted information comprises a logo, name, and theme colors associated with the organization 120 .
- the online system 100 provides the organization 120 with options of a plurality of the available application templates 201 and the organization 120 selects 310 a template that describes the general themes and appearance of a mobile application.
- the online system 100 applies information extracted from the organization page 104 to the application template options 201 to demonstrate how the templates would appear and function with customization.
- the theme colors that were determined by the page extraction module 206 can be applied to the template designs to be used as background and foreground colors for widgets in the user interface.
- providing the organization 120 with template options 201 is optional and may not occur in all embodiments.
- the online system 100 uses the template customization module 208 of FIG. 2 to generate 312 source code for a customized mobile application.
- the customization of the mobile application includes incorporating the information about the organization that was extracted by the page extraction module 206 , as well as the information about the products of the organization 120 that was received via the data feed 103 .
- the resulting customized mobile application may, for example, present products and items that are listed on the data feed 103 .
- the online system 100 provides 314 the organization 120 with the generated source code for the customized mobile application.
- the source code allows the organization to build the customized mobile application natively for a client device 110 .
- the mobile application can access services of the online system 100 via the API of the online system 100 .
- the mobile application may access an API of the online system 100 that includes one or more functions that call dynamic advertising capabilities of the online system.
- the organization 120 may choose to further customize 316 or modify the source code after receiving it from the online system 100 , such as to further modify the user interface or the way the organization's products are presented to users.
- FIG. 3 illustrates a number of interactions according to one embodiment
- the precise interactions and/or order of interactions may vary in different embodiments.
- the online system 100 could use a default template for generating the mobile application instead of providing the organization 120 with a set of template options 201 .
- FIGS. 4A and 4B illustrate user interfaces corresponding to an organization page and an optional page extraction interface, both viewable through a browser, according to one embodiment.
- the organization page 104 of FIG. 4A comprises an image 410 and an organization name 415 (“MyCompany”), according to one embodiment.
- the organization page 104 may further comprise information about the organization, other images, and content from the data feed 103 .
- the page extraction interface 420 of FIG. 4B displays the relevant information extracted by the page extractor module 206 from the organization page 104 .
- the page extraction interface 420 can display the extracted information, such as the image 410 that was extracted as the logo of the organization (e.g., from the organization page 104 ), and one or more theme colors 423 extracted from the organization page 104 .
- the page extraction interface 420 may additionally include information that was specified by the organization 120 , such as the file path 421 to the data feed 103 .
- the page extraction interface 420 allows an organization or a representative of the organization to confirm or alter the information obtained by the page extraction module 206 .
- the information presented on the page extraction interface 420 can be used to customize templates presented to an organization, or to customize the code generated for the mobile application (e.g., by setting the main color of the user interface of the generated mobile application to the preferred color 423 ). It is appreciated that the page extraction interface 420 is shown for illustrative purposes, but may not be a component of all embodiments of the system.
- FIG. 4C illustrates user interfaces corresponding to mobile application templates and a final mobile application interface, according to one embodiment.
- One or more mobile application templates are constructed using certain values and features that are specific to the organization 120 , such as the values and features obtained from the organization page 104 by the page extraction module 206 , or values and features that were optionally input into the page extraction interface 420 .
- FIG. 4C shows two such templates, each incorporating the image 410 , the organization name 415 , and theme colors.
- the templates 460 are presented to the organization or to a representative of the organization who then selects one of the templates by which the interface of the final mobile application will be formatted.
- the application interface 470 shows one view of an application that was created according to the template 460 b, rather than according to the template 460 a.
- Certain aspects of the present invention include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
- the present invention also relates to an apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer.
- a computer program may be stored in a non-transitory computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of computer-readable storage medium suitable for storing electronic instructions, and each coupled to a computer system bus.
- the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
- the present invention is well suited to a wide variety of computer network systems over numerous topologies.
- the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The present invention generally relates to the field of online systems, and more specifically, to automatically generating native mobile applications.
- Many companies have customers who use their mobile devices to interact with e-commerce marketplaces over the Internet. These e-commerce marketplaces provide product feeds so that search engines, price comparison websites, and affiliate networks can incorporate product information into their systems. However, these e-commerce marketplaces often struggle to build relevant mobile experiences for their users since not all sellers have the time or development teams to create their own functional e-commerce stores in the form of native mobile applications that users can use to view products on their own devices.
- According to various embodiments, a mobile application generation module of an online system automatically generates source code for a mobile application for e-commerce that can run natively on a mobile device. The mobile application may be automatically customized so that its users will associate it with whichever organization it represents. In one embodiment, customization is achieved using data about the organization that is obtained from a webpage representing the organization and by obtaining regularly updated details about any products the organization presents via a data feed from the organization. Customization may further include analyzing webpages of the organization in order to reflect characteristics of the organization (e.g., analyzing images on the webpage of the organization to determine a set of theme colors for the organization). According to one embodiment, the online system can also provide a set of templates so that the organization may choose how the application will ultimately appear and function for end users.
- The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.
-
FIG. 1 illustrates a computing environment in which native mobile applications for e-commerce are automatically generated, according to one embodiment. -
FIG. 2 is a high-level block diagram illustrating a detailed view of theapplication generation module 102, according to one embodiment. -
FIG. 3 illustrates the interactions that take place between different entities ofFIG. 1 when automatically generating a customized mobile application, according to one embodiment. -
FIG. 4A illustrates a user interface corresponding to an organization page, according to one embodiment. -
FIG. 4B illustrates an optional page extraction interface, according to one embodiment. -
FIG. 4C illustrates user interfaces corresponding to mobile application templates and a final application interface, according to one embodiment. - The figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
-
FIG. 1 illustrates a computing environment in which native mobile applications for e-commerce are automatically generated, according to one embodiment.FIG. 1 illustrates anonline system 100 and anorganization 120, such as a third party organization, connected toclient devices 110 by anetwork 140. Theonline system 100 uses data from theorganization 120, as well as information that references characteristics of theorganization 120 stored by theonline system 100, to generate mobile applications corresponding to theorganization 120. Theclient devices 110 use the mobile applications natively to participate in e-commerce with theorganization 120. These various components are now described in additional detail. - The
client devices 110 are one or more computing devices capable of receiving user input as well as transmitting and/or receiving data via thenetwork 140. In one embodiment, aclient device 110 is a conventional computer system, such as a desktop or laptop computer. Alternatively, aclient device 110 may be a device having computer functionality, such as a personal digital assistant (PDA), a mobile telephone, a smartphone or another suitable device. Aclient device 110 is configured to communicate via thenetwork 140. In one embodiment, aclient device 110 executes an application allowing a user of theclient device 110 to interact with theonline system 100. For example, aclient device 110 executes a browser application to enable interaction between theclient device 110 and theonline system 100 via thenetwork 140. In another embodiment, aclient device 110 interacts with theonline system 100 through an application programming interface (API) running on a native operating system of theclient device 110, such as IOS® or ANDROID™. - The
client devices 110 are configured to communicate via thenetwork 140, which may comprise any combination of local area and/or wide area networks, using both wired and/or wireless communication systems. In one embodiment, thenetwork 140 uses standard communications technologies and/or protocols. For example, thenetwork 140 includes communication links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, code division multiple access (CDMA), digital subscriber line (DSL), etc. Examples of networking protocols used for communicating via thenetwork 140 include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP). Data exchanged over thenetwork 140 may be represented using any suitable format, such as hypertext markup language (HTML) or extensible markup language (XML). In some embodiments, all or some of the communication links of thenetwork 140 may be encrypted using any suitable technique or techniques. - The
organization 120 includes aproduct catalog 105. In one embodiment, theorganization 120 further includes adata feed 103 that makes available information about items from theproduct catalog 105.Data feed 103 information may include one or more of availability of a product, a brand associated with the product, information about coloring or appearance of the product, information about a condition of the product, a name of the product, a manufacturer identification number of the product, and a price of the product. The data in thedata feed 103 is based on information from theproduct catalog 105. Although thedata feed 103 is shown hosted by theorganization 120 inFIG. 1 , in one embodiment, thedata feed 103 could be hosted by theonline system 100. - The
product catalog 105 comprises information about the products, or services, offered to consumers byorganization 120. According to one embodiment, theproduct catalog 105 takes the form of a structured data file with lists of items. For example, theproduct catalog 105 could include information about the names, colors, brands, prices, and availabilities of hats that are sold by an organization that sells hats. - The
data feed 103 comprises a set of products or services made available by theorganization 120 that are retrieved on a recurring basis from theproduct catalog 105 according to some prescribed schedule or uploaded from theproduct catalog 105 by theorganization 120. In one embodiment, the organization may have multiple data feeds, each data feed representing various combinations of products from theproduct catalog 105, such as one feed for a line of hats, another feed for a line of sunglasses, etc. - The
online system 100 comprises anapplication generation module 102, anorganization page 104, afeed reader 106, and anaggregate product catalog 108. In one embodiment, theonline system 100 further comprises modules associated with social networking systems, such as an object store or a graph information store, although such modules are not included in the example ofFIG. 1 . In one embodiment, theonline system 100 further comprises an application programming interface (API) with additional accessible functionalities, although such a module is not shown in the example ofFIG. 1 . Theapplication generation module 102 is described in more detail with respect toFIG. 2 . - According to one embodiment, the
organization page 104 is a webpage that comprises information aboutorganization 120 and that is stored on theonline system 100. For example, anorganization 120 that sells handmade hats may host a webpage on theonline system 100 to promote its products. The webpage may include a logo of the hat organization, a name of the organization, promotional photographs of people wearing handmade hats, information about the people who make the hats, contact information, and a page for purchasing hats. Anorganization page 104 may additionally include other information such as videos, user comments, and notes. In other embodiments not pictured inFIG. 1 , theorganization page 104 could be stored on a different server that is also connected to thenetwork 140, but which can be accessed by theonline system 100. The information stored on the organization page comprises the organization name and may further comprise one or both of an organization logo and an image file. - The
feed reader 106 obtains current information about items in theproduct catalog 105 from thedata feed 103 as an input to theapplication generation module 102. In one embodiment, thefeed reader 106 stores information obtained from the data feed 103 in anaggregate product catalog 108 on theonline system 100. In one embodiment, thefeed reader 106 determines product information that has changed since the last time thefeed reader 106 accessed the data feed 103, and updates information about theproduct catalog 105 stored within theapplication generation module 102. In an embodiment, thefeed reader 106 obtains information about some or all items in theproduct catalog 105, via the data feed 103, regardless of whether the information has changed since the last time thefeed reader 106 accessed the data feed 103. Thefeed reader 106 may periodically poll the data feed 103 to determine if there are any new items, if the attributes of any items have changed, or if any items have been removed from theproduct catalog 105. For example, thefeed reader 106 may review the data feed 103 of a hat organization and recognize that a new type of hat is listed for sale. Thefeed reader 106 subsequently adds information about the new hat product to theaggregate product catalog 108. - The
aggregate product catalog 108 is a data store that may contain information aboutproduct catalogs 105 from one ormore organizations 120. Theaggregate product catalog 108 may be updated by thefeed reader 106 when it obtains new information about theproduct catalog 105 via the data feed 103. -
FIG. 2 is a high-level block diagram illustrating a detailed view of theapplication generation module 102, according to one embodiment. Theapplication generation module 102 comprisesapplication templates 201, apage extraction module 206, and a template customization module 208. - The
application templates 201 comprise a plurality of templates that describe different ways of specifying the appearance and/or functionality of mobile applications. In one embodiment, templates define options including user interfaces, animations, menu positions, and user interaction events. For example, an application template may define the layout and appearance of a list of products. - The
page extraction module 206 extracts features and information about theorganization 120 from a business page of the organization, herein referred to as theorganization page 104, e.g., by parsing HTML constituting thepage 104. In some embodiments, thepage extraction module 206 performs text analysis on the contents of theorganization page 104 to determine the name and the logo of theorganization 120. In some embodiments, thepage extraction module 206 uses an image from theorganization page 104 to select a set of theme colors for theorganization 120 by analyzing the image to find a plurality of frequently occurring colors within the image. - The template customization module 208 uses the data about the organization's products from the
feed reader 106 and the information about theorganization 120 obtained by thepage extraction module 206 to build a customized mobile application by generating code native to a target platform (e.g., a mobile platform, such as the ANDROID operating system). In one embodiment, the customized mobile application is generated using one or more templates that are based on a declarative programming language (e.g., React Native). - According to one embodiment, further functionalities relating to an API residing on the
online system 100 may be incorporated into the generated mobile application. For example, if theonline system 100 has an API for dynamically sorting products according to the popularity of the products among customers, the generated code of the mobile application could incorporate calls to the API such that the items listed by thefeed reader 106 appeared in order of current popularity within the mobile application. In some embodiments, some of the functions called by the API calls cause theonline system 100 to store statistics related to the call in a statistics log. For example, the following provide examples of an API that can be accessed via HTTP requests and several uses thereof, where the URLs and parameters specify the functions to be called. As a first example, to retrieve a list of products from a category (to provide the information to the application): -
API endpoint: https://graph.onlinesystem.com/v2.8/<PRODUCT_CATALOG_ID>/ products Param1: fields=[“category”, “name”, “image_url”] Param2: filter={“name”:{“i_contains”:”shoes”}} Response: {“data”: [ {category”: “mens_shoes”, “name”:”Awesome Mens Shoes in Black”, “id”: “1234”, “image_url”:”http://mydomain.com/ shoes1.jpg” } ] }
As a second example, to retrieve a list of products above $12 which are still available: -
API endpoint: https://graph.online system.com/v2.8/<PRODUCT_CATALOG_ID>/products Param1: fields=[“price”, “sale_price”, “availability”, “image_url”] Param2: filter={“price”: {“gt”:12}, “availability”:{“eq”:”in stock”}} Response: {“data”: [ {price”: “13”, “sale_price”:”10”, “id”: “1234”, “image_url”:”http://mydomain.com/shoes2.jpg”}, {price”: “38”, “sale_price”:”15”, “id”: “4567”, “image_url”:”http:// mydomain.com/shoes3.jpg” } ] }
As a third example, to report statistical information about products viewed, added to cart or purchased: -
API endpoint: https://graph.onlinesystem.com/<APP_ID>/activities Param1: event=fb_mobile_add_to_cart (or fb_mobile_content_view, fb_mobile_purchase) Param2: fb_content_id=1234 Param3: fb_content_type=product Param4: fb_currency=USD Param5: _valueToSum =12 -
FIG. 3 illustrates the interactions that take place between theonline system 100 and theorganization 120 ofFIG. 1 when automatically generating a customized mobile application, according to one embodiment. - The
organization 120 establishes a presence on theonline system 100. In one embodiment, the process of developing a presence on theonline system 100 involves creating an account on theonline system 100 and creating theorganization page 104. - The
organization 120 makes 302 a request to theonline system 100 to generate a native mobile application for theorganization 120 that users will use to access information about the organization and information about products sold by the organization. In one embodiment, the request is made via a user interface provided by theonline system 100 to theorganization 120, such as via a link or button in an administration user interface. - The
organization 120 specifies 304 a descriptor of the data feed 103 (e.g., http://www.example.com/sample_feed.tsv) to theonline system 100. This allows theonline system 100 to access information about items and products that are presented or sold by theorganization 120. In some embodiments in which theproduct catalog 105 and data feed 103 are hosted by theonline system 100 for theorganization 120, theorganization 120 specifies 304 a descriptor of the data feed 103 by indicating which of the data feeds associated with theorganization 120 should be used (i.e., by an employee or other member of theorganization 120 selecting one of the feeds from a drop-down menu on a configuration webpage). - The
online system 100extracts 306 information about theorganization 120 from theorganization page 104 using thepage extraction module 206. In one embodiment, the extracted information comprises a logo, name, and theme colors associated with theorganization 120. - According to one embodiment, the
online system 100 provides theorganization 120 with options of a plurality of theavailable application templates 201 and theorganization 120 selects 310 a template that describes the general themes and appearance of a mobile application. In one embodiment theonline system 100 applies information extracted from theorganization page 104 to theapplication template options 201 to demonstrate how the templates would appear and function with customization. For example, the theme colors that were determined by thepage extraction module 206 can be applied to the template designs to be used as background and foreground colors for widgets in the user interface. Although it is shown inFIG. 3 , providing theorganization 120 withtemplate options 201 is optional and may not occur in all embodiments. - The
online system 100 uses the template customization module 208 ofFIG. 2 to generate 312 source code for a customized mobile application. According to one embodiment, the customization of the mobile application includes incorporating the information about the organization that was extracted by thepage extraction module 206, as well as the information about the products of theorganization 120 that was received via the data feed 103. The resulting customized mobile application may, for example, present products and items that are listed on the data feed 103. - The
online system 100 provides 314 theorganization 120 with the generated source code for the customized mobile application. The source code allows the organization to build the customized mobile application natively for aclient device 110. According to one embodiment, the mobile application can access services of theonline system 100 via the API of theonline system 100. For example, the mobile application may access an API of theonline system 100 that includes one or more functions that call dynamic advertising capabilities of the online system. Theorganization 120 may choose to further customize 316 or modify the source code after receiving it from theonline system 100, such as to further modify the user interface or the way the organization's products are presented to users. - It is appreciated that although
FIG. 3 illustrates a number of interactions according to one embodiment, the precise interactions and/or order of interactions may vary in different embodiments. For example, in one embodiment, theonline system 100 could use a default template for generating the mobile application instead of providing theorganization 120 with a set oftemplate options 201. -
FIGS. 4A and 4B illustrate user interfaces corresponding to an organization page and an optional page extraction interface, both viewable through a browser, according to one embodiment. Theorganization page 104 ofFIG. 4A comprises animage 410 and an organization name 415 (“MyCompany”), according to one embodiment. Theorganization page 104 may further comprise information about the organization, other images, and content from the data feed 103. Thepage extraction interface 420 ofFIG. 4B displays the relevant information extracted by thepage extractor module 206 from theorganization page 104. For example, thepage extraction interface 420 can display the extracted information, such as theimage 410 that was extracted as the logo of the organization (e.g., from the organization page 104), and one ormore theme colors 423 extracted from theorganization page 104. Thepage extraction interface 420 may additionally include information that was specified by theorganization 120, such as thefile path 421 to the data feed 103. In some embodiments, thepage extraction interface 420 allows an organization or a representative of the organization to confirm or alter the information obtained by thepage extraction module 206. The information presented on thepage extraction interface 420 can be used to customize templates presented to an organization, or to customize the code generated for the mobile application (e.g., by setting the main color of the user interface of the generated mobile application to the preferred color 423). It is appreciated that thepage extraction interface 420 is shown for illustrative purposes, but may not be a component of all embodiments of the system. -
FIG. 4C illustrates user interfaces corresponding to mobile application templates and a final mobile application interface, according to one embodiment. One or more mobile application templates are constructed using certain values and features that are specific to theorganization 120, such as the values and features obtained from theorganization page 104 by thepage extraction module 206, or values and features that were optionally input into thepage extraction interface 420.FIG. 4C shows two such templates, each incorporating theimage 410, theorganization name 415, and theme colors. According to one embodiment, the templates 460 are presented to the organization or to a representative of the organization who then selects one of the templates by which the interface of the final mobile application will be formatted. For example, inFIG. 4C , theapplication interface 470 shows one view of an application that was created according to thetemplate 460 b, rather than according to thetemplate 460 a. - The present invention has been described in particular detail with respect to one possible embodiment. Those of skill in the art will appreciate that the invention may be practiced in other embodiments. First, the particular naming of the components and variables, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, formats, or protocols. Also, the particular division of functionality between the various system components described herein is merely for purposes of example, and is not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead performed by a single component.
- Some portions of above description present the features of the present invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules or by functional names, without loss of generality.
- Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
- Certain aspects of the present invention include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
- The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a non-transitory computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of computer-readable storage medium suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
- The algorithms and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the art, along with equivalent variations. In addition, the present invention is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references to specific languages are provided for invention of enablement and best mode of the present invention.
- The present invention is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
- Finally, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/379,427 US10007490B1 (en) | 2016-12-14 | 2016-12-14 | Automatic generation of native E-commerce applications for mobile devices |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/379,427 US10007490B1 (en) | 2016-12-14 | 2016-12-14 | Automatic generation of native E-commerce applications for mobile devices |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20180165067A1 true US20180165067A1 (en) | 2018-06-14 |
| US10007490B1 US10007490B1 (en) | 2018-06-26 |
Family
ID=62489348
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/379,427 Active US10007490B1 (en) | 2016-12-14 | 2016-12-14 | Automatic generation of native E-commerce applications for mobile devices |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US10007490B1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109445833A (en) * | 2018-11-09 | 2019-03-08 | 苏宁消费金融有限公司 | A kind of method that React-native heat updates |
| US10423396B1 (en) * | 2018-05-04 | 2019-09-24 | Salesforce.Com, Inc. | Transforming non-apex code to apex code |
| US11669889B2 (en) * | 2020-08-26 | 2023-06-06 | Aleksandr Iurev | System and method for automated generation of mobile applications for electronic shopping |
| US11669890B2 (en) * | 2020-10-20 | 2023-06-06 | Aleksandr Iurev | System and method for automated generation of mobile applications for electronic shopping |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI694377B (en) * | 2017-03-17 | 2020-05-21 | 葉振忠 | Development platform of mobile native applications |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001306308A (en) * | 2000-04-11 | 2001-11-02 | Sap Ag | How to define a class for data-centric applications |
| US7240327B2 (en) * | 2003-06-04 | 2007-07-03 | Sap Ag | Cross-platform development for devices with heterogeneous capabilities |
| EP1818813A1 (en) * | 2006-02-02 | 2007-08-15 | Research In Motion Limited | System and method and apparatus for using UML tools for defining web service bound component applications |
| US8341595B2 (en) * | 2007-05-30 | 2012-12-25 | Roam Data Inc | System and method for developing rich internet applications for remote computing devices |
| US8365164B1 (en) * | 2008-02-21 | 2013-01-29 | T-APP Ltd. | Portable software applications |
| EP2192510A1 (en) * | 2008-11-19 | 2010-06-02 | CompuGroup Holding AG | Method for medicinal diagnosis support |
| US8479154B1 (en) * | 2010-08-20 | 2013-07-02 | Google Inc. | Interaction with partially constructed mobile device applications |
| US8626602B2 (en) * | 2010-11-12 | 2014-01-07 | Marc George | Consumer shopping and purchase support system and marketplace |
| US8776011B2 (en) * | 2011-03-31 | 2014-07-08 | Alcatel Lucent | Method and apparatus for managing components of application enablement suite |
| US8261231B1 (en) * | 2011-04-06 | 2012-09-04 | Media Direct, Inc. | Systems and methods for a mobile application development and development platform |
| US8856729B2 (en) * | 2011-12-23 | 2014-10-07 | Airstrip Ip Holdings, Llc | Systems and methods for developing multi-platform applications for computing devices |
| US9606970B2 (en) * | 2012-01-05 | 2017-03-28 | Data Record Science | Web browser device for structured data extraction and sharing via a social network |
| WO2013109860A1 (en) * | 2012-01-18 | 2013-07-25 | Smart Online, Inc. | Software builder |
| US8997038B2 (en) * | 2012-03-30 | 2015-03-31 | Anypresence, Inc. | Systems and methods for building and deploying mobile applications |
| US9299099B1 (en) * | 2012-04-04 | 2016-03-29 | Google Inc. | Providing recommendations in a social shopping trip |
| US20140281886A1 (en) * | 2013-03-14 | 2014-09-18 | Media Direct, Inc. | Systems and methods for creating or updating an application using website content |
| US8924259B2 (en) * | 2013-03-14 | 2014-12-30 | Square, Inc. | Mobile device payments |
| US9858174B2 (en) * | 2014-09-26 | 2018-01-02 | Oracle International Corporation | Updatable native mobile application for testing new features |
-
2016
- 2016-12-14 US US15/379,427 patent/US10007490B1/en active Active
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10423396B1 (en) * | 2018-05-04 | 2019-09-24 | Salesforce.Com, Inc. | Transforming non-apex code to apex code |
| US10866791B2 (en) | 2018-05-04 | 2020-12-15 | Salesforce.Com, Inc. | Transforming non-Apex code to Apex code |
| CN109445833A (en) * | 2018-11-09 | 2019-03-08 | 苏宁消费金融有限公司 | A kind of method that React-native heat updates |
| US11669889B2 (en) * | 2020-08-26 | 2023-06-06 | Aleksandr Iurev | System and method for automated generation of mobile applications for electronic shopping |
| US11669890B2 (en) * | 2020-10-20 | 2023-06-06 | Aleksandr Iurev | System and method for automated generation of mobile applications for electronic shopping |
Also Published As
| Publication number | Publication date |
|---|---|
| US10007490B1 (en) | 2018-06-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11127046B1 (en) | Tool for third-party creation of advertisements for a social networking system | |
| US11915274B2 (en) | System and method for dynamic creation of product links from a web browser application | |
| US11769185B2 (en) | Systems and methods for SMS e-commerce assistant | |
| US10817981B1 (en) | Color sampling selection for displaying content items using machine learning | |
| US10416851B2 (en) | Electronic publishing mechanisms | |
| US10019532B2 (en) | Systems, devices, and/or methods for managing messages | |
| US10007490B1 (en) | Automatic generation of native E-commerce applications for mobile devices | |
| US20160267523A1 (en) | Tracking User Behavior with Universal Action Tags | |
| US8819537B2 (en) | Information generation device, information generation method, information generation program, and recording medium | |
| US20140019285A1 (en) | Dynamic Listing Recommendation | |
| US11373204B2 (en) | User interface tool for applying universal action tags | |
| US20160098783A1 (en) | Systems and methods for generation of customized advertising and/or customized promotion for products and services | |
| US20140164902A1 (en) | Website augmentation including conversion of regional content | |
| US20140033018A1 (en) | Method and system for automatically generating social network site page based on electronic document content | |
| US10546334B2 (en) | Information processing apparatus, information processing method, and program | |
| US20170337609A1 (en) | Methods and systems for back-end server user inventory integration | |
| US20250245698A1 (en) | System and method for location based dynamic redirection of advertiser affiliate links for online advertising | |
| US20140229479A1 (en) | Creating personalized collections of objects maintained by a social networking system | |
| KR20200087016A (en) | Method for providing lbs based placing order placement processing service using chatting agent and chatbot | |
| US20140229330A1 (en) | Performing actions based on metadata associated with objects in a set of objects associated with a social networking system user | |
| US20230015166A1 (en) | Online System That Facilitates Logging and Reversing Transactions | |
| US9619828B2 (en) | Product review system and method | |
| US20210263988A1 (en) | Embedded Mobile Browser | |
| CN106936880B (en) | Information display method and client | |
| US20240037575A1 (en) | Product exposure metric |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: FACEBOOK, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DUQUE DE SOUZA, ARTUR;CHENCAREK, RENATO;REEL/FRAME:040674/0320 Effective date: 20161219 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| CC | Certificate of correction | ||
| AS | Assignment |
Owner name: META PLATFORMS, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:FACEBOOK, INC.;REEL/FRAME:058897/0824 Effective date: 20211028 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |