A product dispenser comprising: a central module including a user interface and a product pickup area; a first product storage cabinet (200, 300) including a plurality of product shelves (210, 310) positioned within a first interior area; a second product storage cabinet (200, 300) including a plurality of product shelves positioned within a second interior area; a first product transport mechanism (230, 330) positioned within the first interior area to receive a first product from one of the plurality of product shelves in the first product storage cabinet and deliver the first product to the product pickup area; a second product transport mechanism (230, 330) positioned within the second interior area to receive a second product from one of the plurality of product shelves in the second product storage cabinet and deliver the second product to the product pickup area, a hinged ramp (260, 360), a hinged ramp linkage (264, 364) attached to the hinged ramp (260, 360), a hinged ramp drive motor, and a belt (232, 332), wherein the hinged ramp drive motor is configured to move the hinged ramp linkage (264, 364) to move the hinged ramp (260, 360) to a desired product shelf (210, 310) into a delivery position; and wherein the hinged ramp drive motor is configured to, after the first product travels from the product shelve (210, 310) along the hinged ramp (260, 360) to the belt (232, 332), move the hinged ramp linkage (264, 364) to position the hinged ramp (260, 360) into a vertical position for travel within the first product storage cabinet, or wherein the hinged ramp (260, 360) is configured to maintain the delivery position as the first product transport mechanism (230, 330) moves within the first product storage cabinet (200, 300) and the hinged ramp drive motor is configured to move the hinged ramp linkage (264, 364) to position the hinged ramp (260, 360) into a vertical position when the first product travels on the belt (232, 332). a central module including a user interface and a product pickup area; a first product storage cabinet (200, 300) including a plurality of product shelves (210, 310) positioned within a first interior area; a second product storage cabinet (200, 300) including a plurality of product shelves positioned within a second interior area; a first product transport mechanism (230, 330) positioned within the first interior area to receive a first product from one of the plurality of product shelves in the first product storage cabinet and deliver the first product to the product pickup area; a second product transport mechanism (230, 330) positioned within the second interior area to receive a second product from one of the plurality of product shelves in the second product storage cabinet and deliver the second product to the product pickup area, a hinged ramp (260, 360), a hinged ramp linkage (264, 364) attached to the hinged ramp (260, 360), a hinged ramp drive motor, and a belt (232, 332), wherein the hinged ramp drive motor is configured to move the hinged ramp linkage (264, 364) to move the hinged ramp (260, 360) to a desired product shelf (210, 310) into a delivery position; and wherein the hinged ramp drive motor is configured to, after the first product travels from the product shelve (210, 310) along the hinged ramp (260, 360) to the belt (232, 332), move the hinged ramp linkage (264, 364) to position the hinged ramp (260, 360) into a vertical position for travel within the first product storage cabinet, or wherein the hinged ramp (260, 360) is configured to maintain the delivery position as the first product transport mechanism (230, 330) moves within the first product storage cabinet (200, 300) and the hinged ramp drive motor is configured to move the hinged ramp linkage (264, 364) to position the hinged ramp (260, 360) into a vertical position when the first product travels on the belt (232, 332). wherein the hinged ramp drive motor is configured to, after the first product travels from the product shelve (210, 310) along the hinged ramp (260, 360) to the belt (232, 332), move the hinged ramp linkage (264, 364) to position the hinged ramp (260, 360) into a vertical position for travel within the first product storage cabinet, or wherein the hinged ramp (260, 360) is configured to maintain the delivery position as the first product transport mechanism (230, 330) moves within the first product storage cabinet (200, 300) and the hinged ramp drive motor is configured to move the hinged ramp linkage (264, 364) to position the hinged ramp (260, 360) into a vertical position when the first product travels on the belt (232, 332).