ADAPTIVE PRODUCT LISTING USING BLOCKCHAIN INVENTORY AND SMART CONTRACTS

A consortium of marketplaces may be configured to share inventory information via a distributed ledger (blockchain) When an ecommerce marketplace is out of stock of a requested product, the marketplace may provide a seamless experience to a user by searching the inventory of another marketplace rather than alerting the user that the item is out of stock. The marketplace requesting the item may form a smart contract on the distributed ledger with a fulfilment marketplace to govern the terms of the agreement to provide the item to the user on behalf of the requesting marketplace.

BACKGROUND

The present disclosure generally relates to implementation and use of smart contracts on a distributed blockchain database, and more particularly to a smart contract on a distributed blockchain database to facilitate and enable an adaptive product listing and purchase on an ecommerce marketplace based on user search data.

When an electronic marketplace does not carry an item requested by a user or the item is out of stock, the marketplace can alert the user that the item is out of stock or not carried. Users, however, are more likely to continue their search for the product at other marketplaces when the alert is encountered leaving the site. This can result in fewer sales and an unfulfilling user experience.

Blockchains, also referred to herein as distributed ledgers, are used to track transactions involving crypto currencies (also called virtual currencies) such as, for example, Bitcoin, Litecoin, Ethereum, Monero, and/or other crypto currencies known in the art as well as storage of data. Crypto currency systems provide decentralized digital money that is issued and maintained by distributed software running a network of computing devices, rather than by central banks or public authorities that conventionally issue and control fiat currencies. For example, Bitcoin is a type of decentralized crypto currency that provides for peer-to-peer transactions without an intermediary, with those peer-to-peer transactions verified by Bitcoin network nodes (i.e., the distributed network of computing devices discussed above) and recorded in a public distributed ledger referred to as a blockchain. Crypto currencies like Bitcoin have revolutionized money transfer and payment technology by allowing for censorship resistant, decentralized peer-to-peer transfer of value between users.

Distributed blockchains may also be used for a number of different other technologies besides virtual currency. For instance, Bitcoin and other currency focused networks provide for the execution of a basic “contract” that transfers value between users. However, networks such as the Ethereum network have been created to store executable code (called “smart contracts”) that operates to enforce more complicated relationships with cryptographic software, and extensions to traditionally currency-centric blockchains such as the Bitcoin network have proposed similar enhanced functionality as well. For example, such smart contracts may monitor for conditions defined in the smart contract and, when a condition is determined to be present, the code may be executed and provide an output. As such, smart contracts allow two or more parties to perform more relatively complex transactions in a decentralized, self-executing, self-enforceable manner to provide irreversible transactions that can be tracked on a blockchain and without the need for an intermediary.

DETAILED DESCRIPTION

Embodiments of the present disclosure include systems and methods for unaffiliated marketplaces to share inventories and place orders on behalf of users using blockchains, providing a seamless user experience when the marketplace does not carry or is out of stock of the requested item. In some embodiments, marketplaces may share inventories using a distributed ledger, also referred to as a blockchain or distributed blockchain database, and use a smart contract stored and executed on a distributed ledger to memorialize the agreement between marketplaces, automatically change inventories, and/or transfer funds between the marketplaces (and user). The use of smart contracts and a distributed ledger allows for the transactions between the unaffiliated marketplaces to be verified and executed automatically. The use of the blockchain may allow transactions to be verified by the marketplaces, third parties, and the user. Use of the blockchain may also automate movement of funds when using a crypto currency.

In an embodiment, a user may be interested in a product on a marketplace. The user may search for the product on the marketplace's ecommerce platform. The product may be out of inventory on the selected marketplace but available in another marketplace instead. There is an opportunity for the marketplace to dynamically load the product listing on the ecommerce platform using information from a fulfilment marketplace. The requesting marketplace may route the user's search to a blockchain (e.g., a consortium blockchain) to search an inventory of one or more marketplaces. The consortium (and thus access to the consortium blockchain) may include a variety of marketplaces, e.g., Amazon, AliExpress, eBay, and Etsy. Different consortium members may have different permissions for interacting with the block chain, e.g., read-only or read-write. Joining the consortium may be automatic or may be controlled. The requesting marketplace and fulfilment marketplace may negotiate terms of a smart contract to perform the transaction. The product then may appear in the requesting marketplace, without requiring the user to go to or search the fulfilment marketplace directly, and generate an interface for the user to purchase the item. In an embodiment, the fulfilment marketplace may be the manufacturer of the item.

