Systems and methods for enhancing online shopping experience

A system for adding an external function to a webpage includes: one or more processors; and memory communicably connected to the one or more processors and storing instructions that, when executed by the one or more processors, cause the one or more processors to: receive code associated with the webpage from a remote server; identify a plurality of images in the code; filter the plurality of images to identify a first type of image different from other images of the plurality of images; and append the external function to the first type of image to display a modified webpage including the external function on a display device of a first user.

BACKGROUND

Aspects of one or more embodiments of the present disclosure relate to systems and methods for recommending products offered on webpages, and more particularly, to a browser plugin/extension for appending a recommendation function to a product image of a product offered on the webpages, and methods including the same.

2. Description of Related Art

Browser plugins and extensions add various functions to a browser to enable the browser to manage internet content that the browser is not designed to process. For example, a browser plugin or extension may add a functionality to a browser to modify content and/or a user experience of a webpage displayed via the browser on a user device. The webpage may be hosted on a webpage server in communications with the browser, and may be managed by a third party content provider. Because webpages may be managed by the third party content provider, the browser may not know or may not have control over the content and/or functionality provided by the webpages. Accordingly, a user of the user device may add various desired functionalities to a browser by installing one or more suitable browser plugins or extensions for the browser.

SUMMARY

One or more embodiments of the present disclosure are directed to systems and methods for appending an external function (e.g., a recommendation function) to a first type of image (e.g., a product image) from among a plurality of images of a webpage.

According to one or more embodiments of the present disclosure, a system for adding an external function to a webpage includes: one or more processors; and memory communicably connected to the one or more processors and storing instructions that, when executed by the one or more processors, cause the one or more processors to: receive code associated with the webpage from a remote server; identify a plurality of images in the code; filter the plurality of images to identify a first type of image different from other images of the plurality of images; and append the external function to the first type of image to display a modified webpage including the external function on a display device of a first user.

In an embodiment, to filter the plurality of images, the instructions may further cause the one or more processors to: compare a link of each of the plurality of images with one or more links stored in a data store; identify a matching link with the one or more links; and determine that an image associated with the matching link from among the plurality of images is the first type of image.

In an embodiment, to filter the images, the instructions may further cause the one or more processors to: evaluate a plurality of links of the plurality of images; identify a product attribute in a link from among the plurality of links; and determine that an image associated with the link including the product attribute is the first type of image.

In an embodiment, the instructions may further cause the one or more processors to: identify a selection of the external function appended to the first type of image; receive a unique identifier of a second user from the selected external function; identify a link associated with the webpage containing the first type of image; and transmit the link to the second user based on the unique identifier.

In an embodiment, the unique identifier may include an email or a username associated with the second user.

In an embodiment, to receive the unique identifier of the second user, the instructions may further cause the one or more processors to: identify a list of unique identifiers associated with the first user; display the list of unique identifiers in the selected external function; and receive a selection of the unique identifier of the second user from the list of unique identifiers.

In an embodiment, to receive the unique identifier of the second user, the instructions may further cause the one or more processors to: identify a list of known unique identifiers associated with the first user; compare the received unique identifier with the list of known unique identifiers; and transmit the link to the second user in response to identifying a match of the received unique identifier with the list of known unique identifiers.

In an embodiment, the external function may be a part of an extension or a plugin of a browser.

In an embodiment, the external function may include a link to a functionality for the extension or plugin.

In an embodiment, the link may include an icon appended to the first type of image.

According to one or more embodiments of the present disclosure, a method for adding an external function to a webpage includes: receiving, by a processor including an internet browser, code associated with the webpage from a remote server; identifying, by the processor, a plurality of images in the code; filtering, by the processor, the plurality of images to identify a first type of image different from other images of the plurality of images; and appending, by the processor, the external function to the first type of image to display a modified webpage including the external function on a display device of a first user.

In an embodiment, the filtering of the plurality of images may include: comparing, by the processor, a link of each of the plurality of images with one or more links stored in a data store; identifying, by the processor, a matching link with the one or more links; and determining, by the processor, that an image associated with the matching link from among the plurality of images is the first type of image.

In an embodiment, the filtering of the images may include: evaluating, by the processor, a plurality of links of the plurality of images; identifying, by the processor, a product attribute in a link from among the plurality of links; and determining, by the processor, that an image associated with the link including the product attribute is the first type of image.

In an embodiment, the method may further include: identifying, by the processor, a selection of the external function appended to the first type of image; receiving, by the processor, a unique identifier of a second user from the selected external function; identifying, by the processor, a link associated with the webpage containing the first type of image; and transmitting, by the processor, the link to the second user based on the unique identifier.

In an embodiment, the unique identifier may include an email or a username associated with the second user.

In an embodiment, the receiving of the unique identifier of the second user may include: identifying, by the processor, a list of unique identifiers associated with the first user; displaying, by the processor, the list of unique identifiers in the selected external function; and receiving, by the processor, a selection of the unique identifier of the second user from the list of unique identifiers.

In an embodiment, the receiving of the unique identifier of the second user may include: identifying, by the processor, a list of known unique identifiers associated with the first user; comparing, by the processor, the received unique identifier with the list of known unique identifiers; and transmitting, by the processor, the link to the second user in response to identifying a match of the received unique identifier with the list of known unique identifiers.

In an embodiment, the external function may be a part of an extension or a plugin of the browser.

In an embodiment, the external function may include a link to a functionality for the extension or plugin.

In an embodiment, the link may include an icon appended to the first type of image.

DETAILED DESCRIPTION

One or more example embodiments of the present disclosure may be directed to a browser plugin/extension for adding a recommendation function (e.g., an external function) to a product image (e.g., a first type of image) of a webpage. Generally, images of a webpage may be hosted by a webpage server, such that the images may be retrieved by a browser of a user device via a Uniform Resource Locator (URL) and/or an image file name of the image contained in the hypertext markup language (HTML) and/or extensible markup language (XML) of the webpage. While the images of a webpage may be identified via an image tag or an image file extension in the HTML and/or XML of the webpage, the image content and/or purpose of the image may not be easily identified, as different content providers may use different naming conventions, file structures, and/or the like to designate different types of images for different purposes. For example, a webpage may include various different types of images such as logo images, banner images, button images, thumbnail images, product images, and/or the like, which may be hosted by the webpage server and managed by a third party content provider. Accordingly, it may be difficult to identify the product images contained in a webpage from among the various different types of images contained in the webpage. As used herein, a product image is an image of a product featured or offered on a webpage (e.g., a product webpage).

Thus, while some browser plugins and extensions may append a share function to images on a webpage, they may be unable to distinguish between different types of images of different webpages that are managed by different third party content providers. Therefore, these browser plugins and extensions may append the share function to all of or most of the images contained in a webpage, irrespective of the type or content of the images, which may reduce the aesthetics and/or user experience of the webpage.

According to one or more embodiments of the present disclosure, a system including a browser plugin/extension and a method thereof may be provided that may identify and distinguish a first type of image (e.g., a product image or other desired image type) from other images contained in a webpage, and may append an external function (e.g., a recommendation function or other suitable function that the browser is not designed to perform) to the product image (or other desired image type) while omitting the recommendation function on the other images (e.g., non-product images) contained in the webpage. The recommendation function may enable the user to save a particular product image for later retrieval of a product webpage containing the product image, and/or may enable the user to recommend a particular product image to another user, such that the other user may later retrieve the product webpage containing the product image via the recommendation.

The systems and methods described herein improve computer-related technologies by performing certain processes and methods that cannot be done by conventional browsers or human actors. For example, the systems and methods described herein provide a technical solution to a problem that is necessarily rooted in internet-centric technologies, that is, the ability to add a functionality to a browser in order to distinguish certain images from other images contained in a webpage managed by a third party, and to append the external function to only the certain images of the webpage in real or near real time (e.g., in response to an HTTP POST from the webpage server hosting the webpage) while omitting the external function on the other images contained in the webpage. In some embodiments, the external function (e.g., the recommendation function) may provide a link to an application/web server to enable various functionalities of the browser plugin/extension, which cannot be performed by a browser alone, for example, such as collecting recommendations via the browser plugin/extension from various webpages, and transmitting recommendations to other known users while preventing or substantially preventing the user from providing (e.g., from spamming) the recommendation to unknown users. Accordingly, functionalities of a browser may be improved, and aesthetics and/or a user experience of a webpage that is managed by a third party content provider and displayed by the browser may be improved.

