# Example use case of Cataloglake

### 1. Create Cataloglake

First step is to create a Cataloglake in which we can store the products

```python
# Initialize Groclake catalog instance
cataloglake = CatalogLake()

groclake_catalog = cataloglake.create()
print("catalog_create----", groclake_catalog)
```

Output

```python
catalog_create---- {'cataloglake_id': '2739542733'}
```

### 2. Generate product data using image

Here as an example we take an image of the product using a image url and then generate a metadada rich product using the image only We can also take a local image and use the base64 encoded format of that image

```python
product_create_request = {
    "product_name_hint": "Nightsuit Shirt And Pants",
    "category_name_hint": "Nightsuit",
    "provider_name_hint": "Breathables",
    "images": [
        {
            "image_name": "Nightsuit image",
            "image_url": "https://cdnaz.plotch.io/image/upload/C/V/PLOVqkPpi21729804127_df022e0a1fe58015a2c80ed0229cc5d1735c5812de5d9218b030c0c6414a457d.png?product_id=1153906002&s=1"
        }
    ]
}

groclake_create_product = cataloglake.gen(product_create_request)
print("gen data",  groclake_create_product)
```

Output

```python
gen data {'ai_product_name': 'Breathables Red Plaid Cotton Nightsuit for Women', 'allergen_in
```

### 3. Fetch products from cataloglake

Now we can fetch the products from cataloglake. We can use multiple filters to fetch or no filters to fetch all which is controlled by page\_size (number of products to fetch) and page\_number (which is used to move to next page)

```python
product_fetch_request =  {
 "groc_item_id": "",
  "groc_category": "",
  "is_in_stock": "",
  "page_size": "20",
  "page_number": "1"
}

catalog_fetch_product = cataloglake.fetch(product_fetch_request)
print("catalog_fetch_data----", catalog_fetch_product)
```

Output

```python
catalog_fetch_data---- {'catalog_fetch_request_id': '1e1c5642-594d-488d-9481-3f5ac376248c', '
```

### 4. Cache products in cataloglake

Now to enable search and recommendation operations on cataloglake, we need to cache index the products stored in cataloglake. This caching helps in reducing latency of search results and build conversational capabilities on your catalog

```python
product_cache_request = {
  "groc_item_id": ["2147483647"]
}

catalog_cache_product = cataloglake.cache(product_cache_request)
print("catalog_cache_data----", catalog_cache_product)
```

Output

```python
{
 "catalog_cache_request_id": "0b6f7624-f176-461a-828b-1ba9bf3d56ac"
}
```

### 5. Search products in cataloglake

Now suppose you want to search for a product like a "Belt" in the catalog using semantic search. Here's how you can do it:

```python
product_search_request = {
 "query":"Belt",
 "search_type": "semantic",
 "image_url": "",
 "price": 0,
 "image_bytes": ""
}

catalog_search_product = cataloglake.search(product_search_request)
print("catalog_search_data----", catalog_search_product)
```

Output