In certain embodiments, when the user places the order with the requesting marketplace, the requesting marketplace will execute the smart contract with the fulfilment marketplace. In other embodiments, the smart contract is executed prior to the user placing the order, where the product is loaned or held for the requesting marketplace for a period of time should the user choose to place the order. When the user places the order with the requesting marketplace, the fulfilment marketplace can place the final order and share order metadata (e.g., shipping details) with the requesting marketplace.

In other embodiments, the requesting marketplace server may send a broadcast through a mediating server to one or more potential fulfilment marketplaces. The mediating server may process responses from the potential fulfilment marketplaces and send a response to the requesting marketplace. Using an active token session or token exchange, the mediating server may route a placed order request and process a completed order to send from the fulfillment marketplace server to the requesting marketplace server. The token session may orchestrate the interaction between the requesting and fulfilment marketplace servers. Tokens may include an identifier to for a request, a state variable used to determine whether the transaction is active, whether it was declined. The tokens may also include standard terms for the agreement. Use of the token session may protect user privacy. Verification during the token session may allow for user data (identity information, payment data such as account numbers) to be shielded from the fulfilment marketplace. In certain embodiments, shipping information is shared with the fulfilment marketplace.

In some embodiments, website and/or webpage technology may be enhanced to provide a generated interface based on current inventory levels of a product based on a user query. An interface can be generated that is based on inventory availability at other marketplaces based on a real-time agreement (e.g. in response to a user search) between marketplaces.

Referring now toFIG. 1, an embodiment of a networked system100is illustrated. The networked system100includes a plurality of user devices102and a plurality of marketplace devices104A-C in communication over network106. Also connected to network106is mediator device108and a plurality of distributed ledger devices110connected to a (copy of) distributed ledger112. However, the embodiments herein are meant to be merely exemplary, and one of skill in the art in possession of the present disclosure will recognize that a wide variety of system providers may operate, alone or together, to provide the systems and methods discussed herein without departing from the scope of the present disclosure.

The user devices102, marketplace devices104A-C, mediator device108, distributed ledger devices110, and/or distributed ledger112may each include one or more processors, memories, and other appropriate components for executing instructions such as program code and/or data stored on one or more computer readable mediums to implement the various applications, data, and steps described herein. For example, such instructions may be stored in one or more computer readable mediums such as memories or data storage devices internal and/or external to various components of the system100, and/or accessible over the network106.

The network106may be implemented as a single network or a combination of multiple networks. For example, in various embodiments, the network106may include the Internet and/or one or more intranets, landline networks, wireless networks, and/or other appropriate types of networks.

The user devices102may be implemented using any appropriate combination of hardware and/or software configured for wired and/or wireless communication over network106. For example, in one embodiment, the user devices102may be implemented as a personal computer of a user in communication with the Internet. In other embodiments, the user devices102may be a smart phone, wearable computing device, laptop computer, and/or other types of computing devices.

The user devices102may include one or more browser applications which may be used, for example, to provide a convenient interface to permit the user to browse information available over the network108. For example, in one embodiment, the browser application may be implemented as a web browser configured to view information available over the Internet. In one embodiment, user devices102may be able to connect to an electronic commerce interface of marketplace devices104. The electronic commerce interface may include a storefront where a user of user devices102may browse, search, and purchase different products. In one embodiment, a user may search for a product not currently in stock in the inventory of marketplace device104A using the ecommerce interface of marketplace device104A. Marketplace device104A, rather than displaying an out of stock message or an error message, may search through the inventories of other marketplace devices (e.g., marketplace device104B and104C) and determine whether the product is in-stock in these marketplaces. The search may involve one or more of mediator device108and distributed ledger devices110. If the product is in-stock at one or more of those marketplaces, marketplace device104A can negotiate with the other marketplace device104B or104C to ship the product on behalf of marketplace device104A.