For convenience of description, while product images are described in more detail hereinafter as a desired image type (e.g., a first type of image) to be distinguished from other image types, the present disclosure is not limited thereto, and any desired image type from among the various different types of images contained in a requested webpage may be distinguished such that a suitable external function (e.g., a recommendation function) may be appended to the desired image type while omitting the suitable function on other images contained in the webpage.

FIG.1illustrates a block diagram of a recommendation system100according to one or more embodiments of the present disclosure.

Referring toFIG.1, the recommendation system100may include a user device102that is communicably connected to a webpage server104and an application/web server106over a communications network108. A browser118of the user device102may communicate with the webpage server104over the communications network108to request a webpage to be displayed on a display device110connected to or included in the user device102. The browser118may include any suitable internet browser, for example, such as Chrome®, Internet Explorer®, Firefox®, Safari®, Opera®, and the like. However, the present disclosure is not limited thereto, and in other embodiments, the user device102may include any suitable program, application, widget, user interface, and/or the like to enable the user device102to access the webpage server104to request content (e.g., webpages) to be displayed on the display device110associated with (e.g., connected to or included in) the user device102.

The user device102may include a processing circuit112having a processor114and memory116, and a communication interface126for communicating with the webpage server104and/or the application/web server106over the communications network108. In various embodiments, the processor114may include a general-purpose processor, an Application Specific Integrated Circuit (ASIC), one or more Field Programmable Gate Arrays (FPGAs), a Digital Signal Processor (DSP), any other suitable electronic processing components, or combinations thereof. The memory116may include tangible, non-transient, volatile memory or non-volatile memory, for example, such as Random Access Memory (RAM), Read-Only Memory (ROM), Non-volatile RAM (NVRAM), Flash Memory, hard disk storage, any other suitable electronic storage medium, or combinations thereof. The memory116stores instructions (e.g., data, computer code, and/or programming logic) that, when executed by the processor114, controls the operations of the user device102. Accordingly, the memory116includes database components, object code components, script components, and/or any other type of information structure for supporting the various activities and information structures described herein.

As shown inFIG.1, in some embodiments, the memory116includes the browser118and a browser extension/plugin120. The browser118communicates with the webpage server104over the communications network108(e.g., via the communication interface126) to request one or more webpages for display on the display device110. For example, the browser118may transmit (e.g., via a URL, an IP address, and/or the like) a request (e.g., HTTP GET) to the webpage server104for a requested webpage, and may receive a response (e.g., HTTP POST) from the webpage server104including code (e.g., HTML, XML, and/or the like) corresponding to the requested webpage. The browser118interprets the code, retrieves any images according to the code (e.g., according to URLs or other suitable links to the images contained in the code), and displays the requested webpage including the retrieved images on the display device110according to the code.

The extension/plugin120, which may be installed (e.g., loaded or downloaded) into the memory116, may include a product image extractor122and a recommendation service124. In brief overview, the product image extractor122may identify a product image (or other desired image) from among a plurality of images contained in the requested webpage, and may append a recommendation function (e.g., a recommendation button, icon, link and/or the like) to the product image (e.g., to only the product images), while omitting the recommendation function on other images contained in the requested webpage. The recommendation function may provide a link to the application/web server106to enable or enhance a functionality of the extension/plugin120. For example, when the user (e.g., a first user or a recommendor) selects a recommendation function of a product image, the recommendation service124may be invoked to communicate and exchange data with the application/web server106over the communications network108, for example, such as to save a selected product image, and/or to provide a recommendation of a product webpage containing the selected product image to another user (e.g., to a second user or a recommendee). In other words, the recommendation service124may request user information and data from the application/web server108, and may provide user inputs to the application/web server108. The product image extractor122and the recommendation service124will be described in more detail below.

The webpage server104may host webpages that are managed by a third party content provider. In some embodiments, the webpage server104may host webpages that are managed by various different third party content providers, for example, such as a web host, or may be a webpage server located at a data center of a particular third party content provider to host webpages of the particular third party content provider. The webpage server104may host and serve various webpages that are managed by one or more third party content providers, and may provide the webpages to the browser118over the communications network108upon request (e.g., HTTP GET via a URL or other suitable link).

The application/web server106may include one or more application servers, web servers, data stores, and/or the like, and may facilitate the various processes and/or functionalities of the extension/plugin120. In some embodiments, the application/web server106may host an application page, a webpage, a dashboard, a user interface, and/or the like that may be accessible via the browser118or a separate application installed on the user device102to enable the user to manage interactions with the extension/plugin120and/or other users. For example, the application page, the webpage, the dashboard, the user interface, and/or the like may provide an interface to the user to manage saved product images that have been collected from various webpages, revisit various product webpages containing the saved product images (e.g., via a URL or other suitable link), manage collections (e.g., categories or containers of saved product images), review recommendations, communicate with other users, manage friends (e.g., potential recommendees), and/or the like. In some embodiments, the application/web server106may manage and store various user information and data, and may provide the user information and data to the extension/plugin120.

The communication interface126may be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, and/or the like) for conducting data communications with the webpage server104and/or the application/web server106. In various embodiments, communications via the communication interface126can be direct (e.g., local wired or wireless communications) or via the communications network108(e.g., a WAN, the Internet, a cellular network, and/or the like). For example, the communication interface126may include a Wi-Fi transceiver for communicating via a wireless communications network. In another example, the communication interface126may include an Ethernet card and port for sending and receiving data via an Ethernet-based communications link or network. In another example, the communication interface126may include cellular or mobile phone communications transceivers. In various embodiments, the communication interface126may support various suitable protocols (e.g., TCP/IP, User Datagram Protocol UDP, Hypertext Transfer Protocol HTTP, Internet Message Access Protocol IMAP, Simple Mail Transfer Protocol SMTP, and/or the like) and/or data communication interfaces (e.g., Application Program Interface API, Web Services, and/or the like) for facilitating data communications with the webpage server104, the application/web server106, and/or the like.

The communications network108may include any suitable wired or wireless network (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), cellular communications network, and/or the like). For example, the network108may include Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA) (e.g., Evolution-Data Optimized (EVDO)), Universal Mobile Telecommunications Systems (UMTS) (e.g., Time Division Synchronous CDMA (TD-SCDMA or TDS)), Wideband Code Division Multiple Access (WCDMA), Long Term Evolution (LTE), evolved Multimedia Broadcast Multicast Services (eMBMS), High-Speed Downlink Packet Access (HSDPA), Universal Terrestrial Radio Access (UTRA), Global System for Mobile Communications (GSM), Code Division Multiple Access 1× Radio Transmission Technology (1×), General Packet Radio Service (GPRS), Personal Communications Service (PCS), 802.11X, Wi-Fi, any suitable wired network, combinations thereof, and/or the like.

FIG.2illustrates a flow diagram of a method of appending a recommendation function on a product image contained in a requested webpage according to one or more embodiments of the present disclosure.FIGS.3A through3Billustrate methods of identifying a product image from among various images contained in the requested webpage according to one or more embodiments of the present disclosure.FIG.4illustrates a schematic diagram of a modified webpage including the recommendation function appended to a product image according to one or more embodiments of the present disclosure.

The methods200,300, and300′ shown inFIGS.2through3Bmay be performed, for example, by the product image extractor122of the browser extension/plugin120shown inFIG.1. However, the present disclosure is not limited thereto, and the operations shown in the methods200,300, and300′ may be performed by any suitable one of the components and elements or any suitable combination of the components and elements of those of one or more example embodiments described above. Further, the present disclosure is not limited to the sequence or number of the operations of the methods200,300, and300′ shown inFIGS.2through3B, and can be altered into any desired sequence or number of operations as recognized by a person having ordinary skill in the art. For example, in some embodiments, the order may vary, or the methods200,300, and300′ may include fewer or additional operations. Further, the operations shown in the methods200,300, and300′ may be performed sequentially, or at least some of the operations thereof may be performed concurrently (e.g., simultaneously or substantially simultaneously).

