Abstract: The present disclosure relates to a field of electronic commerce (e-commerce), and particularly to a method and a source server for managing coupon codes in e-commerce environment. The method includes generating and transmitting one or more campaign parameters to one or more destination servers from the source server, where the one or more destination servers generate one or more coupon codes based on the one or more campaign parameters. The method further includes receiving a request, from a user corresponding to a redemption of the one or more coupon codes, and identifying a campaign parameter of the one or more campaign parameters and a coupon generation logic from each of the one or more coupon codes. Further, the method includes validating a hash function associated with the one or more campaign parameters and providing an access to the user for the redemption of the one or more coupon codes.
Description:TECHNICAL FIELD
[0001] The present disclosure relates generally to coupon code management. In particular, the present disclosure relates to a method and a source server for managing coupon codes in an electronic commerce environment.
BACKGROUND
[0002] The following description of the related art is intended to provide background information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section is used only to enhance the understanding of the reader with respect to the present disclosure, and not as admission of the prior art.
[0003] Entities use coupons as a promotional tool to incentivize users to purchase products or services associated with said entities. Coupons can be in the form of a code or a physical certificate that can be redeemed for a discount or other benefits on transacting with the entities. These discounts/benefits are often used to attract new users, encourage repeat business, or clear out inventory. In certain cases, multiple entities may collaborate to incentivize actions that benefit all said entities. For example, an ecommerce marketplace entity may issue coupons when a user uses a collaborating payments partner for purchasing a set of products. To distribute coupons in such environments, conventional solutions use trust-based integrations/agreements between the entities where the coupon providing entity may create and provide coupons/coupon codes to a partnering entity, which subsequently issues said coupons to the users on performance of a predetermined activity. The users may then redeem the coupons from the coupon providing entity.
[0004] However, such conventional solutions suffer from several drawbacks. For instance, it is difficult to verify if a particular coupon code issued to the partnering entity has been shared to only one user. If the same coupon is shared to multiple users, the coupon may become unusable once a user redeems the coupon, thereby causing distress to remaining users. Existing approaches to solve this problem such as reporting and audits are time consuming and personnel intensive. Further, in such solutions, all coupons need to be pre-generated and stored with the partnering entity. In most situations, only a small percent of the coupons are redeemed, thereby leading a large number of coupon codes remaining unutilized with the partnering entity while also unnecessarily consuming a significant amount of storage space both for the coupon providing entity and the partnering entity. Further, when multiple partnering entities are involved, there is a risk of same pre-generated coupon codes being provided to more than one partnering entity, and subsequently to users.
[0005] Moreover, there is no means to ascertain which coupons codes have not been issued to the users or redeemed by the users, before determining the quantity of new coupon codes to be provided to the partnering entity. These issues are exacerbated when coupon codes associated with multiple partnering entities are to be managed. Additionally, it is also difficult to update attributes associated with the coupons codes, such as its start date, end date, validity period, the number of total coupon codes available for a campaign, etc., once they have been pre-generated and provided to the partnering entity.
[0006] In other conventional solutions, coupon codes may be generated in real-time whenever the user performs the predetermined activity. However, such solutions require systems associated with the coupon providing entity and the partnering entity to be coupled and in constant communication with each other. This causes a significant increase in complexity and cost of the system.
[0007] There is, therefore, a need for a method and a source server for managing coupon codes in electronic commerce environment.
OBJECTS OF THE INVENTION
[0008] Some of the objects of the present disclosure, which at least one embodiment herein satisfies are listed herein below.
[0009] A general object of the present disclosure is to provide a method and a source server for managing coupon codes in an electronic commerce environment.
[0010] Another object of the present disclosure is to provide a method and a source server for generating unique coupon codes for each user without risk of collision.
[0011] Another object of the present disclosure is to provide a method and a source server that allows for generation of coupons in real-time.
[0012] Another object of the present disclosure is to provide a method and a source server for managing coupon codes where information/parameters associated with each coupon code can be dynamically updated.
[0013] Yet another object of the present disclosure is to provide a method and a source server for managing coupon codes with reduced complexity, cost, and storage requirements.
[0014] The other objects and advantages of the present disclosure will be apparent from the following description when read in conjunction with the accompanying drawings, which are incorporated for illustration of the preferred embodiments of the present disclosure and are not intended to limit the scope thereof.
SUMMARY
[0015] This section is provided to introduce certain objects and aspects of the present disclosure in a simplified form that are further described below in the detailed description. This summary is not intended to identify the key features or the scope of the claimed subject matter.
[0016] Aspects of the present disclosure generally to coupon code management. In particular, the present disclosure relates to a method and a source server for managing coupon codes in an electronic commerce environment.
[0017] In an aspect, a method for managing coupon codes in an electronic commerce environment includes generating, by a processor associated with a source server, one or more campaign parameters corresponding to an offer campaign associated with the e-commerce environment, transmitting, by the processor, the generated one or more campaign parameters to one or more destination servers from the source server, wherein the one or more destination servers generate one or more coupon codes based on the one or more campaign parameters, receiving, by the processor, a request, from a user associated with a computing device, corresponding to a redemption of each of the generated one or more coupon codes, in response to receiving the request, identifying, by the processor, a campaign parameter of the one or more campaign parameters and a coupon generation logic from each of the generated one or more coupon codes, validating, by the processor, a hash function associated with the one or more campaign parameters based on an identity of the user, and providing, by the processor, an access to the user for the redemption of each of the generated one or more coupon codes based on the validation.
[0018] In an embodiment, transmitting, by the processor, the generated one or more campaign parameters to the one or more destination servers from the source server includes updating, by the processor, the coupon generation logic, the hash function, and a total number of coupon codes to be generated associated with the one or more campaign parameters in the one or more destination servers based on a requirement of the offer campaign, and receiving, by the processor, a status corresponding to the update of the coupon generation logic, the hash function, and the total number of coupon codes to be generated.
[0019] In an embodiment, the method includes transmitting, by the processor, a request corresponding to information associated with the offer campaign to the one or more destination servers, and receiving, by the processor, in response to the request, a response corresponding to the information associated with the offer campaign from the one or more destination servers.
[0020] In an embodiment, the information associated with the offer campaign includes at least one of an end date of the offer campaign, and a total number of the generated one or more coupon codes.
[0021] In an embodiment, the method includes transmitting, by the processor, a request corresponding to user information associated with the offer campaign to the one or more destination servers, and receiving, by the processor, in response to the request, a response with a specific user information associated with the offer campaign from the one or more destination servers, where the one or more destination servers use a filtering technique to provide the specific user information.
[0022] In an embodiment, the one or more campaign parameters includes at least one of a first prefix attribute corresponding to an identity of the offer campaign and the coupon generation logic, a second prefix attribute corresponding to an identity of the one or more destination servers, an instruction to generate a coupon code based on the identity of the user as a unique attribute, a hash function associated with the coupon generation logic, a Structured Assertion Language for Temporal (SALT) logic associated with the coupon generation logic, a start date of the offer campaign, an end date of the offer campaign, and a total number of coupon codes to be generated.
[0023] In an embodiment, the campaign parameter of the one or more campaign parameters and the coupon generation logic are identified based on a prefix in each of the generated one or more coupon codes.
[0024] In an aspect, a source server for managing coupon codes in an electronic commerce environment includes a processor, and memory coupled to the processor, where the memory includes processor-executable instructions, which on execution, cause the processor to generate one or more campaign parameters corresponding to an offer campaign associated with the e-commerce environment, transmit the generated one or more campaign parameters to one or more destination servers from the source server, where the one or more destination servers generate one or more coupon codes based on the one or more campaign parameters, receive a request, from a user associated with a computing device, corresponding to a redemption of each of the generated one or more coupon codes, in response to the reception of the request, identify a campaign parameter of the one or more campaign parameters and a coupon generation logic from each of the generated one or more coupon codes, validate a hash function associated with the one or more campaign parameters based on an identity of the user, and provide an access to the user for the redemption of each of the generated one or more coupon codes based on the validation.
[0025] In an embodiment, the processor, to transmit the generated one or more campaign parameters to the one or more destination servers from the source server, may be configured to update the coupon generation logic, the hash function, and a total number of coupon codes to be generated associated with the one or more campaign parameters in the one or more destination servers based on a requirement of the offer campaign, and receive a status corresponding to the update of the coupon generation logic, the hash function, and the total number of coupon codes to be generated.
[0026] In an embodiment, the processor may be configured to transmit a request corresponding to information associated with the offer campaign to the one or more destination servers, and receive, in response to the request, a response corresponding to the information associated with the offer campaign from the one or more destination servers.
[0027] In an embodiment, the information associated with the offer campaign includes at least one of an end date of the offer campaign, and a total number of the generated one or more coupon codes.
[0028] In an embodiment, the processor may be configured to transmit a request corresponding to user information associated with the offer campaign to the one or more destination servers, and receive, in response to the request, a response with a specific user information associated with the offer campaign from the one or more destination servers, where the one or more destination servers use a filtering technique to provide the specific user information.
[0029] In an embodiment, the one or more campaign parameters includes at least one of a first prefix attribute corresponding to an identity of the offer campaign and the coupon generation logic, a second prefix attribute corresponding to an identity of the one or more destination servers, an instruction to generate a coupon code based on the identity of the user as a unique attribute, a hash function associated with the coupon generation logic, a Structured Assertion Language for Temporal (SALT) logic associated with the coupon generation logic, a start date of the offer campaign, an end date of the offer campaign, and a total number of coupon codes to be generated.
[0030] In an embodiment, the campaign parameter of the one or more campaign parameters and the coupon generation logic are identified based on a prefix in each of the generated one or more coupon codes.
[0031] Various objects, features, aspects, and advantages of the inventive subject matter will become more apparent from the following detailed description of preferred embodiments, along with the accompanying drawing figures in which like numerals represent like components.
BRIEF DESCRIPTION OF THE DRAWINGS
[0032] The accompanying drawings are included to provide a further understanding of the present disclosure and are incorporated in and constitute a part of this specification. The drawings illustrate exemplary embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure.
[0033] FIG. 1 illustrates an exemplary block diagram representation of a network architecture implementing a proposed source server for managing coupon codes in an electronic commerce environment, according to embodiments of the present disclosure.
[0034] FIG. 2 illustrates an exemplary detailed block diagram representation of the proposed source server, according to embodiments of the present disclosure.
[0035] FIG. 3 illustrates an exemplary flow diagram for managing coupon codes, according to embodiments of the present disclosure.
[0036] FIG. 4 illustrates a flow chart of a method for managing coupon codes in an electronic commerce environment, according to embodiments of the present disclosure.
[0037] FIG. 5 illustrates a hardware platform with which or in which embodiments of the present disclosure may be implemented.
[0038] The foregoing shall be more apparent from the following more detailed description of the disclosure.
DETAILED DESCRIPTION
[0039] In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of the embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features. An individual feature may not address all of the problems discussed above or might address only some of the problems discussed above. Some of the problems discussed above might not be fully addressed by any of the features described herein.
[0040] The ensuing description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It should be understood that, various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth.
[0041] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
[0042] Also, it is noted that individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed but could have additional steps not included in a figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.
[0043] The word “exemplary” and/or “demonstrative” is used herein to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as “exemplary” and/or “demonstrative” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.
[0044] As used herein, “connect”, “configure”, “couple” and its cognate terms, such as “connects”, “connected”, “configured”, and “coupled” may include a physical connection (such as a wired/wireless connection), a logical connection (such as through logical gates of semiconducting device), other suitable connections, or a combination of such connections, as may be obvious to a skilled person.
[0045] As used herein, “send”, “transfer”, “transmit”, and their cognate terms like “sending”, “sent”, “transferring”, “transmitting”, “transferred”, “transmitted”, etc. include sending or transporting data or information from one unit or component to another unit or component, wherein the content may or may not be modified before or after sending, transferring, transmitting.
[0046] Reference throughout this specification to “one embodiment” or “an embodiment” or “an instance” or “one instance” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0047] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed products.
[0048] Various embodiments of the present disclosure generally to coupon code management. In particular, the present disclosure relates to a method and a source server for managing coupon codes in an electronic commerce environment. The present disclosure provides a method and a source server for managing coupon codes that generate unique coupon codes for each user without risk of collision. The present disclosure allows for generation of coupons in real-time. The present disclosure provides a method and a source server for managing coupon codes where information/parameters associated with each coupon code can be dynamically updated. The present disclosure provides a method and a source server for managing coupon codes with reduced complexity, cost, and storage requirements.
[0049] Other like benefits and advantages are provided by the disclosed solution, which will be discussed in detail throughout the disclosure.
[0050] The various embodiments throughout the disclosure will be explained in more detail with reference to FIGs. 1-5.
[0051] FIG. 1 illustrates an exemplary network architecture 100 for implementing a proposed source server 110 for managing coupon codes in an electronic commerce environment, according to embodiments of the present disclosure. The network architecture 100 may include an electronic device 108, the source server 110, and a destination server 118. The source server 110 may be connected to the destination server 118 via a communication network 106. The communication network 106 may be a wired communication network or a wireless communication network. The wireless communication network may be any wireless communication network capable of transferring data between entities of that network such as, but are not limited to, a Bluetooth, a Zigbee, a Near Field Communication (NFC), a Wireless-Fidelity (Wi-Fi) network, a Light Fidelity (Li-Fi) network, a carrier network including a circuit-switched network, a packet switched network, a Public Switched Telephone Network (PSTN), a Content Delivery Network (CDN) network, an Internet, intranets, Local Area Networks (LANs), Wide Area Networks (WANs), mobile communication networks including a Second Generation (2G), a Third Generation (3G), a Fourth Generation (4G), a Fifth Generation (5G), a Sixth Generation (6G), a Long-Term Evolution (LTE) network, a New Radio (NR), a Narrow-Band (NB), an Internet of Things (IoT) network, a Global System for Mobile Communications (GSM) network and a Universal Mobile Telecommunications System (UMTS) network, combinations thereof, and the like.
[0052] The source server 110 may be implemented by way of a single device or a combination of multiple devices that may be operatively connected or networked together. For example, the source server 110 may be implemented by way of a standalone device such as the centralized server, and the like, and may be communicatively coupled to the electronic device 108. Alternatively, the source server 110 may be implemented as a centralized server, including but not limited to, as a stand-alone server, a remote server, a cloud computing server, a dedicated server, a rack server, a server blade, a server rack, a bank of servers, a server farm, hardware supporting a part of a cloud service or system, a home server, hardware running a virtualized server, one or more processors executing code to function as a server, one or more machines performing server-side functionality as described herein, at least a portion of any of the above, some combination thereof, and the like. In another embodiment, the source server 110 may be implemented in/associated with the electronic device 108. In yet another embodiment, the source server 110 may be implemented in/associated with respective computing devices (104-1, 104-2,…104-N) (individually referred to as the computing device 104, and collectively referred to as the computing devices 104), associated with one or more users (102-1, 102-2…102-N) (individually referred to as the user 102, and collectively referred to as the users 102). In such a scenario, the source server 110 may be replicated in each of the computing devices 104. The users 102 may be a user of, but not limited to, an electronic commerce (e-commerce) platform, a marketplace, a merchant platform, a hyperlocal platform, a super-mart platform, a media platform, a service providing platform, a social networking platform, a travel/services booking platform, a messaging platform, a bot processing platform, a virtual assistance platform, an Artificial Intelligence (AI) based platform, a blockchain platform, a blockchain marketplace, and the like. In some embodiments, the user 102 may correspond to an entity/administrator of platforms/services.
[0053] In an embodiment, the electronic device 108 may be at least one of an electrical, an electronic, an electromechanical, and a computing device. The electronic device 108 may include, but is not limited to, a mobile device, a smart-phone, a Personal Digital Assistant (PDA), a tablet computer, a phablet computer, a wearable computing device, a Virtual Reality/Augmented Reality (VR/AR) device, a laptop, a desktop, a server, and the like.
[0054] In an embodiment, the destination server 118 may include, but is not limited to, a stand-alone server, a remote server, a cloud computing server, a dedicated server, a rack server, a server blade, a server rack, a bank of servers, a server farm, hardware supporting a part of a cloud service or system, a home server, hardware running a virtualized server, one or more processors executing code to function as a server, one or more machines performing server-side functionality as described herein, at least a portion of any of the above, some combination thereof, and the like. In other embodiments, the destination server 118 may be implemented as any computing device, similar to computing devices 104 or electronic device 108. The destination server 118 may be associated with an entity distinct from said electronic commerce (e-commerce) environment or an entity corresponding to an electronic commerce (e-commerce) environment.
[0055] Referring to FIG. 1, the source server 110 may include a processor 112, an Input/Output (I/O) interface 114, and a memory 116. The I/O interface 114 of the source server 110 may be used to receive user inputs from the computing devices 104 associated with the users 102. Further, the source server 110 may also include other units such as a display unit, and the like, however the same are not shown in FIG. 1, for the purpose of clarity. Also, in FIG. 1, only a few units are shown, however, the source server 110 or the network architecture 100 may include multiple such units or the source server 110 or the network architecture 100 may include any such numbers of the units, obvious to a person skilled in the art or as required to implement the features of the present disclosure.
[0056] In an embodiment, the source server 110 may be a hardware device including the processor 112 executing machine-readable program instructions to manage coupon codes in an electronic commerce (e-commerce) environment. Execution of the machine-readable program instructions by the processor 112 may enable the proposed source server 110 to manage coupon codes in an electronic commerce (e-commerce) environment. The “hardware” may comprise a combination of discrete components, an integrated circuit, an application-specific integrated circuit, a fieldprogrammable gate array, a digital signal processor, or other suitable hardware. The “software” may comprise one or more objects, agents, threads, lines of code, subroutines, separate software applications, two or more lines of code, or other suitable software structures operating in one or more software applications or on one or more processors. The processor 112 may include, for example, but is not limited to, microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and any devices that manipulate data or signals based on operational instructions, and the like. Among other capabilities, the processor 112 may fetch and execute computer-readable instructions in the memory 116 operationally coupled with the source server 110 for performing tasks such as data processing, input/output processing, and/or any other functions. Any reference to a task in the present disclosure may refer to an operation being or that may be performed on data.
[0057] In the example that follows, assume that an operator of the source server 110 desires to improve/add additional features to the source server 110 for managing coupon codes in an electronic commerce (e-commerce) environment. In this instance, the operator may include an administrator of a website, an administrator of an e-commerce site, an administrator of a social media site, an administrator of an e-commerce application/social media application/other applications, an administrator of media content (e.g., television content, video-on demand content, online video content, graphical content, image content, augmented/virtual reality content, metaverse content), an administrator of supply chain platform, an administrator of blockchain marketplace, an administrator of a travel/services booking platform, an administrator of merchant platform, among other examples, and the like. Further, the source server 110 may include, but is not limited to, a touch panel, a soft keypad, a hard keypad (including buttons), and the like.
[0058] In an embodiment, the source server 110 for managing coupon codes in an electronic commerce (e-commerce) environment may, through the processor 112, generate one or more campaign parameters corresponding to an offer campaign associated with the e-commerce environment. In an embodiment, the information associated with the offer campaign may include, but not be limited to, an end date of the offer campaign, and a total number of one or more coupon codes. In an embodiment, the one or more campaign parameters may include, but not be limited to, a first prefix attribute corresponding to an identity of the offer campaign and a coupon generation logic, a second prefix attribute corresponding to an identity of the destination server 118, an instruction to generate the coupon code based on an identity of the user 102 as a unique attribute, a hash function associated with the coupon generation logic, a Structured Assertion Language for Temporal (SALT) logic associated with the coupon generation logic, a start date of the offer campaign, an end date of the offer campaign, and the total number of coupon codes to be generated. Further, a unique coupon generation logic may be generated for each destination server 118.
[0059] In an embodiment, the processor 112 may transmit the generated one or more campaign parameters to the destination server 118 from the source server 110. In an embodiment, the destination server 118 may generate one or more coupon codes based on the one or more campaign parameters. In an embodiment, the destination server 118 may generate unique coupon codes for each user 102 encrypting at least one unique identifier data associated with the user 102 and the one or more campaign parameters, thereby reducing the risk of similar or identical coupon codes being distributed to more than one user 102.
[0060] In an embodiment, the source server 110 may then receive a request, from the user 102 associated with the computing device 104, corresponding to a redemption of each of the generated one or more coupon codes. In an embodiment, the source server 110 may identify a campaign parameter of the one or more campaign parameters and the coupon generation logic from each of the generated one or more coupon codes, upon receiving the request from the user 102. Further, in an embodiment, the source server 110 may validate the hash function associated with the one or more campaign parameters based on the identity of the user 102. In an embodiment, the source server 110 may then provide an access to the user 102 for the redemption of each of the generated one or more coupon codes based on the validation.
[0061] In an embodiment, to transmit the generated one or more campaign parameters to the destination server 118 from the source server 110, the source server 110 may update the coupon generation logic, the hash function, and the total number of coupon codes to be generated associated with the one or more campaign parameters in the destination server 118 based on a requirement of the offer campaign. In an embodiment, the source server 110 may then receive a status corresponding to the update of the coupon generation logic, the hash function, and the total number of coupon codes to be generated.
[0062] In an embodiment, the source server 110 may transmit a request corresponding to information associated with the offer campaign to the destination server 118 and receive, in response to the request, a response corresponding to the information associated with the offer campaign from the destination server 118.
[0063] In an embodiment, the source server 110 may transmit a request corresponding to user information associated with the offer campaign to the destination server 118 and receive, in response to the request, a response with a specific user information associated with the offer campaign from the destination server 118. In an embodiment, the destination server 118 may use a filtering technique to provide the specific user information. In an embodiment, the filtering technique may include, but is not limited to, CountMin Sketch, HyperLogLog, standard BloomFilter, scalable BloomFilter, counting BloomFilter, or any combination thereof.
[0064] In an embodiment, the campaign parameter of the one or more campaign parameters and the coupon generation logic may be identified based on a prefix in each of the generated one or more coupon codes.
[0065] Although FIG. 1 shows exemplary components of the network architecture 100, in other embodiments, the network architecture 100 may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 1. Additionally, or alternatively, one or more components of the network architecture 100 may perform functions described as being performed by one or more other components of the network architecture 100.
[0066] FIG. 2 illustrates an exemplary block diagram representation of the proposed source server 110, according to embodiments of the present disclosure.
[0067] Referring to FIG. 2, the source server 110 may include the processor 112, the I/O interface 114, the memory, and one or more modules 204. In an embodiment, the memory 116 may include data 202. The data 202 may include, but is not limited to, campaign parameter data 206, coupon codes data 208, requests data 210, coupon generation logic data 212, hash function data 214, and other data 216. In an embodiment, the data 202 may be stored in the memory 116 in the form of various data structures. Additionally, the data 202 may be organized using data models, such as relational or hierarchical data models. The other data 216 may store data, including temporary data and temporary files, generated by the modules 204 for performing the various functions of the source server 110.
[0068] In an embodiment, the modules 204 may include a generating module 218, a transmitting module 220, a receiving module 222, a validating module 224, a providing module 226, an identifying module 228, and other modules 230. In an embodiment, the data 202 stored in the memory 116 may be processed by the modules 204 of the source server 110. In an embodiment, the modules 204 may be stored within the memory 116. In an embodiment, the modules 204 communicatively coupled to the processor 112 configured in the source server 110, may also be present outside the memory 116, as shown in FIG. 2, and implemented as hardware. As used herein, the term modules may refer to an Application-Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group), and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
[0069] In an embodiment, the generating module 218 may generate one or more campaign parameters corresponding to an offer campaign associated with the e-commerce environment. In an embodiment, the one or more campaign parameters may be generated as campaign parameter data 206. In such embodiments, the campaign parameter data 206 may include, but not be limited to, a first prefix attribute corresponding to an identity of the offer campaign and a coupon generation logic, and a second prefix attribute corresponding to an identity of one or more destination servers such as the destination server 118 of FIG. 1, an instruction to generate a coupon code based on an identity of a user such as the user 102 of FIG. 1 as a unique attribute, a hash function associated with the coupon generation logic, SALT logic associated with the coupon generation logic, a start date of the offer campaign, an end date of the offer campaign, and a total number of coupon codes to be generated. In an embodiment, a unique coupon generation logic may be generated for each of the one or more destination servers 118.
[0070] In an embodiment, the transmitting module 220 may transmit the generated one or more campaign parameters to the one or more destination servers 118 from the source server 110, where the one or more destination servers 118 may generate one or more coupon codes based on the one or more campaign parameters. In an embodiment, the one or more coupon codes may be generated as coupon codes data 208, said coupon codes data 208 including, but not limited to, hashed value of at least one of SALT logic, the first prefix attribute, the second prefix attribute, user identity data, other campaign parameters, or any combination thereof. In an embodiment, to transmit the generated one or more campaign parameters to the one or more destination servers 118 from the source server 110, the transmitting module 220 may update the coupon generation logic, the hash function, and the total number of coupon codes to be generated associated with the one or more campaign parameters in the one or more destination servers 118 based on a requirement of the offer campaign. In an embodiment, the transmitting module 220 may also transmit a request corresponding to information associated with the offer campaign to the one or more destination servers 118. In an embodiment, the information associated with the offer campaign may include, but not be limited to, an end date of the offer campaign, and the total number of the generated one or more coupon codes. In an embodiment, the transmitting module 220 may also transmit a request corresponding to a user information associated with the offer campaign to the one or more destination servers 118.
[0071] In an embodiment, the receiving module 222 may receive the request, from the user 102, corresponding to a redemption of each of the generated one or more coupon codes. In an embodiment, the request may be received as requests data 210, said requests data 210 including, but not limited to, a request for redeeming one or more coupon codes issued to the user 102 for benefits from operators of the source server 110. In an embodiment, the receiving module 222 may receive a status corresponding to the update of the coupon generation logic, the hash function, and the total number of coupon codes to be generated, based on the request transmitted by the transmitting module 220. In an embodiment, the receiving module 222 may also receive, in response to the request, a response corresponding to the information associated with the offer campaign from the one or more destination servers 118. In an embodiment, the receiving module 222 may also receive, in response to the request transmitted to the user 102, a response with a specific user information associated with the offer campaign from the one or more destination servers 118, where the one or more destination servers 118 use a filtering technique to provide the specific user information. In an embodiment, the specific user information may include information that can be used to uniquely identify the user 102 including, but not limited to, phone number, e-mail address, uniquely generated user identity, government issued identity information, biometric information, cryptographic key associated with the user 102, or the like.
[0072] In an embodiment, the identifying module 228 may identify a campaign parameter of the one or more campaign parameters and a coupon generation logic from each of the generated one or more coupon codes, upon receiving the request. In an embodiment, the coupon generation logic may be identified as coupon generation logic data 212. In other embodiments, the campaign parameter of the one or more campaign parameters and the coupon generation logic are identified based on a prefix in each of the generated one or more coupon codes.
[0073] In an embodiment, the validating module 224 may validate a hash function associated with the one or more campaign parameters based on an identity of the user 102. In an embodiment, the hash function may be stored as the hash function data 214. In an embodiment, the hash function data 214 may be indicative of, but not limited to, PBKDF2, BCrypt, and SCrypt, or any combination thereof. In an embodiment, the validating module 224 may use the information contained in the generated coupon code to identify the campaign parameter and the coupon generation logic used for generating the coupon code with the second prefix attribute in the coupon code, validate the coupon code by the user’s 102 unique identifier data using the identified coupon generation logic to obtain a resulting value, and match the resulting value with the coupon code provided in the request. If the resulting value matches with the coupon code provided in the request, the source server 110 may provide access to the user 102. In an embodiment, the providing module 226 may provide the access to the user 102 for the redemption of each of the generated one or more coupon codes based on a success of the validation.
Exemplary scenario
[0074] Consider a scenario where the operator of the source server 110 wishes to issue one or more coupon codes to users 102 through the operators of the one or more destination servers 118, as shown in FIG. 3. For example, the source server 110 may host or operate an e-commerce environment associated with a first entity. In such examples, the source server 110 may generate one or more campaign parameters that includes a coupon generation logic unique to each destination server 118, the hash function, and the total number of coupons to be generated corresponding to an offer campaign. In an example, the coupon generation logic may be indicative of a function that uses a unique identifier data associated with the user 102, such as a phone number, and returns a coupon code indicative of the second prefix attribute associated with the destination server 118 that is concatenated with the unique identifier data of the user 102 using a predetermined SALT logic value. In an example, the unique identifier data associated with the user 102 may be encrypted using a one-way cryptographic hash of a predetermined number of characters along with the SALT logic value that is unique to each destination server 118.
[0075] Once the one or more campaign parameters are generated and transmitted to the one or more destination servers 118, said one or more destination servers 118 generate one or more coupon codes based on the one or more campaign parameters. The destination server 118 may generate and distribute the coupon codes when the user 102 performs a predetermined activity. In an example, the destination server 118 may be indicative of a payment partner of the operators of the source server 110 that enables financial transaction between the user 102 and the operators of the source server 110. In such examples, the predetermined activity may be payment for products and/or services to the source server 110 using the destination server 118. Further, the source server 110 may be configured to receive a request from the user 102 to redeem the generated one or more coupon codes. The source server 110 may use the information contained in the generated coupon code to identify the campaign parameter and the coupon generation logic used for generating the coupon code with the second prefix attribute in the coupon code, validate the coupon code by the user’s 102 unique identifier data using the identified coupon generation logic to obtain a resulting value, and match the resulting value with the coupon code provided in the request. If the resulting value matches with the coupon code provided in the request, the source server 110 may provide access to the user 102 for redeeming said coupon codes for benefits prescribed in the offer campaign.
[0076] In an embodiment, the campaign parameters may also include start date and end date, indicative of a time period of availability of the offer campaign. In an embodiment, the source server 110 may update the one or more campaign parameters at the one or more destination servers 118 for suitably extending or shortening the time period associated with the offer campaign. The source server 110 may then transmit a request to the one or more destination servers 118 and receive a response information associated with the offer campaign, such as an end date of the offer campaign, and a total number of the generated one or more coupon codes, stored at said one or more destination servers 118. In such examples, the source server 110 may update the total number of coupons to be generated by the one or more destination servers 118 based on a redemption rate estimated based on the received information. The source server 110 may either increase the number of coupons to be distributed from the planned value (lower redemption rate or higher budget availability) or reduce the number of coupons to be disbursed from the planned value (higher redemption rate or lower budget availability). The source server 110 and the destination servers 118 may communicate using an Application Programming Interface (API) for dynamically updating and synchronizing the one or more campaign parameters. In an embodiment, the source server 110 and the one or more destination servers 118 may periodically synchronize at frequencies between every 5 minutes to every 24 hours. However, it may be appreciated by those in the art that the frequency may be suitably adapted for other use requirements.
[0077] Further, the source server 110 may also provide a unique first prefix attribute for each offer campaign and a second prefix attribute that is unique to each of the one or more destination servers 118. Using the coupon code generation logic with at least one of the first prefix attribute, the second prefix attribute, and a unique identifier data such as a phone number associated with the user 102, among others, the one or more destination servers 118 may generate unique coupon codes for each user 102, thereby eliminating the risk of the same coupon code from being distributed to more than one user 102. Each of the generated coupon codes may be unique to each user 102. Further, since the second prefix attribute assigned to each destination server 118 is unique, each of the one or more destination servers 118 may generate unique coupon codes of each user 102, thereby eliminating the risk of collision.
[0078] Furthermore, the source server 110, by dynamically updating the one or more campaign parameters, may also eliminate risks associated with leaks of said one or more campaign parameters to unintended or unauthorized entities. For example, the source server 110 may update the one or more campaign parameters to cause a subset of coupon codes to expire. In other embodiments, the source server 110 may update the campaign parameters to end the offer campaign, and transmit a new set of campaign parameters to start a new offer campaign. In some embodiments, the source server 118 may also transmit a request to the one or more destination servers 118 to receive, as a response, a specific user information of valid users 102 for whom the coupon was generated. The response may include a list of the users 102 that may be shared in the form a BloomFilter by encoding unique identifier data associated with the user 102 (such as phone number) as the key.
[0079] FIG. 4 illustrates a flow chart of a method 400 for managing coupon codes in an electronic commerce environment, according to embodiments of the present disclosure.
[0080] At step 402, the method 400 includes generating, by a processor such as the processors 112 of FIGs. 1 and 2, associated with a source server such as 110, one or more campaign parameters corresponding to an offer campaign associated with the e-commerce environment.
[0081] At step 404, the method 400 includes transmitting, by the processor 112, the generated one or more campaign parameters to one or more destination servers such as 118 from the source server 110. In an embodiment, the one or more destination servers 118 may generate one or more coupon codes based on the one or more campaign parameters.
[0082] At step 406, the method 400 includes receiving, by the processor 112, a request, from a user 102 associated with a computing device 104, corresponding to a redemption of each of the generated one or more coupon codes.
[0083] At step 408, the method 400 includes identifying, by the processor 112, a campaign parameter of the one or more campaign parameters and a coupon generation logic from each of the generated one or more coupon codes, upon receiving the request.
[0084] At step 410, the method 400 includes validating, by the processor 112, a hash function associated with the one or more campaign parameters based on an identity of the user 102.
[0085] At step 412, the method 400 includes providing, by the processor 112, an access to the user 102 for the redemption of each of the generated one or more coupon codes based on the validation.
[0086] It may be appreciated that the order in which the method 400 is described is not intended to be construed as a limitation, and any number of the described method steps may be combined or otherwise performed in any order to implement the method 400 or an alternate method. Additionally, individual steps may be deleted from the method 400 without departing from the scope of the present disclosure described herein. Furthermore, the method 400 may be implemented in any suitable hardware, software, firmware, or a combination thereof, that exists in the related art or that is later developed. The method 400 describes, without limitation, the implementation of the source server 110. A person of ordinary skill in the art will understand that method 400 may be modified appropriately for implementation in various manners without departing from the scope of the present disclosure.
[0087] FIG. 5 illustrates a hardware platform 500 in which or with which embodiments of the present disclosure may be implemented. For example, the source server 110 may be implemented as the hardware platform 500. For the sake of brevity, construction, and operation, features of the source server 110 which are explained in detail above are not explained in detail herein. Particularly, computing machines such as, but not limited to, internal/external server clusters, quantum computers, desktops, laptops, smartphones, tablets, and wearables which may be used to execute the source server 110 or may include the structure of the hardware platform 500 are not explained in detail herein. As illustrated, the hardware platform 500 may include additional components not shown, and that some of the components described may be removed and/or modified. For example, a computer system with multiple Graphics Processing Units (GPUs) may be located on external-cloud platforms, or internal corporate cloud computing clusters, or organizational computing resources, and the like.
[0088] The hardware platform 500 may be a computer system such as the source server 110 that may be used in accordance with the embodiments described herein. The computer system may represent a computational platform that includes components that may be in a server or another computer system. The computer system may execute, by a processor 505 (e.g., a single or multiple processors) or other hardware processing circuit, the methods, functions, and other processes described herein. These methods, functions, and other processes may be embodied as machine-readable instructions stored on a computer-readable medium, which may be non-transitory, such as hardware storage devices (e.g., random access memory (RAM), read-only memory (ROM), erasable, programmable ROM (EPROM), electrically erasable, programmable ROM (EEPROM), hard drives, and flash memory). The computer system may include the processor 505 that executes software instructions or code stored on a non-transitory computer-readable storage medium 510 to perform methods of the present disclosure. In an example, the modules 204 may be software codes or components performing these steps. For example, the modules 204 may include a generating module 218, a transmitting module 220, a receiving module 222, a validating module 224, a providing module 226, an identifying module 228, and other modules 230.
[0089] The instructions on the computer-readable storage medium 510 are read and stored in a storage 515 or in random access memory (RAM). The storage 515 may provide space for keeping static data where at least some instructions could be stored for later execution. The stored instructions may be further compiled to generate other representations of the instructions and dynamically stored in the RAM such as 520. The processor 505 may read instructions from the RAM 520 and perform actions as instructed.
[0090] The computer system may further include an output device 525 to provide at least some of the results of the execution as output including, but not limited to, visual information to users, such as external agents. The output device 525 may include a display on computing devices and virtual reality glasses. For example, the display may be a mobile phone screen or a laptop screen. Graphical User Interface (GUI) and/or text may be presented as an output on the display screen. The computer system may further include an input device 530 to provide a user or another device with mechanisms for entering data and/or otherwise interacting with the computer system. The input device 530 may include, for example, a keyboard, a keypad, a mouse, or a touchscreen. Each of the output device 525 and the input device 530 may be joined by one or more additional peripherals. For example, the output device 525 may be used to display the results.
[0091] A network communicator 535 may be provided to connect the computer system to a network and in turn to other devices connected to the network including, for instance, other clients, servers, data stores, and interfaces. The network communicator 535 may include, for example, a network adapter such as a Local Access Network (LAN) adapter or a wireless adapter. The computer system may include a data source interface 540 to access a data source 545. The data source 545 may be an information resource. As an example, knowledge repositories and curated data may be examples of the data source 545.
[0092] The present disclosure, therefore, relates to a method and a source server for managing coupon codes in an electronic commerce environment. Further, the present disclosure facilitates generation of unique coupon codes for each user with reduced complexity, cost, and storage requirements.
[0093] While the foregoing describes various embodiments of the invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof. The scope of the invention is determined by the claims that follow. The invention is not limited to the described embodiments, versions, or examples, which are included to enable a person having ordinary skill in the art to make and use the invention when combined with information and knowledge available to the person having ordinary skill in the art.
ADVANTAGES OF THE INVENTION
[0094] The present disclosure provides a method and a source server for managing coupon codes in an electronic commerce environment.
[0095] The present disclosure provides a method and a source server that generate unique coupon codes for each user without risk of collision.
[0096] The present disclosure allows for generation of coupons in real-time.
[0097] The present disclosure provides a method and a source server for managing coupon codes where information/parameters associated with each coupon code can be dynamically updated.
[0098] The present disclosure provides a method and a source server for managing coupon codes with reduced complexity, cost, and storage requirements.
, Claims:1. A method for managing coupon codes in an electronic commerce (e-commerce) environment, the method comprising:
generating, by a processor (112) associated with a source server (110), one or more campaign parameters corresponding to an offer campaign associated with the e-commerce environment;
transmitting, by the processor (112), the generated one or more campaign parameters to one or more destination servers (118) from the source server (110), wherein the one or more destination servers (118) generate one or more coupon codes based on the one or more campaign parameters;
receiving, by the processor (112), a request, from a user (102) associated with a computing device (104), corresponding to a redemption of each of the generated one or more coupon codes;
in response to receiving the request, identifying, by the processor (112), a campaign parameter of the one or more campaign parameters and a coupon generation logic from each of the generated one or more coupon codes;
validating, by the processor (112), a hash function associated with the one or more campaign parameters based on an identity of the user (102); and
providing, by the processor (112), an access to the user (102) for the redemption of each of the generated one or more coupon codes based on the validation.
2. The method as claimed in claim 1, wherein transmitting, by the processor (112), the generated one or more campaign parameters to the one or more destination servers (118) from the source server (110) comprises:
updating, by the processor (112), the coupon generation logic, the hash function, and a total number of coupon codes to be generated associated with the one or more campaign parameters in the one or more destination servers (118) based on a requirement of the offer campaign; and
receiving, by the processor (112), a status corresponding to the update of the coupon generation logic, the hash function, and the total number of coupon codes to be generated.
3. The method as claimed in claim 1, comprising:
transmitting, by the processor (112), a request corresponding to information associated with the offer campaign to the one or more destination servers (118); and
receiving, by the processor (112), in response to the request, a response corresponding to the information associated with the offer campaign from the one or more destination servers (118).
4. The method as claimed in claim 3, wherein the information associated with the offer campaign comprises at least one of: an end date of the offer campaign, and a total number of the generated one or more coupon codes.
5. The method as claimed in claim 1, comprising:
transmitting, by the processor (112), a request corresponding to user information associated with the offer campaign to the one or more destination servers (118); and
receiving, by the processor (112), in response to the request, a response with a specific user information associated with the offer campaign from the one or more destination servers (118), wherein the one or more destination servers (118) use a filtering technique to provide the specific user information.
6. The method as claimed in claim 1, wherein the one or more campaign parameters comprise at least one of: a first prefix attribute corresponding to an identity of the offer campaign and the coupon generation logic, a second prefix attribute corresponding to an identity of the one or more destination servers (118), an instruction to generate a coupon code based on the identity of the user (102) as a unique attribute, a hash function associated with the coupon generation logic, a Structured Assertion Language for Temporal (SALT) logic associated with the coupon generation logic, a start date of the offer campaign, an end date of the offer campaign, and a total number of coupon codes to be generated.
7. The method as claimed in claim 1, wherein the campaign parameter of the one or more campaign parameters and the coupon generation logic are identified based on a prefix in each of the generated one or more coupon codes.
8. A source server (110) for managing coupon codes in an electronic commerce (e-commerce) environment, the source server (110) comprising:
a processor (112); and
a memory (116) coupled to the processor (112), wherein the memory (116) comprises processor-executable instructions, which on execution, cause the processor (112) to:
generate one or more campaign parameters corresponding to an offer campaign associated with the e-commerce environment;
transmit the generated one or more campaign parameters to one or more destination servers (118) from the source server (110), wherein the one or more destination servers (118) generate one or more coupon codes based on the one or more campaign parameters;
receive a request, from a user (102) associated with a computing device (104), corresponding to a redemption of each of the generated one or more coupon codes;
in response to reception of the request, identify a campaign parameter of the one or more campaign parameters and a coupon generation logic from each of the generated one or more coupon codes;
validate a hash function associated with the one or more campaign parameters based on an identity of the user (102); and
provide an access to the user (102) for the redemption of each of the generated one or more coupon codes based on the validation.
9. The source server (110) as claimed in claim 8, wherein to transmit the generated one or more campaign parameters to the one or more destination servers (118) from the source server (110), the processor (112) is configured to:
update the coupon generation logic, the hash function, and a total number of coupon codes to be generated associated with the one or more campaign parameters in the one or more destination servers (118) based on a requirement of the offer campaign; and
receive a status corresponding to the update of the coupon generation logic, the hash function, and the total number of coupon codes to be generated.
10. The source server (110) as claimed in claim 8, wherein the processor (112) is configured to:
transmit a request corresponding to information associated with the offer campaign to the one or more destination servers (118); and
receive, in response to the request, a response corresponding to the information associated with the offer campaign from the one or more destination servers (118).
11. The source server (110) as claimed in claim 10, wherein the information associated with the offer campaign comprises at least one of: an end date of the offer campaign, and a total number of the generated one or more coupon codes.
12. The source server (110) as claimed in claim 8, wherein the processor (112) is configured to:
transmit a request corresponding to user information associated with the offer campaign to the one or more destination servers (118); and
receive, in response to the request, a response with a specific user information associated with the offer campaign from the one or more destination servers (118), wherein the one or more destination servers (118) use a filtering technique to provide the specific user information.
13. The source server (110) as claimed in claim 8, wherein the one or more campaign parameters comprise at least one of: a first prefix attribute corresponding to an identity of the offer campaign and the coupon generation logic, a second prefix attribute corresponding to an identity of the one or more destination servers (118), an instruction to generate a coupon code based on the identity of the user (110) as a unique attribute, a hash function associated with the coupon generation logic, a Structured Assertion Language for Temporal (SALT) logic associated with the coupon generation logic, a start date of the offer campaign, an end date of the offer campaign, and a total number of coupon codes to be generated.
14. The source server (110) as claimed in claim 8, wherein the campaign parameter of the one or more campaign parameters and the coupon generation logic are identified based on a prefix in each of the generated one or more coupon codes.
| # | Name | Date |
|---|---|---|
| 1 | 202341030144-STATEMENT OF UNDERTAKING (FORM 3) [26-04-2023(online)].pdf | 2023-04-26 |
| 2 | 202341030144-POWER OF AUTHORITY [26-04-2023(online)].pdf | 2023-04-26 |
| 3 | 202341030144-FORM 1 [26-04-2023(online)].pdf | 2023-04-26 |
| 4 | 202341030144-DRAWINGS [26-04-2023(online)].pdf | 2023-04-26 |
| 5 | 202341030144-DECLARATION OF INVENTORSHIP (FORM 5) [26-04-2023(online)].pdf | 2023-04-26 |
| 6 | 202341030144-COMPLETE SPECIFICATION [26-04-2023(online)].pdf | 2023-04-26 |
| 7 | 202341030144-ENDORSEMENT BY INVENTORS [17-05-2023(online)].pdf | 2023-05-17 |
| 8 | 202341030144-FORM 18 [09-12-2024(online)].pdf | 2024-12-09 |