In the illustrated embodiment, system100may also include distributed ledger device(s)110that are coupled to a distributed ledger112, which may be stored in a transactional database, and the network106. The distributed ledger device(s)110may operate to receive product inventory information at a marketplace and/or receive virtual transactions broadcast by the marketplace devices104and user devices102, confirm those transactions, and generate/maintain a distributed ledger112(e.g., a public, private, or consortium blockchain stored on each of those devices) discussed below with reference toFIG. 3. For example, distributed ledger devices110may operate to generate (a k a. “mine”) crypto currency while creating a distributed ledger (also referred to as a blockchain), and maintain the distributed ledger while performing other functions detailed herein. The distributed ledger described herein may be a public, private, or consortium distributed ledger or a combination of multiple types. For example, smart contracts may be stored and executed on a public blockchain, but then later that information is copied to a consortium blockchain, for example, for ease of searching. Further still, while illustrated inFIG. 1and discussed in some embodiments below as operating separately to perform separate functions, in some embodiments, the functionality of a the marketplace device(s)104or mediator device108and the distributed ledger device(s)110may be combined such that computing devices in a distributed network operate to maintain a distributed ledger while also operating to provide an ecommerce platform or acting as a mediator between marketplaces as discussed below. Thus, while a specific embodiment has been illustrated, one of skill in the art in possession of the present disclosure will appreciate that system100illustrated inFIG. 1may include a variety of modification while remaining within the scope of the present disclosure.

The user devices102may also include one or more toolbar applications which may be used, for example, to provide user-side processing for performing desired tasks in response to operations selected by the user. In one embodiment, the toolbar application may display a user interface in connection with the browser application.

The user devices102may further include other applications as may be desired in particular embodiments to provide desired features to the user devices102. In particular, the other applications may include a payment application for payments processed by a payment service provider. The other applications may also include security applications for implementing user-side security features, programmatic user applications for interfacing with appropriate application programming interfaces (APIs) over the network106, or other types of applications. Email and/or text applications may also be included, which allow the user to send and receive emails and/or text messages through the network106. The user devices102may include one or more user and/or device identifiers which may be implemented, for example, as operating system registry entries, cookies associated with the browser application, identifiers associated with hardware of the user devices102, or other appropriate identifiers, such as a phone number.

Referring now toFIG. 2, an embodiment of an electronic coin200is illustrated and described briefly for reference in the discussion below. While the examples of the electronic coin200and the blockchain300ofFIG. 3describe the basics of electronic coins and blockchains utilized to record currency transactions, electronic coins and blockchains may be used for recording and/or tracking a variety of other information such as credit information, identity information, medical information, education information, other personal user information, shipment information, food traceability, property ownership, and/or any other data suitable for recording and/or tracking.

In the embodiment illustrated inFIG. 2, a virtual currency system associated with the present disclosure may define an electronic coin as a chain of digital signatures provided by previous owners of the electronic coin to subsequent owners of the electronic coin. In the illustrated embodiment, the electronic coin200is owned by an owner202, andFIG. 2illustrates how the electronic coin200is defined by the digital signatures of previous owners204,206, and208. Specifically, in transaction A, a hash value of the public key of owner206(i.e., the owner receiving, as a result of transaction A, an electronic coin2001defined by digital signatures provided up to transaction A) and the previous transaction (not illustrated, but occurring prior to transaction A) was signed by owner208(i.e., the owner providing, as a result of transaction A, the electronic coin2001defined by digital signatures provided up to transaction A) using a private key and added to an initial electronic coin (which was defined by digital signatures provided up to the transaction prior to transaction A) such that the electronic coin2001was transferred to owner206.

Similarly, in transaction B, a hash value of the public key of owner204(i.e., the owner receiving, as a result of transaction B, an electronic coin2002defined by digital signatures provided up to transaction B) and transaction A was signed by owner206using a private key and added to the electronic coin2001such that the electronic coin2002was transferred to owner204. Similarly, in transaction C, a hash value of the public key of owner202(i.e., the owner receiving, as a result of transaction C, the electronic coin200defined by digital signatures provided up to transaction C) and the transaction B was signed by owner204using a private key and added to the electronic coin2002such that the electronic coin200was transferred to owner202. Any payee receiving an electronic coin (e.g., owner206in transaction A, owner204in transaction B, and owner202in transaction C) can verify the signatures to verify the chain of ownership of the electronic coin. In the discussion below, it should be understood that the term “electronic coin(s)” may be used to encompass any amount or type of electronic coins or virtual/electronic currency, from fractions of a coin (e.g., 0.00564500 electronic coins) to many multiples of coins (e.g., 56,000.00000000 electronic coins).

