IP Library Granted Patent US 12,423,668
Granted Patent B2
US 12,423,668 · App. 17/812,801 · Granted Sep 23, 2025

System and method for pairing devices to establish device groups

Inventors: Andrew Ferrier (Montreal, CA); Daanish Maan (Brampton, CA); Michael Joseph DeFazio (Fonthill, CA); James Lepp (Ottawa, CA); Hettige Ray Perera Jayatunga (Toronto, CA); Neil Leonard Padgett (Toronto, CA)
Assignee: Shopify Inc.
G06Q20/202G06Q20/208
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,423,668
App. No.
17/812,801
Granted
Sep 23, 2025
Kind
B2
Abstract

A system and method are provided for pairing devices to establish device groups. The method includes receiving, at a server associated with a plurality of client devices and a plurality of accessory devices, a first request to establish a device group comprising a first client device of the plurality of client devices and a first accessory device of the plurality of accessory devices. The first request identifies the first client device and the first accessory device. The method also includes establishing the device group comprising the first client device and the first accessory device. The device group, once established, allows the first client device to utilize the first accessory device.

Claims (70)

1. A computer-implemented method comprising:

receiving, at a server associated with a plurality of client devices and a plurality of accessory devices, a first request to establish a device group comprising a first client device of the plurality of client devices and a first accessory device of the plurality of accessory devices, the first client device having identified the first accessory device and initiated the first request identifying the first client device and the first accessory device to the server;

establishing the device group comprising the first client device and the first accessory device by logically pairing the first client device with the first accessory device;

confirming the logical pairing by communicating with at least one of the first client device and the first accessory device using an identifier determined from the first request; and

redirecting data between the first client device and the first accessory device;

wherein, the device group, once established, allows the first client device to utilize the first accessory device.

2. The method of claim 1 , wherein redirecting data between the first client device and the first accessory device comprises:

receiving a second request from the first client device to utilize the first accessory device; and

initiating an operation by the first accessory device based on the second request, by communicating with the first accessory device.

3. The method of claim 1 , further comprising:

receiving a request to add a second accessory device to the device group, the request to add the second accessory device comprising an identifier for the second accessory device; and

updating the device group by logically pairing the first client device, the first accessory device, and the second accessory device.

4. The method of claim 3 , further comprising:

determining that a device type of the second accessory device is the same as a device type of the first accessory device; and

replacing the first accessory device with the second accessory type in the device group.

5. The method of claim 3 , further comprising:

determining that a device type of the second accessory device is the same as a device type of the first accessory device; and

updating the device group to comprise the first client device and a plurality of first accessories of the same device type.

6. The method of claim 1 , wherein the first request comprises a request to dynamically establish the device group with the first accessory device based on a proximity between the first client device and the first accessory device, the method comprising:

initiating an operation by the first accessory device based on the request to dynamically establish the device group.

7. The method of claim 6 , wherein initiating the operation comprises:

receiving data from the first client device; and

sending the data to the first accessory device to execute the operation.

8. The method of claim 1 , further comprising:

receiving a further request to establish a logical pairing in the device group between a second client device and one of the plurality of accessory devices, the further request identifying the second client device and the one of the plurality of accessory devices; and

establishing the logical pairing within the group between the second client device and the one of the plurality of accessory devices;

wherein, the logical pairing, once established, allows the second client device to utilize the one of the plurality of accessory devices identified in the further request.

9. The method of claim 1 , further comprising expiring the device group at a defined time.

10. The method of claim 9 , wherein the defined time comprises at least one of an end time or a time duration since the device group was established.

11. The method of claim 1 , further comprising:

receiving an alert comprising a status for the first accessory device; and

based on the status, updating the device group and communicating with a first replacement device to replace a functionality of the first accessory device for the first client device in the device group.

12. The method of claim 1 , wherein the first client device comprises a point of sale (POS) application for a retail environment and wherein the first accessory device executes at least one operation in a retail POS workflow implemented via the POS application.

13. The method of claim 3 , further comprising communicating with the first accessory device by:

communicating with the second accessory device to establish the logical pairing with the second accessory device; and

initiating establishment of the device group to comprise the first accessory device via the second accessory device.

14. The method of claim 13 , wherein the second accessory device comprises a scanner, the scanner being paired with the first client device as a proxy to add the first accessory device to the device group.

15. The method of claim 1 , further comprising:

displaying a control panel user interface, the control panel user interface providing a visual depiction of the device group comprising the first client device and the first accessory device.

16. A server comprising:

a processor;

a communications module; and

at least one memory, the at least one memory storing computer executable instructions that, when executed by the processor, utilize the processor and communications module to:

receive, at the server, the server being associated with a plurality of client devices and a plurality of accessory devices, a first request to establish a device group comprising a first client device of the plurality of client devices and a first accessory device of the plurality of accessory devices, the first client device having identified the first accessory device and initiated the first request identifying the first client device and the first accessory device to the server;

