def build_milks(self):
        whmm = CatalogModifier()
        whmm.name = 'Whole Milk'
        whm = CatalogObject()
        whm.type = 'MODIFIER'
        whm.id = self.CLIENT_ID_MILK_WHOLE
        whm.modifier_data = whmm

        skmm = CatalogModifier()
        skmm.name = 'Skim Milk'
        skm = CatalogObject()
        skm.type = 'MODIFIER'
        skm.id = self.CLIENT_ID_MILK_SKIM
        skm.modifier_data = skmm

        symm = CatalogModifier()
        symm.name = 'Soy Milk'
        symm.price_money = Money(50, 'USD')
        sym = CatalogObject()
        sym.type = 'MODIFIER'
        sym.id = self.CLIENT_ID_MILK_SOY
        sym.modifier_data = symm

        ml = CatalogModifierList()
        ml.name = 'Milks'
        ml.modifiers = [whm, skm, sym]

        co = CatalogObject()
        co.type = 'MODIFIER_LIST'
        co.id = self.CLIENT_ID_MILKS
        co.modifier_list_data = ml
        return co
示例#2
0
    def build_milks(self):
        whmm = CatalogModifier()
        whmm.name = 'Whole Milk'
        whm = CatalogObject()
        whm.type = 'MODIFIER'
        whm.id = self.CLIENT_ID_MILK_WHOLE
        whm.modifier_data = whmm

        skmm = CatalogModifier()
        skmm.name = 'Skim Milk'
        skm = CatalogObject()
        skm.type = 'MODIFIER'
        skm.id = self.CLIENT_ID_MILK_SKIM
        skm.modifier_data = skmm

        symm = CatalogModifier()
        symm.name = 'Soy Milk'
        symm.price_money = Money(50, 'USD')
        sym = CatalogObject()
        sym.type = 'MODIFIER'
        sym.id = self.CLIENT_ID_MILK_SOY
        sym.modifier_data = symm

        ml = CatalogModifierList()
        ml.name = 'Milks'
        ml.modifiers = [whm, skm, sym]

        co = CatalogObject()
        co.type = 'MODIFIER_LIST'
        co.id = self.CLIENT_ID_MILKS
        co.modifier_list_data = ml
        return co
    def build_syrups(self):
        hzmm = CatalogModifier()
        hzmm.name = 'Hazelnut'
        hzm = CatalogObject()
        hzm.type = 'MODIFIER'
        hzm.id = self.CLIENT_ID_HAZELNUT
        hzm.modifier_data = hzmm

        vnmm = CatalogModifier()
        vnmm.name = 'Vanilla'
        vnm = CatalogObject()
        vnm.type = 'MODIFIER'
        vnm.id = self.CLIENT_ID_VANILLA
        vnm.modifier_data = vnmm

        chmm = CatalogModifier()
        chmm.name = 'Chocolate'
        chm = CatalogObject()
        chm.type = 'MODIFIER'
        chm.id = self.CLIENT_ID_CHOCOLATE
        chm.modifier_data = chmm

        ml = CatalogModifierList()
        ml.name = 'Syrups'
        ml.modifiers = [hzm, vnm, chm]

        co = CatalogObject()
        co.type = 'MODIFIER_LIST'
        co.id = self.CLIENT_ID_SYRUPS
        co.modifier_list_data = ml
        return co
示例#4
0
    def build_syrups(self):
        hzmm = CatalogModifier()
        hzmm.name = 'Hazelnut'
        hzm = CatalogObject()
        hzm.type = 'MODIFIER'
        hzm.id = self.CLIENT_ID_HAZELNUT
        hzm.modifier_data = hzmm

        vnmm = CatalogModifier()
        vnmm.name = 'Vanilla'
        vnm = CatalogObject()
        vnm.type = 'MODIFIER'
        vnm.id = self.CLIENT_ID_VANILLA
        vnm.modifier_data = vnmm

        chmm = CatalogModifier()
        chmm.name = 'Chocolate'
        chm = CatalogObject()
        chm.type = 'MODIFIER'
        chm.id = self.CLIENT_ID_CHOCOLATE
        chm.modifier_data = chmm

        ml = CatalogModifierList()
        ml.name = 'Syrups'
        ml.modifiers = [hzm, vnm, chm]

        co = CatalogObject()
        co.type = 'MODIFIER_LIST'
        co.id = self.CLIENT_ID_SYRUPS
        co.modifier_list_data = ml
        return co
 def build_beverages(self):
     cat = CatalogCategory()
     cat.name = 'Beverages'
     co = CatalogObject()
     co.type = 'CATEGORY'
     co.id = self.CLIENT_ID_BEVERAGES
     co.category_data = cat
     return co
示例#6
0
 def build_beverages(self):
     cat = CatalogCategory()
     cat.name = 'Beverages'
     co = CatalogObject()
     co.type = 'CATEGORY'
     co.id = self.CLIENT_ID_BEVERAGES
     co.category_data = cat
     return co
    def build_tea(self):
        c = CatalogObject()
        c.type = 'ITEM'
        c.id = self.CLIENT_ID_TEA
        c.present_at_all_locations = True

        stiv = CatalogItemVariation()
        stiv.item_id = c.id
        stiv.name = 'Small'
        stiv.pricing_type = 'FIXED_PRICING'
        stiv.price_money = Money(150, 'USD')
        st = CatalogObject()
        st.type = 'ITEM_VARIATION'
        st.id = self.CLIENT_ID_TEA_SMALL
        st.present_at_all_locations = True
        st.item_variation_data = stiv

        ltiv = CatalogItemVariation()
        ltiv.item_id = c.id
        ltiv.name = 'Large'
        ltiv.pricing_type = 'FIXED_PRICING'
        ltiv.price_money = Money(200, 'USD')
        lt = CatalogObject()
        lt.type = 'ITEM_VARIATION'
        lt.id = self.CLIENT_ID_TEA_LARGE
        lt.present_at_all_locations = True
        lt.item_variation_data = ltiv

        cimli = CatalogItemModifierListInfo()
        cimli.modifier_list_id = self.CLIENT_ID_MILKS

        ci = CatalogItem()
        ci.name = 'Tea'
        ci.description = 'Hot leaf juice'
        ci.abbreviation = 'Te'
        ci.category_id = self.CLIENT_ID_BEVERAGES
        ci.modifier_list_info = [cimli]
        ci.tax_ids = [self.CLIENT_ID_SALES_TAX]
        ci.variations = [st, lt]

        c.item_data = ci
        return c
    def build_coffee(self):
        c = CatalogObject()
        c.type = 'ITEM'
        c.id = self.CLIENT_ID_COFFEE
        c.present_at_all_locations = True

        sciv = CatalogItemVariation()
        sciv.item_id = c.id
        sciv.name = 'Small'
        sciv.pricing_type = 'FIXED_PRICING'
        sciv.price_money = Money(195, 'USD')
        sc = CatalogObject()
        sc.type = 'ITEM_VARIATION'
        sc.id = self.CLIENT_ID_COFFEE_SMALL
        sc.present_at_all_locations = True
        sc.item_variation_data = sciv

        lciv = CatalogItemVariation()
        lciv.item_id = c.id
        lciv.name = 'Large'
        lciv.pricing_type = 'FIXED_PRICING'
        lciv.price_money = Money(250, 'USD')
        lc = CatalogObject()
        lc.type = 'ITEM_VARIATION'
        lc.id = self.CLIENT_ID_COFFEE_LARGE
        lc.present_at_all_locations = True
        lc.item_variation_data = lciv

        cimli = CatalogItemModifierListInfo()
        cimli.modifier_list_id = self.CLIENT_ID_MILKS

        ci = CatalogItem()
        ci.name = 'Coffee'
        ci.description = 'Hot bean juice'
        ci.abbreviation = 'Co'
        ci.category_id = self.CLIENT_ID_BEVERAGES
        ci.modifier_list_info = [cimli]
        ci.tax_ids = [self.CLIENT_ID_SALES_TAX]
        ci.variations = [sc, lc]

        c.item_data = ci
        return c
示例#9
0
    def build_tea(self):
        c = CatalogObject()
        c.type = 'ITEM'
        c.id = self.CLIENT_ID_TEA
        c.present_at_all_locations = True

        stiv = CatalogItemVariation()
        stiv.item_id = c.id
        stiv.name = 'Small'
        stiv.pricing_type = 'FIXED_PRICING'
        stiv.price_money = Money(150, 'USD')
        st = CatalogObject()
        st.type = 'ITEM_VARIATION'
        st.id = self.CLIENT_ID_TEA_SMALL
        st.present_at_all_locations = True
        st.item_variation_data = stiv

        ltiv = CatalogItemVariation()
        ltiv.item_id = c.id
        ltiv.name = 'Large'
        ltiv.pricing_type = 'FIXED_PRICING'
        ltiv.price_money = Money(200, 'USD')
        lt = CatalogObject()
        lt.type = 'ITEM_VARIATION'
        lt.id = self.CLIENT_ID_TEA_LARGE
        lt.present_at_all_locations = True
        lt.item_variation_data = ltiv

        cimli = CatalogItemModifierListInfo()
        cimli.modifier_list_id = self.CLIENT_ID_MILKS

        ci = CatalogItem()
        ci.name = 'Tea'
        ci.description = 'Hot leaf juice'
        ci.abbreviation = 'Te'
        ci.category_id = self.CLIENT_ID_BEVERAGES
        ci.modifier_list_info = [cimli]
        ci.tax_ids = [self.CLIENT_ID_SALES_TAX]
        ci.variations = [st, lt]

        c.item_data = ci
        return c
示例#10
0
    def build_coffee(self):
        c = CatalogObject()
        c.type = 'ITEM'
        c.id = self.CLIENT_ID_COFFEE
        c.present_at_all_locations = True

        sciv = CatalogItemVariation()
        sciv.item_id = c.id
        sciv.name = 'Small'
        sciv.pricing_type = 'FIXED_PRICING'
        sciv.price_money = Money(195, 'USD')
        sc = CatalogObject()
        sc.type = 'ITEM_VARIATION'
        sc.id = self.CLIENT_ID_COFFEE_SMALL
        sc.present_at_all_locations = True
        sc.item_variation_data = sciv

        lciv = CatalogItemVariation()
        lciv.item_id = c.id
        lciv.name = 'Large'
        lciv.pricing_type = 'FIXED_PRICING'
        lciv.price_money = Money(250, 'USD')
        lc = CatalogObject()
        lc.type = 'ITEM_VARIATION'
        lc.id = self.CLIENT_ID_COFFEE_LARGE
        lc.present_at_all_locations = True
        lc.item_variation_data = lciv

        cimli = CatalogItemModifierListInfo()
        cimli.modifier_list_id = self.CLIENT_ID_MILKS

        ci = CatalogItem()
        ci.name = 'Coffee'
        ci.description = 'Hot bean juice'
        ci.abbreviation = 'Co'
        ci.category_id = self.CLIENT_ID_BEVERAGES
        ci.modifier_list_info = [cimli]
        ci.tax_ids = [self.CLIENT_ID_SALES_TAX]
        ci.variations = [sc, lc]

        c.item_data = ci
        return c
    def test_batch_upsert_catalog_objects(self):
        batches = []
        num_objects = 0
        for batch_num in range(3):
            objects = []
            batch = CatalogObjectBatch(objects)
            batches.append(batch)
            for i in range(100):
                item_id = '#Items-{}-{}'.format(batch_num, i)
                variation_id = '#ItemVariation-{}-{}'.format(batch_num, i)

                item = CatalogObject()
                item.type = 'ITEM'
                item.id = item_id

                item_data = CatalogItem()
                item_data.name = 'Item-{}-{}'.format(batch_num, i)
                item.item_data = item_data

                variation = CatalogObject()
                variation.type = 'VARIATION'
                variation.id = variation_id

                variation_data = CatalogItemVariation()
                variation_data.item_id = item_id
                variation_data.name = 'Regular'
                variation_data.pricing_type = 'VARIABLE_PRICING'
                variation.item_variation_data = variation_data

                objects.append(item)
                num_objects += 1

        req = BatchUpsertCatalogObjectsRequest(str(uuid.uuid4()), batches)
        res = self.api.batch_upsert_catalog_objects(req)
        self.assertIsNone(res.errors)

        self.assertEquals(num_objects, len(res.objects))
示例#12
0
    def test_batch_upsert_catalog_objects(self):
        batches = []
        num_objects = 0
        for batch_num in range(3):
            objects = []
            batch = CatalogObjectBatch(objects)
            batches.append(batch)
            for i in range(100):
                item_id = '#Items-{}-{}'.format(batch_num, i)
                variation_id = '#ItemVariation-{}-{}'.format(batch_num, i)

                item = CatalogObject()
                item.type = 'ITEM'
                item.id = item_id

                item_data = CatalogItem()
                item_data.name = 'Item-{}-{}'.format(batch_num, i)
                item.item_data = item_data

                variation = CatalogObject()
                variation.type = 'VARIATION'
                variation.id = variation_id

                variation_data = CatalogItemVariation()
                variation_data.item_id = item_id
                variation_data.name = 'Regular'
                variation_data.pricing_type = 'VARIABLE_PRICING'
                variation.item_variation_data = variation_data

                objects.append(item)
                num_objects += 1

        req = BatchUpsertCatalogObjectsRequest(str(uuid.uuid4()), batches)
        res = self.api.batch_upsert_catalog_objects(req)
        self.assertIsNone(res.errors)

        self.assertEquals(num_objects, len(res.objects))
    def test_upsert_catalog_object(self):
        obj = CatalogObject()
        obj.type = 'DISCOUNT'
        obj.id = self.CLIENT_ID_DISCOUNT
        discount = CatalogDiscount()
        discount.name = 'Half Off'
        discount.percentage = '50.0'
        obj.discount_data = discount
        req = UpsertCatalogObjectRequest(str(uuid.uuid4()), obj)
        res = self.api.upsert_catalog_object(req)

        self.assertEqual('Half Off', res.catalog_object.discount_data.name)
        self.assertIsNotNone(res.catalog_object.id)
        self.assertIsNotNone(res.catalog_object.updated_at)
        self.assertIsNotNone(res.catalog_object.version)
        self.assertIsNotNone(res.catalog_object.is_deleted)
    def build_sales_tax(self):
        co = CatalogObject()
        co.type = 'TAX'
        co.id = self.CLIENT_ID_SALES_TAX
        co.present_at_all_locations = True

        t = CatalogTax()
        t.name = 'Sales Tax'
        t.calculation_phase = 'TAX_SUBTOTAL_PHASE'
        t.inclusion_type = 'ADDITIVE'
        t.percentage = '5.0'
        t.applies_to_custom_amounts = True
        t.enabled = True

        co.tax_data = t
        return co
示例#15
0
    def test_upsert_catalog_object(self):
        obj = CatalogObject()
        obj.type = 'DISCOUNT'
        obj.id = self.CLIENT_ID_DISCOUNT
        discount = CatalogDiscount()
        discount.name = 'Half Off'
        discount.percentage = '50.0'
        obj.discount_data = discount
        req = UpsertCatalogObjectRequest(str(uuid.uuid4()), obj)
        res = self.api.upsert_catalog_object(req)

        self.assertEqual('Half Off', res.catalog_object.discount_data.name)
        self.assertIsNotNone(res.catalog_object.id)
        self.assertIsNotNone(res.catalog_object.updated_at)
        self.assertIsNotNone(res.catalog_object.version)
        self.assertIsNotNone(res.catalog_object.is_deleted)
示例#16
0
    def build_sales_tax(self):
        co = CatalogObject()
        co.type = 'TAX'
        co.id = self.CLIENT_ID_SALES_TAX
        co.present_at_all_locations = True

        t = CatalogTax()
        t.name = 'Sales Tax'
        t.calculation_phase = 'TAX_SUBTOTAL_PHASE'
        t.inclusion_type = 'ADDITIVE'
        t.percentage = '5.0'
        t.applies_to_custom_amounts = True
        t.enabled = True

        co.tax_data = t
        return co