Referring toFIGS.1through4, the method200may start, and code associated with a requested webpage400may be received at block205. For example, in some embodiments, the browser118may communicate with a webpage server104to request the code (e.g., the HTML and/or XML) associated with the webpage400, for example, in response to a user of the user device102providing a URL or IP address associated with the webpage400in a browser bar or search bar402of the browser118, such that the product image extractor122may receive the code (e.g., via HTTP POST) from the webpage server104at block205.

The webpage400may include various images404,406,408,410,412, and414, and text416. The webpage400may further include other various content, for example, such as videos, audios, buttons, links, and/or the like. The images404,406,408,410,412, and414may be included in the code as URLs or other suitable links, such that the browser118when translating the code may retrieve each of the images404,406,408,410,412, and414according to their URLs or other links.

In response to receiving the code at block205, the plurality of images404,406,408,410,412, and414contained in the code may be identified at block210. For example, the product image extractor122may identify each of the images404,406,408,410,412, and414via a corresponding image tag, attribute, image file extension, and/or the like contained in the code. The images404,406,408,410,412, and414may be filtered to identify product images (e.g.,408and410) from among the images404,405,408,410,412, and414at block215. For example, as will be described in more detail below with reference toFIGS.3A and3B, the product image extractor122may identify the product images408and410from among the images404,405,408,410,412, and414contained in the code of the webpage by comparing a link of each of the images with one or more stored links according to the method300, or by a product identifier or attribute associated with the product images408and410in the code according to the method300′.

In response to determining the product images408and410from among the images404,405,408,410,412, and414contained in the code, a recommendation function420may be appended to each of the product images408and410to generate a modified webpage400at block220. For example, in some embodiments, the product image extractor122may overlay the recommendation function420(e.g., an icon, a link, a button, and/or the like) on each of the product images408and410at block220to generate the modified webpage400shown inFIG.4. The modified webpage400may be displayed on the user device102of a requestor of the webpage400at block225, and the method200may end. For example, the browser118may display the modified webpage400including the overlaid recommendation function420on the display device110associated with the user device102at block225.

In various embodiments, as briefly described above, the product image extractor122may identify the product images408and410from among the images404,405,408,410,412, and414contained in the code of the webpage by comparing a link of each of the images with one or more stored links according to the method300shown inFIG.3A, or by a product identifier or attribute associated with the product images408and410in the code according to the method300′ shown inFIG.3B. In the methods300and300′, operations or processes that are the same or substantially the same as those described above with reference to the method200ofFIG.2are designated with the same reference symbols, and thus, redundant description thereof may not be repeated.

First, referring to the method300ofFIG.3A, in some embodiments, the filtering of the images at block215of the method200may include comparing a link of each of the images404,405,408,410,412, and414with one or more stored links at block315to determine whether any of the links are a matching link with the one or more stored links at block320. For example, in some embodiments, the product image extractor122may compare the URL or other suitable link of each of the images404,405,408,410,412, and414with URLs or other links stored in a data store. In an embodiment, the data store may be included on the user device102, for example, as a list, a script, and/or the like accessible or executed by the product image extractor122. In another embodiment, the data store may be a datacenter, a database, a storage device, memory, and/or the like of the application/web server106, such that the product image extractor122may communicate with the application/web server106to access the stored links.

If a compared link matches one of the stored links (e.g., Yes Y) at block320, then the image with the matching link may be determined to be a product image (e.g.,408or410) from among the images404,405,408,410,412, and414at block325, and thus, the requested webpage may also be determined to be a product webpage. Thus, a recommendation function may be appended to the product image with the matching link at block330, for example, as described above with reference to block220of the method200ofFIG.2, and a determination may be made whether there are any more image links to be compared at block335. If there are more image links to be compared at block335, the method300may continue by determining whether the other image links are a matching link at block320.

Similarly, if a compared link does not match any of the stored links (e.g., No N) at block320, then the product image extractor122may determine whether there are any more image links to be compared at block335. If there are no more links to compare at block335(e.g., No N), then the method300may end, such that the modified webpage400including the recommendation function420overlaid on the product images408and410may be displayed on the display device110of the user device102(e.g., via the browser118) as shown inFIG.4.