Referring now toFIG. 3, an embodiment of a distributed ledger300is illustrated and described briefly for reference in the discussion below. As discussed above, the distributed ledger300may operate to verify that payers transferring an electronic coin (e.g., referring back toFIG. 2, owner206in transaction A, owner204in transaction B, and owner202in transaction C) did not “double-spend” (e.g., use a private key to sign any previous transactions involving) that electronic coin. To produce the distributed ledger300, a distributed network of devices operates to agree on a single history of transactions in the order in which they were received such that it may be determined that a transaction between a payer and a payee using an electronic coin is the first transaction associated with that electronic coin. Each device in the distributed network operates to collect new transactions into a block, and then to increment a proof-of work system that includes determining a value that when hashed with the block provides a required number of zero bits.

For example, for a block302that includes a plurality of transactions302a,302b, and up to302c, a device in the distributed network may increment a nonce in the block302until a value is found that gives a hash value of the block302the required number of zero bits. The device may then “chain” the block302to the previous block304(which may have been “chained” to a previous block, not illustrated, in the same manner). When devices in the distributed network find the proof-of-work for a block, that block (e.g., block302) is broadcast to the distributed network, and other devices in the distributed network will accept that block if all the transactions in it are valid and not already spent (which may be determined by creating the next block using the hash value of the accepted block302). The distributed network will always consider the longest chain of blocks to be the correct one and will operate to continue to extend it. If a device receives two different versions of a block, it will work on the first block received, but save the second block received in case the branch of the chain that includes the second block becomes longer (at which point that device will switch to working on the branch of the chain that includes the second block).

Referring now toFIG. 4, a conceptual diagram of exemplary system400is illustrated that, in some embodiments, may be used to update an inventory and provide an adaptive product listing to the user device102using a blockchain based inventory and smart contracts. However, the foregoing system may be provided by any of a variety of computing devices such as desktop computing systems, laptop/notebook computing systems, tablet computing systems, mobile phones, Application Specific Integrated Circuit (ASIC) computing systems, and/or other computing device known in the art, as well as multiple varieties of blockchain technologies (as well as splitting up the blocks into distinct chains for different types of blocks) while remaining within the scope of the present disclosure.

A marketplace device104B may update an inventory record, including a current inventory amount for a product, on a distributed ledger112. The update of the inventory record may be done directly (the marketplace device104B adds a block to the blockchain) or indirectly (e.g., using an intermediary “mining” device). User device102may query marketplace device104A for an item. Marketplace device104A may determine that the item is unavailable and route the request to a blockchain, e.g., a consortium blockchain with a plurality of marketplace members (e.g., marketplace device104A-C). The consortium blockchain may be used as a layer to exchange and share data between consortium subscribers. The consortium subscribers may choose to update inventory feeds based on a pre-configured timeframe or an agreed time frame (e.g. all subscribers to the consortium blockchain provide an update to their category product inventory every 5 minutes or based on a time cycle). In some embodiments, the consortium blockchain is integrated with a public blockchain. The data held in the consortium blockchain may be a copy of what is held in a public ledger blockchain but contains fewer blocks/transactions because the consortium blockchain contains only consortium specific data. In certain embodiments, the consortium blockchain includes data not included in the public blockchain. In some exemplary embodiments, marketplace device104A may query an API with item details including a token identifier and/or marketplace name/identifier to authenticate and verify the identity of the marketplace device104A. Additional API parameters may include the marketplace name, product information including the name or SKU, user authentication information, public key of the user, shipping address to send the order, the type of device that user device is using to query for the product (e.g. mobile app, web, mobile web), primary currency of the order (USD, Euro, bitcoin, Ethereum), and a shipping timespan requirement, e.g., whether there is a shortest shipping timespan required for the order and what that timespan requirement is. The API may be used to authenticate and verify parties to the transaction including marketplace device104A and marketplace device104B. The API may be used to send a request from the marketplace device104A to distributed ledger112or a mediating device108/distributed ledger device110that can query the distributed ledger112and respond to API queries from marketplace devices104.) In an embodiment using mediating device108acting as a gateway to the fulfilment marketplace device104A, data transformation and optimization may be performed on the query. The distributed ledger112(or mediating device108/distributed ledger device110) may respond to the query with information associated with a marketplace where the product is available (e.g., marketplace device104B). A smart contract may be created with terms defined. These terms may include the fulfilment marketplace device, item description (name, SKU), shipping address, shipping timeframe/speed, primary currency, shipping cost, product return time period, and a profit margin share. Therefore, rather than responding that an item was not found based on a user query, a marketplace can respond with an offered item with price/delivery/and other information already calculated being governed by a smart contract. Terms of the smart contract may be standardized or may be based on the product, product location, or shipping location. In an embodiment, machine learning may be used to negotiate the terms of the contract between the requesting marketplace device104A and fulfilment marketplace device104B.