```python
# {
# 
#     "items": [
#         {
#             "product_name": "Loopa - Black PU Men's Casual Belt ( Pack of 1 ) -",
#             "product_id": 1851175867,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "https://cdnaz.plotch.io/image/upload/C/V/PLOc0HAn3P1732004167_6d102fa9d8c248c694b99bb33223f074848766330b21b5c189f48d1aadff62d6.png",
#             "image_link2": "https://cdnaz.plotch.io/image/upload/C/V/PLOhVIHomh1732004169_8e170aa06a1aaeda0e6ff066c00fba14032e6825e7f89dc78d3716254c6215e3.png",
#             "image_link3": "https://cdnaz.plotch.io/image/upload/C/V/PLOW3Pp0B81732004172_ef9c65e70824487cadae221e2225ae79fc70b7acbc0a04ce4c8e3c94ec637a21.png",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Belts",
#             "price": 599.0,
#             "sale_price": 599.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.4819418
#         },
#         {
#             "product_name": "Loopa - Black PU Men's Casual Belt ( Pack of 1 ) -",
#             "product_id": 1169020518,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "https://cdnaz.plotch.io/image/upload/C/V/PLOWysQaul1732007566_6d102fa9d8c248c694b99bb33223f074848766330b21b5c189f48d1aadff62d6.png",
#             "image_link2": "https://cdnaz.plotch.io/image/upload/C/V/PLOYnjqZrk1732007566_8e170aa06a1aaeda0e6ff066c00fba14032e6825e7f89dc78d3716254c6215e3.png",
#             "image_link3": "https://cdnaz.plotch.io/image/upload/C/V/PLOqbI8GBo1732007567_ef9c65e70824487cadae221e2225ae79fc70b7acbc0a04ce4c8e3c94ec637a21.png",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Belts",
#             "price": 599.0,
#             "sale_price": 599.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.4819418
#         },
#         {
#             "product_name": "SILKSHOPPING - Black Synthetic Men's Casual Belt (",
#             "product_id": 2131791766,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "https://cdnaz.plotch.io/image/upload/C/V/PLODg8I4RQ1732004177_d1861c3c0b0470290a162d547e1f915c3ee50117d22bcd919f32bc866aaa4f13.png",
#             "image_link2": "https://cdnaz.plotch.io/image/upload/C/V/PLO9gr0bmU1732004178_2f1ae7d12dc6b4036de63cbcf5ccf052e0ac1b0044c22382e7f5b23b5874f78f.png",
#             "image_link3": "https://cdnaz.plotch.io/image/upload/C/V/PLOSTCdoda1732004180_d9d457100f6f3a90d63f2dab1205fdba2f7caed695f65afd57aff6cf27b72323.png",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Belts",
#             "price": 599.0,
#             "sale_price": 599.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.4800572
#         },
#         {
#             "product_name": "EMPERO - Black PU Analog Mens Watch",
#             "product_id": 2324575804,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "",
#             "image_link2": "",
#             "image_link3": "",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Watches",
#             "price": 599.0,
#             "sale_price": 599.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.3512266
#         },
#         {
#             "product_name": "Sambhav Deals - Tan PU Mens Regular Wallet ( Pack ",
#             "product_id": 2531836235,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "",
#             "image_link2": "",
#             "image_link3": "",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Handbags",
#             "price": 1299.0,
#             "sale_price": 1299.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.3334281
#         },
#         {
#             "product_name": "Saleh Silicone Shower Bath Belt Back Scrubber Brus",
#             "product_id": 1440714048,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "",
#             "image_link2": "",
#             "image_link3": "",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Body Care - Bath Salt and Additives",
#             "price": 799.0,
#             "sale_price": 799.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.3296758
#         },
#         {
#             "product_name": "Fitmonkey - Best Sports Biker Face Cover Balaclava",
#             "product_id": 2092570718,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "https://cdnaz.plotch.io/image/upload/C/V/PLO77Cq8Al1732004200_94eef0f8765f1bbb188610ab1a2852f2bf8dfc243efaa0aadfe2fe1983888b56.png",
#             "image_link2": "https://cdnaz.plotch.io/image/upload/C/V/PLOvgiFTkO1732004201_c5124874f0354ec91995bf65eba476c58907a845eb404232feb42bcab0c9f1d2.png",
#             "image_link3": "https://cdnaz.plotch.io/image/upload/C/V/PLOMmezVly1732004202_3396a074569bf55e01066eb0fd4241c65b12503c7e6835d81b0e5409ecf0f178.png",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Home Decor",
#             "price": 499.0,
#             "sale_price": 499.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.3133097
#         },
#         {
#             "product_name": "Fitmonkey - Best Sports Biker Face Cover Balaclava",
#             "product_id": 2553890008,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "",
#             "image_link2": "",
#             "image_link3": "",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Home Improvement",
#             "price": 699.0,
#             "sale_price": 699.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.2975796
#         },
#         {
#             "product_name": "PrettyKrafts Shirt Stacker Closet Organizer - Shir",
#             "product_id": 1598314842,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "",
#             "image_link2": "",
#             "image_link3": "",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Closet/Laundry/Shoe Organization",
#             "price": 599.0,
#             "sale_price": 599.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.2704629
#         },
#         {
#             "product_name": "Hauser Aerox Ball Pen Blue Pack Of 10",
#             "product_id": 2237403527,
#             "provider_id": "",
#             "provider_url": "",
#             "image_link1": "https://cdnaz.plotch.io/image/upload/C/V/PLOSvSir6p1732004215_d8bed3aa82dc495c5a7e6be66ca162e31535b843be99eba2d199999e17844f2d.png",
#             "image_link2": "https://cdnaz.plotch.io/image/upload/C/V/PLOaoRPuAz1732004217_cd54112879bb8c27a947b3a30f63c1eff068bf0e7f1960c78e7ebed6d4e6435f.png",
#             "image_link3": "https://cdnaz.plotch.io/image/upload/C/V/PLOYD7OzL91732004218_04385520a918d24296d13f9585f2a8af11595f236ca870d077b2da65e7de0b02.png",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Stationery",
#             "price": 100.0,
#             "sale_price": 100.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.2699537
#         }
#     ],
#     "app_action": {
#         "action_intent": "search",
#         "items": []
#     },
#     "search_id": "365914f1-afe9-4d09-8526-2e4e3df82a14"
# }
```

### 6. Build Recommendation Systems in Cataloglake

You want to recommend similar products based on a specific item, like "Headphone," to improve user engagement or offer alternatives in an e-commerce catalog.

```python
product_search_request = {
    "cataloglake_id": "groclake_products_81skstvyw3",
    "product_name":"Headphone",
    "num_items":"1",
     "filters":{}
}

catalog_search_product = cataloglake.search(product_search_request)
print("catalog_search_data----", catalog_search_product)
```

Output

```python
# {
#     "items": [
#         {
#             "product_name": "Foxin 306 Big Bass Wired Headphone Headphone Foxin  ",
#             "product_id": 2116465766.0,
#             "provider_id": "27086",
#             "provider_url": "",
#             "image_link1": "",
#             "image_link2": "",
#             "image_link3": "",
#             "product_url": "",
#             "brand": "",
#             "category_name": "Headphone",
#             "price": 1500.0,
#             "sale_price": 599.0,
#             "rating": "",
#             "weight": "0",
#             "score": 1.5418848
#         }
#     ]
# }
```

### 7. Push Products to Shopify

Cataloglake allows products housed there to be pushed to platforms like Shopify

1. List item
2. List item

```python
product_push_request = {
 "shopify_store_name": "cartesian-sample-test",
 "shopify_access_token": "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",
 "groc_item_id": ["3548221525"]
}

catalog_send = cataloglake.send(product_push_request)
print("catalog_send----", catalog_send)
```

Output

```python
# {
#     "shopify_product_id": [
#         "gid://shopify/Product/7340319801434"
#     ]
# }
```

### 8. Deleting items from catalog

Suppose your e-commerce platform no longer offers a product, and you need to remove it from the catalog to ensure the inventory remains current. Using `catalog.delete()`, you can seamlessly delete the item by specifying its `groc_item_id`.

```python
item_object = {
  "items": [
    {
      "groc_item_id": "1698596981"
    }
  ]
}

catalog_delete = catalog.delete(item_object)
print("catalog_delete_data----", catalog_delete)
```

Output

```
# {
#     "status": "Items deleted successfully"
# }
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.groclake.ai/lakes/index-stores/cataloglake/example-use-case-of-cataloglake.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