Referring to the method300′ ofFIG.3B, in some embodiments, the filtering of the images at block215of the method200may include evaluating a link of each of the images404,405,408,410,412, and414at block315′ to determine whether any of the image links contain a product attribute at block320′. For example, in some embodiments, the product image extractor122may evaluate (e.g., parse, extract, and/or the like) each of the image links to identify a product attribute contained therein. The product attribute may include a keyword, a directory, a name or identifier of a product, a product image tag, and/or the like.

If an image link contains a product attribute (e.g., Yes Y) at block320′, then the image with the product attribute may be presumed to be a product image (e.g.,408or410) from among the images404,405,408,410,412, and414at block325′, and thus, the requested webpage may also be determined to be a product webpage. Thus, a recommendation function may be appended to the product image with the product attribute at block330′, for example, as described above with reference to block220of the method200ofFIG.2, and a determination may be made whether there are any more image links to evaluate at block335′. If there are more image links to evaluate at block335′, the method300′ may continue by evaluating the other image links at block320′.

Similarly, if an evaluated link does not contain a product attribute (e.g., No N) at block320′, then the product image extractor122may determine whether there are any more image links to evaluate at block335′. If there are no more links to evaluate at block335′ (e.g., No N), then the method300′ may end, such that the modified webpage400including the recommendation function420overlaid on the product images408and410may be displayed on the display device110of the user device102(e.g., via the browser118) as shown inFIG.4.

FIG.5illustrates a flow diagram of a method of recommending a product image contained in a product webpage according to one or more embodiments of the present disclosure.FIG.6illustrates a flow diagram of a method of identifying a recommendee according to one or more embodiments of the present disclosure.FIGS.7A through7Billustrate schematic diagrams of a method of recommending a product image contained in a product webpage according to one or more embodiments of the present disclosure.

The methods500and600shown inFIGS.5and6may be performed, for example, by the recommendation service124of the browser extension/plugin120and/or a processing circuit including a processor (e.g., a general purpose processor) of the application/web server106shown inFIG.1. However, the present disclosure is not limited thereto, and the operations shown in the methods500and600may be performed by any suitable one of the components and elements or any suitable combination of the components and elements of those of one or more example embodiments described above. Further, the present disclosure is not limited to the sequence or number of the operations of the methods500and600shown inFIGS.5and6, and can be altered into any desired sequence or number of operations as recognized by a person having ordinary skill in the art. For example, in some embodiments, the order may vary, or the methods500and600may include fewer or additional operations. Further, the operations shown in the methods500and600may be performed sequentially, or at least some of the operations thereof may be performed concurrently (e.g., simultaneously or substantially simultaneously).

Referring toFIGS.1and5through7B, the method500may start, and a selection of a recommendation function associated with a product image may be identified at block505. For example, in some embodiments, the user may select (e.g., click or hover over) a recommendation function420that has been appended to a product image408(e.g., by the product image extractor122), such that the recommendation function420may be expanded to show a recommend link702, which may reveal a form or search bar706and an input button708. Accordingly, a unique identifier of a recommendee may be received from the selected recommendation function at block510. For example, the user may input a username or an email of the recommendee via the search bar706, and may submit the unique identifier of the recommendee by clicking on the input button708.

In some embodiments, if the user has a list of potential recommendees (e.g., friends or followers) already established, the recommendation service124may communicate with the application/web server106to retrieve the list of potential recommendees, such that when the user selects or hovers over the search bar706, the list of potential recommendees may be provided via a dropdown, and the user may select a username of one or more of the potential recommendees from the dropdown.

In response to receiving the unique identifier of the recommendee at block510, a link associated with a product webpage containing the recommended product image may be identified at block515. For example, in some embodiments, the recommendation service124may identify the URL of the webpage400containing the recommended product image408. The link of the product page may be transmitted to the recommendee based on the unique identifier at block520, and the method500may end. For example, in some embodiments, the recommendation service124may transmit the link of the webpage400containing the recommended product image408and the unique identifier of the recommendee to the application/web server106for further processing.

In some embodiments, the recommendation service124may further transmit the link of the recommended product image to the application/web server106to save and/or transmit the product image to the recommendee. In some embodiments, the application/web server106may transmit the recommendation (including the link to the product page and/or the recommended product image) to the recommendee as will be discussed in more detail below with reference toFIG.6. However, the present disclosure is not limited thereto, and in other embodiments, the recommendation service124may directly transmit the recommendation to the recommendee based on the unique identifier, or may transmit the recommendation to another application (e.g., an email application, messaging application, and/or the like) to be transmitted to the recommendee based on the unique identifier.

Referring to the method600ofFIG.6, in some embodiments, a username of a recommendee and a link associated with a product page may be received at block605. For example, the application/web server106may receive the username and the link associated with the product page from the recommendation service124. In some embodiments, the application/web server106may further receive a link associated with the recommended product image from the recommendation service124.

In some embodiments, a list of usernames associated with a recommendor may be identified at block610, and may be compared with the username received from the recommendor at block615. For example, in some embodiments, the application/web server106may compare the received username with the list of usernames associated with the recommendor to determine whether the recommendor knows or is friends with the recommendee, or whether the recommendee follows the recommendor. Thus, if there is a match at block620(e.g., yes Y), then the application server106may transmit the recommendation to the recommendee based on the user name at block625, and the method600may end. On the other hand, if there is no match at block620(e.g., No N), then the application server106may not transmit the recommendation to the recommendee, and the method600may end. For example, in some embodiments, if there is no match at block620, the application/web server106may not process the recommendation, and no notification may be sent to the recommendor. As another example, in some embodiments, in response to no match at block620, the application/web server106may transmit a notification to the recommendation service124indicating that the recommendor is not authorized to transmit the recommendation to the recommendee, such that the recommendation service124may inform the recommendor that the recommendation was denied. Accordingly, in some embodiments, the user may be prevented from transmitting (e.g., spamming) recommendations to unknown users.

While the method600is described with reference to a username of the recommendee as the unique identifier of the recommendee, the present disclosure is not limited thereto, and in other embodiments, instead of the username, the email of the recommendee may be used as the unique identifier in the method600. In another embodiment, if the user is aware of the email of the recommendee, the application/web server106may assume that the user knows the recommendee, and thus, may still transmit the recommendation to the recommendee based on the email, even if the email is not recognized (e.g., such as if the recommendee is not a registered user).

FIGS.8A through8Cillustrate schematic diagrams of a method of saving a product image contained in a product webpage according to one or more embodiments of the present disclosure.

Referring toFIGS.8A through8C, in some embodiments, the recommendation function420may further enable a user to save a product image of a product webpage for later retrieval. For example, in some embodiments, a selected recommendation function420that has been appended to a product image408(e.g., by the product image extractor122) may further expand a save link704, such that when the user clicks on the save link704, a link of the product image408and/or a link of the product webpage402may be transmitted (e.g., by the recommendation service124) to be saved to the user's account with the application/web server106.

In some embodiments, when the user clicks on or hovers over the save link704, a collection dropdown710may be provided, such that the user may save the product image and/or the link of the product webpage in a particular collection. The collections may be predefined and/or user defined, and may enable the user to organize the saved product images into different categories as needed or desired.

In some embodiments, when the extension/plugin120is installed, an extension/plugin button120′ may be added to the browser119(e.g., to a browser bar). The extension/plugin button120′ may communicate with the application/web server106(e.g., via the recommendation service124) to retrieve user activity information (e.g., saved product images, recommendations, collections, and/or the like)712, such that the extension/plugin button120′ may display (e.g., via a popup, a dropdown, and/or the like) the user activity information712, without requiring the user to visit the application page, webpage, dashboard, user interface, and/or the like hosted by the application/web server106in order to view the user activity information712. For example, in some embodiments, the user activity information712may include a thumbnail image714of the saved product image408, and the thumbnail image714may be linked to the product webpage400containing the saved product image408, such that the user may revisit the product webpage400by clicking or otherwise selecting the thumbnail image714.

In some embodiments, the extension/plugin button120′ may enable the user to manage (e.g., to modify and/or delete) the user activity information712. For example, when the user clicks or hovers over the extension/plugin button120′, the user activity information712may be exposed to enable the user to view and manage the user activity information712. In some embodiments, when the user modifies and/or deletes any of the user activity information712from the extension/plugin button120′, the extension/plugin button120′ may inform the application/web server106(e.g., via the recommendation service124), such that any updated user activity information712may be synchronized to the application/web server106.