Distributed ledger112may include a plurality of blocks402A-C. Each block402may contain one or more individual transactions404and406. Different types of transactions may be found within an individual block. In other embodiments, different transactions are segregated to separate blocks. Certain transactions (e.g., transactions404) may contain inventory information regarding one or more products at a marketplace. These transactions will have header information, a hash, nonce, and a timestamp. Other transactions (e.g., transaction406) may include transaction metadata from a smart contract stored in distributed ledger112. Transaction406may include transaction data and next delivery date information.

Referring now toFIG. 5, the method500begins at block502where marketplaces, such as fulfilment marketplace device104B, may share their inventory with others in a consortium by sending inventory to a distributed ledger device110for inclusion in a blockchain. The inventory listing may be a listing of SKUs and a number of the item available. In further embodiments, sale price of the item is also included in the inventory listing. At block504, distributed ledger device110may broadcast the inventory to the distributed ledger112and other distributed ledger devices110.

A user using the user device102may perform a search for an item on an ecommerce platform of a marketplace, such as through requesting marketplace device104A. The user device102may send a search request, at block506, to the marketplace device104A searching for a product. The search request may include the name of the item, a SKU, or a description of the item. In an example, the user device102may provide a hypertext markup language (HTML) request to receive a webpage, and the HTML request may include a user device identifier for the user device102such as a phone number, an internet protocol (IP) address, a media access control (MAC) address, and/or any other user device identifier and/or user identifier. If the item is in the inventory, requesting marketplace device104A may provide an interface on the ecommerce platform with details from the inventory to user device102. The requesting marketplace device104A may process the search input of the user device102and search the inventory of the marketplace device104A, at block508. The marketplace device104A may determine that the product searched for by user device102is out of stock or not carried by the marketplace device104A. The marketplace device104A may store the event of “Stock-Keeping Unit (SKU) not available” or currently held inventory for the item as “0,” at block510.

Rather than delivering an error to user device102alerting the user device102the searched for product is unavailable, the requesting marketplace device104A may search inventories of other marketplaces, such as the fulfilment marketplace104B, at block512. In an embodiment, marketplace device104A may search the inventories of other marketplaces, e.g., marketplace device104B and104C, to offer varied different pricing, shipping, or other options to the user device102.

Marketplace device104A may query a distributed ledger device110to search the inventories on the distributed ledger112. Distributed ledger device110may search the inventories on inventories on the distributed ledger112and respond with one or more marketplace device where the product is available, at block514, to the requesting marketplace device104A. For example, the following format may be returned to the requesting marketplace device104A when marketplace device104A queries the distributed ledger112:

For example, the listing may include “SKU123_30_iPHONE3GS”. This data may be parsed by the requesting marketplace device104A to draw inferences that iPhone 3GS is available at the fulfilment marketplace server104B and has 30 units available at the time of query.

Requesting marketplace device104A may create a secure session with the fulfillment marketplace device104B using one or more secure tokens. At block516, the requesting marketplace device104A may send a request to the fulfilment marketplace device104B to fill an order for the item requested by user device102. A secure token session may be used to structure the request. In an embodiment, requesting marketplace device104A may send the request to multiple marketplaces using multiple secure sessions. A token system may be used to arbitrate and differentiate responses from multiple (potential) fulfilment marketplace devices. In certain embodiments, if a fulfilment marketplace device accepts all the terms from a requesting marketplace device104A (including e.g., two-day delivery with no conditions), this fulfilment marketplace device104B may be selected automatically. In such an instance, arbitration and use of a token system may be bypassed.

