System, method, and computer program for saving a product listing to a product registry based on a photographic image
A product listing is saved to a product registry based on a photographic image. A client application receives a product image from a user's camera or photo library. The client application obtains a URL for the image and calls an API with the URL, where the API requests search results from an internet image searching service using the URL. A server receives search results from the internet image searching service via the API. The server compares product offers in the search results with a product database by matching a product offer in the search results to a product record in the product database based on having a same URL. The server identifies a matched product record as a product listing and sends the product listing to the client application for display. The client application displays the product listing with a call-to-action button for saving the product to the product registry.
1 . A method, performed by a computer system, for saving a product listing to a product registry based on a photographic image, the method comprising:
a client application receiving an image of a product from a user's camera or photo library;
the client application obtaining a uniform resource locator (URL) for the image;
the client application calling a first application programming interface (API) with the URL for the image, wherein the first API requests search results from an internet image searching service using the URL for the image;
a server receiving search results from the internet image searching service via the first API, wherein the server has a product database that comprises a plurality of product records, wherein each product record is associated with one or more merchant offer records, and wherein the search results comprise one or more product offers;
the server comparing the one or more product offers in the search results with the product database by matching a product offer in the search results to a product record in the product database based on the product offer and matched product record having a same URL, wherein the server identifies the matched product record as a product listing, wherein the server comparing the one or more product offers in the search results with the product database further comprises:
the server filtering out any product offers in the search results that have the same GTIN as the matched product record; and
the server creating a consolidated product listing by grouping all the merchant offer records associated with the matched product record;
in response to the server finding a match between the product offer in the search results and the product record in the product database, performing the following:
the server sending the consolidated product listing to the client application for display, and
the client application displaying the consolidated product listing, wherein the consolidated product listing has a call-to-action button for saving the product to the product registry, wherein for a plurality of consolidated product listings, displaying the consolidated product listing further comprises:
for each of a plurality of consolidated product listings:
the server receiving a primary merchant from the internet image searching service,
the server ranking the primary merchant based on sales volume data from the product database, and
the server calculating a score, wherein the score is based on the ranking of the primary merchant based on sales volume data and a weighted number of merchant offer records associated with the product record;
the server sorting the plurality of consolidated product listings based on each score; and
the server sending the sorted plurality of consolidated product listings to the client application for display; and
in response to the server not finding a match between the product offer in the search results and any product record in the product database, performing the following:
returning the search results to the client application for display, and
the client application displaying the search results, wherein the search results have a call-to-action button for saving a product in the search results to the product registry.
2 . The method of claim 1 , wherein the URL is a public URL, and obtaining the URL for the image comprises sending the image to an image hosting service to generate a public URL for the image.
3 . The method of claim 1 , further comprising a second API, wherein the first API calls the second API with the URL for the image, and the second API interfaces with the internet image searching service and receives search results back from the internet image searching service.
4 . The method of claim 1 , wherein the server comparing the one or more product offers in the search results with the product database further comprises:
the server removing any search results that are not product offers.
5 . The method of claim 1 , wherein the server comparing the one or more product offers in the search results with the product database further comprises:
the server normalizing the URL for the product offers.
6 . The method of claim 1 , further comprising updating the product database with the one or more product offers in the search results, wherein updating the product database comprises creating new product records and/or merchant offer records or updating existing product records and/or merchant offer records.
7 . A non-transitory computer-readable medium comprising a computer program, that, when executed by a computer system, enables the computer system to perform the following steps for saving a product listing to a product registry based on a photographic image, the steps comprising:
a client application receiving an image of a product from a user's camera or photo library;
the client application obtaining a uniform resource locator (URL) for the image;
the client application calling a first application programming interface (API) with the URL for the image, wherein the first API requests search results from an internet image searching service using the URL for the image;
a server receiving search results from the internet image searching service via the first API, wherein the server has a product database that comprises a plurality of product records, wherein each product record is associated with one or more merchant offer records, and wherein the search results comprise one or more product offers;
the server comparing the one or more product offers in the search results with the product database by matching a product offer in the search results to a product record in the product database based on the product offer and matched product record having a same URL, wherein the server identifies the matched product record as a product listing, wherein the server comparing the one or more product offers in the search results with the product database further comprises:
the server filtering out any product offers in the search results that have the same GTIN as the matched product record; and
the server creating a consolidated product listing by grouping all the merchant offer records associated with the matched product record;
in response to the server finding a match between the product offer in the search results and the product record in the product database, performing the following:
the server sending the consolidated product listing to the client application for display, and
the client application displaying the consolidated product listing, wherein the consolidated product listing has a call-to-action button for saving the product to the product registry, wherein for a plurality of consolidated product listings, displaying the consolidated product listing further comprises:
for each of a plurality of consolidated product listings:
the server receiving a primary merchant from the internet image searching service,
the server ranking the primary merchant based on sales volume data from the product database, and
the server calculating a score, wherein the score is based on the ranking of the primary merchant based on sales volume data and a weighted number of merchant offer records associated with the product record;
the server sorting the plurality of consolidated product listings based on each score; and
the server sending the sorted plurality of consolidated product listings to the client application for display; and
in response to the server not finding a match between the product offer in the search results and any product record in the product database, performing the following:
returning the search results to the client application for display, and
the client application displaying the search results, wherein the search results have a call-to-action button for saving a product in the search results to the product registry.
8 . The non-transitory computer-readable medium of claim 7 , further comprising a second API, wherein the first API calls the second API with the URL for the image, and the second API interfaces with the internet image searching service and receives search results back from the internet image searching service.
9 . The non-transitory computer-readable medium of claim 7 , wherein the server comparing the one or more product offers in the search results with the product database further comprises:
the server normalizing the URL for the product offers.
10 . The non-transitory computer-readable medium of claim 7 , further comprising updating the product database with the one or more product offers in the search results, wherein updating the product database comprises creating new product records and/or merchant offer records or updating existing product records and/or merchant offer records.
11 . A computer system for saving a product listing to a product registry based on a photographic image, the system comprising:
one or more processors;
one or more memory units coupled to the one or more processors, wherein the one or more memory units store instructions that, when executed by the one or more processors, cause the system to perform the operations of:
a client application receiving an image of a product from a user's camera or photo library;
the client application obtaining a uniform resource locator (URL) for the image;
the client application calling a first application programming interface (API) with the URL for the image, wherein the first API requests search results from an internet image searching service using the URL for the image;
a server receiving search results from the internet image searching service via the first API, wherein the server has a product database that comprises a plurality of product records, wherein each product record is associated with one or more merchant offer records, and wherein the search results comprise one or more product offers;
the server comparing the one or more product offers in the search results with the product database by matching a product offer in the search results to a product record in the product database based on the product offer and matched product record having a same URL, wherein the server identifies the matched product record as a product listing, wherein the server comparing the one or more product offers in the search results with the product database further comprises:
the server filtering out any product offers in the search results that have the same GTIN as the matched product record; and
the server creating a consolidated product listing by grouping all the merchant offer records associated with the matched product record;
in response to the server finding a match between the product offer in the search results and the product record in the product database, performing the following:
the server sending the consolidated product listing to the client application for display, and
the client application displaying the consolidated product listing, wherein the consolidated product listing has a call-to-action button for saving the product to the product registry, wherein for a plurality of consolidated product listings, displaying the consolidated product listing further comprises:
for each of a plurality of consolidated product listings:
the server receiving a primary merchant from the internet image searching service,
the server ranking the primary merchant based on sales volume data from the product database, and
the server calculating a score, wherein the score is based on the ranking of the primary merchant based on sales volume data and a weighted number of merchant offer records associated with the product record;
the server sorting the plurality of consolidated product listings based on each score; and
the server sending the sorted plurality of consolidated product listings to the client application for display; and
in response to the server not finding a match between the product offer in the search results and any product record in the product database, performing the following:
returning the search results to the client application for display, and
the client application displaying the search results, wherein the search results have a call-to-action button for saving a product in the search results to the product registry.
12 . The computer system of claim 11 , further comprising a second API, wherein the first API calls the second API with the URL for the image, and the second API interfaces with the internet image searching service and receives search results back from the internet image searching service.
13 . The computer system of claim 11 , wherein the server comparing the one or more product offers in the search results with the product database further comprises:
the server normalizing the URL for the product offers.
14 . The computer system of claim 11 , further comprising updating the product database with the one or more product offers in the search results, wherein updating the product database comprises creating new product records and/or merchant offer records or updating existing product records and/or merchant offer records.