establish the device group comprising the first client device and the first accessory device by logically pairing the first client device with the first accessory device;

confirm the logical pairing by communicating with at least one of the first client device and the first accessory device using an identifier determined from the first request; and

redirect data between the first client device and the first accessory device;

wherein, the device group, once established, allows the first client device to utilize the first accessory device.

17. The server of claim 16 , wherein redirecting data between the first client device and the first accessory device comprises instructions to:

receive a second request from the first client device to utilize the first accessory device; and

initiate an operation by the first accessory device based on the second request, by communicating with the first accessory device.

18. The server of claim 16 , further comprising instructions to:

receive a request to add a second accessory device to the device group, the request to add the secondary accessory device comprising an identifier for the second accessory device; and

updating the device group by logically pairing the first client device, the first accessory device, and the second accessory device.

19. The server of claim 18 , further comprising instructions to:

determine that a device type of the second accessory device is the same as a device type of the first accessory device; and

replace the first accessory device with the second accessory type in the device group.

20. The server of claim 19 , further comprising instructions to:

determine that a device type of the second accessory device is the same as a device type of the first accessory device; and

updating the device group to comprise the first client device and a plurality of first accessories of the same device type.

21. The server of claim 16 , further comprising instructions to:

receive a further request to establish a logical pairing in the device group between a second client device and one of the plurality of accessory devices, the further request identifying the second client device and the one of the plurality of accessory devices; and

establish the logical pairing within the group between the second client device and the one of the plurality of accessory devices;

wherein, the logical pairing, once established, allows the second client device to utilize the one of the plurality of accessory devices identified in the further request.

22. A non-transitory computer readable medium comprising computer executable instructions that, when executed by a processor of a server, cause the server to:

receive, at the server, the server being associated with a plurality of client devices and a plurality of accessory devices, a first request to establish a device group comprising a first client device of the plurality of client devices and a first accessory device of the plurality of accessory devices, the first client device having identified the first accessory device and initiated the first request identifying the first client device and the first accessory device to the server;

establish the device group comprising the first client device and the first accessory device by logically pairing the first client device with the first accessory device;

confirm the logical pairing by communicating with at least one of the first client device and the first accessory device using an identifier determined from the first request; and

redirect data between the first client device and the first accessory device;

wherein, the device group, once established, allows the first client device to utilize the first accessory device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2022
From: FERRIER, ANDREW; MAAN, DAANISH; DEFAZIO, MICHAEL JOSEPH; LEPP, JAMES; JAYATUNGA, HETTIGE RAY PERERA; PADGETT, NEIL LEONARD
To: SHOPIFY INC.
Reel/Frame 060576/0313 →
Continuity (1)
Related Publication 20240020670A1 · Jan 18, 2024
References Cited (30)
US 8750799B2 · Giles · 2014 [cited by examiner]
US 8972283B2 · Hicks · 2015 [cited by examiner]
US 9665861B2 · Fernando · 2017 [cited by examiner]
US 9954975B2 · Raleigh · 2018 [cited by examiner]
US 10034316B2 · Reshef · 2018 [cited by examiner]
US 10453047B2 · Hicks · 2019 [cited by examiner]
US 10489840B2 · Nelms · 2019 [cited by examiner]
US 11138581B2 · Fernando · 2021 [cited by examiner]
US 11589202B2 · Zarakas · 2023 [cited by examiner]
US 11829978B2 · Gaudin · 2023 [cited by examiner]
US 20120144473A1 · Wyld · 2012 [cited by examiner]
US 20130103478A1 · Fisher · 2013 [cited by examiner]
US 20130103847A1 · Brown · 2013 [cited by examiner]
US 20140019274A1 · Hardin · 2014 [cited by examiner]
US 20140249943A1 · Hicks · 2014 [cited by examiner]
US 20150199667A1 · Fernando · 2015 [cited by examiner]
US 20150199882A1 · Fernando · 2015 [cited by examiner]
US 20160014668A1 · Chou · 2016 [cited by examiner]
US 20160127600A1 · Beatty · 2016 [cited by examiner]
US 20180063373A1 · Hardy · 2018 [cited by examiner]
US 20180150820A1 · Schultze · 2018 [cited by examiner]
US 20190303938A1 · Sanchez-Llorens · 2019 [cited by examiner]
US 20200045519A1 · Raleigh · 2020 [cited by examiner]
US 20200250644A1 · Oberholtzer · 2020 [cited by examiner]
US 20210042730A1 · Lee · 2021 [cited by examiner]
US 20210051039A1 · Qiao · 2021 [cited by examiner]
US 20220078219A1 · D'Amato · 2022 [cited by examiner]
US 20220237573A1 · Jessamine · 2022 [cited by examiner]
US 20230289811A1 · Patel · 2023 [cited by examiner]
WO WO2021128226A1 · 2021 [cited by examiner]