Fulfilment marketplace device104B may process the fulfilment request, at block518. If the fulfilment marketplace device104B has the item in its inventory, at block520, the fulfilment marketplace104B may respond with inventory and pricing details and additional terms and conditions for processing the item to the mediating device108. The additional terms and conditions may include differing terms from those set forth in an item request. In certain embodiments, the fulfilment marketplace device104B generates the smart contract (signed by fulfilment marketplace device104B) by sending the terms and conditions to the requesting marketplace device104A which the requesting marketplace device104A can sign with a private key. In other embodiments, the smart contract is generated by the requesting marketplace device104A after the user device102places the order for the product (signed by the requesting marketplace device104A), where it is countersigned by the fulfilment marketplace device104B when it receives the acceptance.

At block522, the requesting marketplace device104A may perform data transformation on the received data, update its order systems, reporting, and provide a user presentation based on the received terms and conditions. If the requesting marketplace device104A accepts the terms offered for the item from the fulfilment marketplace device104B, at block524, the requesting marketplace device104A may send an acceptance message accepting the fulfilment terms of the fulfilment marketplace device104B to the mediating device108. This may include an acceptance of changed terms from the initial request made by the requesting marketplace device104A. Upon receipt of the acceptance, fulfilment marketplace device104B, at block526, may provide permission for user device102to view the inventory data and place the order using the ecommerce platform of the requesting marketplace device104A. This permission to view inventory data by the user device102may be cached by the fulfilment marketplace device104including the fulfilment terms provided. The data may be stored for a set period of time (e.g., one hour, one day, one week) or until an order is placed.

The requesting marketplace device104A may prepare and send an interface to user device102with an item preview, at block528, to the user device102. In one embodiment, the interface does not inform the user device102that the item will be shipped by the fulfilment marketplace device104B. In another embodiment, the interface includes a note alerting user device102that a third-party seller will be shipping the item. At block530, the user device102may preview the item via the interface received from the requesting marketplace device104A.

If the user of user device102wishes to place the order, the user may direct user device102to place an order for the item using the interface received from requesting marketplace device104A, at block532. Requesting marketplace device104A routes the placed order request to the fulfilment marketplace device104B using an active session token, at block534. The placed order request may include the creation of a smart contract. The terms in the smart contract may include the fulfilment marketplace device information, item description (name, SKU), shipping address, shipping timeframe/speed, primary currency, shipping cost, product return time period, and a profit margin share. The smart contract may be signed using the private key of the requesting marketplace device104A.

The fulfilment marketplace device104B may sign the smart contract using its private key and place the order, at block536. The fulfilment marketplace device104B may send order metadata to the requesting marketplace device. The smart contract may be placed on the distributed ledger112by distributed ledger device110, at block538. At block540, the smart contract may be executed by the distributed ledger device110. Execution of the smart contract may update inventory information associated with the item on the distributed ledger112. Additionally, execution of the smart contract may automatically send updates of the shipment and delivery process, based on an API call from a delivery service. Execution of the smart contract may create transaction entries in distributed ledger112to effectuate a funds transfer or transaction among the parties involved in the smart contract. Smart contract execution may or may not trigger notification services to inform the informed parties (e.g. requesting marketplace device104A, fulfilment marketplace device104B, user device102).

At block542, the requesting marketplace device104A may perform data transformation, update the order system, reporting, and generate a user interface to indicate that the order has been placed. The user interface may include order details including a confirmation number. At block544, the user device102may view order fulfilment data on the user interface provided by the requesting marketplace device104A.

Fulfilment marketplace device104B may then process the order for shipment. Shipping and package tracking information, e.g., a tracking identifier, may be sent to the requesting marketplace device104A and/or updated on the smart contract on the distributed ledger112(via distributed ledger device110) and subsequently user device102when the ordered item is shipped.

Referring now toFIG. 6, the method600begins at block602where a user device102performs a search for an item on an ecommerce platform of a marketplace device104A. At block604, requesting marketplace device104A may process the search input of user device102and search the inventory of the requesting marketplace device104A for the item. The search request may include the name of the item, a SKU, or a description of the item. In an example, the user device102may provide a hypertext markup language (HTML) request to receive a webpage, and the HTML request may include a user device identifier for the user device102such as a phone number, an internet protocol (IP) address, a media access control (MAC) address, and/or any other user device identifier and/or user identifier. If the item is in the inventory, requesting marketplace device104A may provide an interface on the ecommerce platform with details from the inventory to user device102. If the item is not in the inventory, at block606, requesting marketplace device104A may internally store the event of “SKU not available” or the currently held inventory for the item is “0.” Requesting marketplace device104A, at block608, may share the event details with mediator device108to request whether any other marketplace (e.g. fulfilment marketplace device104B) has the item in its inventory. Mediator device108, at block610, may process the event details and broadcast the request to other marketplace devices104B and104C. Fulfilment marketplace device104B may process the broadcast request, at block612. In an embodiment, several marketplaces may process and respond to the broadcast request. A token system may be used to arbitrate and differentiate responses from multiple (potential) fulfilment marketplace devices. In certain embodiments, if a fulfilment marketplace device is able to accept all the terms from a requesting marketplace device104A (including e.g., two-day delivery with no conditions), this fulfilment marketplace device104B may be selected automatically. In such an instance, arbitration and use of a token system may be bypassed. If the fulfilment marketplace device104B has the item in its inventory, at block614, the fulfilment marketplace device104B may respond with inventory and pricing details and additional terms and conditions for processing the item to the mediating device108. The additional terms and conditions may include differing terms from those set forth in an item request. For example, if the shipping timeframe the fulfilment marketplace device104B can provide is five days whereas two days guaranteed was requested by the requesting device or if the payment is offered using a two-day issuance of payment compared to immediate payment via VISA or MASTERCARD tokens or a cryptocurrency. Mediating device108may process the response from the fulfilment marketplace device104B and send it to the requesting marketplace device104A, at block616.

At block618, the requesting marketplace device104A may perform data transformation on the received data, update its order systems, reporting, and generate/provide a user presentation. If the requesting marketplace device104A accepts the terms offered for the item from the fulfilment marketplace device104B, at block620, the requesting marketplace device104A may send an acceptance message accepting the fulfilment terms of the fulfilment marketplace device104B to the mediating device108. This may include an acceptance of changed terms from the initial request made by the requesting marketplace device104A. Mediating device108, at block622, may process the acceptance message and send it to the fulfilment marketplace device104B. Upon receipt of the acceptance, fulfilment marketplace device104B, at block624may provide permission for user device102to view the inventory data and place the order using the ecommerce platform of the requesting marketplace device104A. The requesting marketplace device104A may prepare and send an interface to user device102with an item preview, at block626, to the user device102. In one embodiment, the interface does not inform the user device102that the item will be shipped by the fulfilment marketplace device104B. In another embodiment, the interface includes a note alerting user device102that a third-party seller will be shipping the item. At block628, the user device102may preview the item via the interface received from the requesting marketplace device104A.

If the user of user device102wishes to place the order, the user may direct user device102to place an order for the item using the interface received from requesting marketplace device104A, at block630. Requesting marketplace device104A and mediating device108route the placed order request to the fulfilment marketplace device104B using an active session token, at block632.

The fulfilment marketplace device104B may place the order and share order metadata, shipment details via an API to mediator device108, at block634. Mediator device108may process the order metadata response and send the placed order information to the requesting marketplace device104A, at block636. At block638, the requesting marketplace device104A may perform data transformation, update the order system, reporting, and generate a user interface to indicate that the order has been placed. The user interface may include order details including a confirmation number. At block640, the user device102may view order fulfilment data on the user interface provided by the requesting marketplace device104A.

Fulfilment marketplace device104B may then process the order for shipment. Shipping and tracking information may be sent to the requesting marketplace device104A and subsequently user device102when the ordered item is shipped. Fulfilment marketplace device104B may ship the product to the shipping address of the user device102. In another embodiment, the fulfilment marketplace device104B may ship the product to requesting marketplace device104A to ship to the user device102.

