-
Notifications
You must be signed in to change notification settings - Fork 370
/
Copy pathproduct.py
36 lines (28 loc) · 1.09 KB
/
product.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from ..base import ShopifyResource
from shopify import mixins
import shopify
class Product(ShopifyResource, mixins.Metafields, mixins.Events):
def price_range(self):
prices = [float(variant.price) for variant in self.variants]
f = "%0.2f"
min_price = min(prices)
max_price = max(prices)
if min_price != max_price:
return "%s - %s" % (f % min_price, f % max_price)
else:
return f % min_price
def collections(self):
return shopify.CustomCollection.find(product_id=self.id)
def smart_collections(self):
return shopify.SmartCollection.find(product_id=self.id)
def add_to_collection(self, collection):
return collection.add_product(self)
def remove_from_collection(self, collection):
return collection.remove_product(self)
def add_variant(self, variant):
variant.attributes["product_id"] = self.id
return variant.save()
def save(self):
start_api_version = "201910"
api_version = ShopifyResource.version
return super(ShopifyResource, self).save()