summaryrefslogtreecommitdiff
path: root/interchange/product.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'interchange/product.hxx')
-rw-r--r--interchange/product.hxx63
1 files changed, 63 insertions, 0 deletions
diff --git a/interchange/product.hxx b/interchange/product.hxx
new file mode 100644
index 0000000..a7f3587
--- /dev/null
+++ b/interchange/product.hxx
@@ -0,0 +1,63 @@
+#ifndef INTERCHANGE_PRODUCT_HXX
+#define INTERCHANGE_PRODUCT_HXX
+
+#include <interchange.h>
+
+namespace Interchange {
+
+ struct Product
+ {
+ enum ProductRoles {
+ SkuRole = Qt::UserRole + 1,
+ DescriptionRole,
+ CommentRole,
+ ThumbRole,
+ ImageRole,
+ PriceRole,
+ ProdGroupRole,
+ WeightRole,
+ AuthorRole,
+ CrossSellRole
+ };
+
+ Product() {}
+ Product(struct interchange_product* product) :
+ price{product->price},
+ weight{product->weight}
+ {
+ if (product->sku)
+ sku = QString{product->sku};
+ if (product->description)
+ description = QString{product->description};
+ if (product->comment)
+ comment = QString{product->comment};
+ if (product->thumb)
+ thumb = QString{product->thumb};
+ if (product->image)
+ image = QString{product->image};
+ if (product->prod_group)
+ prodGroup = QString{product->prod_group};
+ if (product->author)
+ author = QString{product->author};
+ if (product->crosssell) {
+ auto crosssell = product->crosssell;
+ for (size_t i = 0; i < crosssell->length; i++)
+ crossSell << QString{crosssell->skus[i]};
+ }
+ }
+
+ QString sku;
+ QString description;
+ QString comment;
+ QString thumb;
+ QString image;
+ double price;
+ QString prodGroup;
+ double weight;
+ QString author;
+ QStringList crossSell;
+ };
+
+}
+
+#endif