Payment to the requesting marketplace device104A from the user device102may occur at the time the order is placed. Remittance of the payment from the requesting marketplace device104A to the fulfilment marketplace device104B may occur at the time the order is placed. In other embodiments, the payment from the fulfilment marketplace device104B is the amount the user device102sent to the requesting marketplace device104A discounted by an agreed sharing percentage (or referral fee). The sharing percentage may be a percentage of the order or a flat amount. In another embodiment, payment from the requesting marketplace device104A to the fulfilment marketplace device104B may occur after the product is shipped to the user of user device102, or after the item is received by the user of user device102(based on tracking information associated with the shipment of the item), or after a return period for the item has expired. The type of payment may include crypto currency, credit card, gift certificate/card to the requesting marketplace device104A or fulfilment marketplace device104B. In certain embodiments, execution of the smart contract can cause the transfer of currency from an account associated with user device102to the fulfilment marketplace device104B (or requesting marketplace device104A).

User device102may request to return the product. The return may be processed by the requesting marketplace device104A. In other embodiments, the return may be processed by the fulfilment marketplace device104B. The requesting marketplace device104A may send a communication to the fulfilment marketplace device104B (directly or through mediator device108) with information describing the return request received from user device102. Fulfilment marketplace device104B may deny the request (for example, if the return time period has expired), or send return information to the requesting marketplace device104A. Return information may include a return merchandise authorization (RMA) number, return shipping information, a shipping label. Charges may be reversed, or repayment made, less any applicable restocking, shipping fees, when the item is received by fulfilment marketplace device104.

Referring now toFIG. 7, an embodiment of a user device700is illustrated. The device700may be any of the user devices discussed above. The device700includes a chassis702having a display704and an input device including the display704and a plurality of input buttons706. One of skill in the art will recognize that the device700is a portable or mobile phone including a touch screen input device and a plurality of input buttons that allow the functionality discussed above with reference to methods500and600. However, a variety of other portable/mobile devices and/or desktop devices may be used in methods500and600without departing from the scope of the present disclosure.

Referring now toFIG. 8, an embodiment of a computer system800suitable for implementing, for example, the user devices, distributed ledger devices, mediator devices and/or marketplace devices, is illustrated. It should be appreciated that other devices utilized in the adaptive product listing system may be implemented as the computer system800in a manner as follows.

In accordance with various embodiments of the present disclosure, computer system800, such as a computer and/or a network server, includes a bus802or other communication mechanism for communicating information, which interconnects subsystems and components, such as a processing component804(e.g., processor, micro-controller, digital signal processor (DSP), etc.), a system memory component806(e.g., RAM), a static storage component808(e.g., ROM), a disk drive component810(e.g., magnetic or optical), a network interface component812(e.g., modem or Ethernet card), a display component814(e.g., CRT or LCD), an input component818(e.g., keyboard, keypad, or virtual keyboard), a cursor control component820(e.g., mouse, pointer, or trackball), and/or a location determination component822(e.g., a Global Positioning System (GPS) device as illustrated, a cell tower triangulation device, and/or a variety of other location determination devices known in the art). In one implementation, the disk drive component810may comprise a database having one or more disk drive components.

In accordance with embodiments of the present disclosure, the computer system900performs specific operations by the processor804executing one or more sequences of instructions contained in the memory component806, such as described herein with respect to the payer devices, payee devices, user devices, payment service provider devices, and/or system provider devices. Such instructions may be read into the system memory component806from another computer readable medium, such as the static storage component808or the disk drive component810. In other embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the present disclosure.

Logic may be encoded in a computer readable medium, which may refer to any medium that participates in providing instructions to the processor804for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. In one embodiment, the computer readable medium is non-transitory. In various implementations, non-volatile media includes optical or magnetic disks, such as the disk drive component810, volatile media includes dynamic memory, such as the system memory component806, and transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise the bus802. In one example, transmission media may take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.

In various embodiments of the present disclosure, execution of instruction sequences to practice the present disclosure may be performed by the computer system800. In various other embodiments of the present disclosure, a plurality of the computer systems800coupled by a communication link824to the network106(e.g., such as a LAN, WLAN, PTSN, and/or various other wired or wireless networks, including telecommunications, mobile, and cellular phone networks) may perform instruction sequences to practice the present disclosure in coordination with one another.

The computer system800may transmit and receive messages, data, information and instructions, including one or more programs (i.e., application code) through the communication link824and the network interface component812. The network interface component812may include an antenna, either separate or integrated, to enable transmission and reception via the communication link824. Received program code may be executed by processor804as received and/or stored in disk drive component810or some other non-volatile storage component for execution.