summaryrefslogtreecommitdiff
path: root/interchange/ord.h
diff options
context:
space:
mode:
Diffstat (limited to 'interchange/ord.h')
-rw-r--r--interchange/ord.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/interchange/ord.h b/interchange/ord.h
new file mode 100644
index 0000000..c62bcf0
--- /dev/null
+++ b/interchange/ord.h
@@ -0,0 +1,37 @@
+#ifndef INTERCHANGE_ORD_H
+#define INTERCHANGE_ORD_H
+
+struct interchange_ord_item {
+ struct interchange_product *product;
+ unsigned int quantity;
+};
+
+struct interchange_ord_order {
+ double subtotal;
+ double shipping;
+ double total_cost;
+ char *profile;
+ size_t nitems;
+ struct interchange_ord_item *items[];
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*!
+ * \brief For putting an item to a cart.
+ * \param sku The SKU of the item to order.
+ * \param catalog The catalog from which the item is.
+ * \param order The address of an order instance.
+ */
+void interchange_ord_order(const char *sku, const struct interchange_catalog *catalog,
+ struct interchange_ord_order **order);
+void interchange_ord_checkout(const struct interchange_ord_order *order, const struct interchange_member *member);
+void interchange_ord_free(struct interchange_ord_order *order);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif