I manage a website for a florist in New York. I built a SnipCart integration into the site so that she could process flower orders for both pickup (from her studio) and local delivery. I did this by re-naming all shipping fields as “delivery” fields and creating a singular shipping option called “delivery.” Customers select between two radio buttons (pickup or delivery) when adding an item to their cart, and this selection, in turn, designates the product as either non-shippable (if pick-up) or shippable (if delivery). Until now this florist has served only the New York area, so this little workaround was perfectly fine, but she is now additionally interested in offering certain products (ceramic vases, for instance) that can be shipped anywhere, domestically or internationally. For clarity, we’ll call these shippable items “goods,” while everything else that must adhere to the local pickup/delivery binary we’ll call “flowers.”
What I need to figure out is something that, as closely as possible, resembles the following system:
What I need to figure out is something that, as closely as possible, resembles the following system:
The user selection of pickup, delivery, or shipping happens only at the level of the cart—not per-item.
If the cart contains only goods, any of these three options are available to them.
- Pickup
- Delivery (only if address is within New York)
- Shipping (one domestic option one international option)
If the cart contains only flowers, only pickup and delivery are available to them—not shipping.
- Pickup
- Delivery (only if address is within New York)
If the cart contains both flowers and goods, only pickup and delivery are available to them—not shipping.
- Pickup
- Delivery (only if address is within New York)
To make a more concise logic of the above rules: an entire cart can be picked up, delivered, or shipped, unless there are flowers in the cart, which then renders the cart unshippable.
Is there any way to create a system like this using SnipCart? Or something close to this? I am not quite sure what the best approach would be, as it seems the shipping options are somewhat limited.