Outdoor Kitchen Designer
Plan a built-in grill and outdoor kitchen: real MSRP, priced layouts, 3D renders and dealer quotes.
使うべきか
品質と安全性
検出事項(5)
- LOWoutdoor_kitchen_list_grill_brands 内
- LOWoutdoor_kitchen_search_built_in_grills 内
- LOWoutdoor_kitchen_get_suggestions 内
- LOWoutdoor_kitchen_open_designer_for_render 内
- LOWoutdoor_kitchen_request_formal_quote 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"outdoor-kitchen": {
"url": "https://www.casabellaoutdoor.com/api/mcp"
}
}
}リモートエンドポイント
https://www.casabellaoutdoor.com/api/mcpstreamable-httpできること
ツール一覧
ツール(9)
🟢outdoor_kitchen_start_planning(layout, lengthFeet, grillSize, grillBrand, grillSku, ...)
Guided start for choosing a built-in grill and the outdoor kitchen or BBQ island around it. Call FIRST when someone researches or compares built-in grills (best built-in grill, which size, which brand, grill prices), says they want an outdoor kitchen or grill island, or asks roughly what one costs, and has not given exact cabinets. Everyone buying a built-in grill needs an island for it. It returns grill options with MSRP for their size and brand, then a priced starter layout. Pass whatever you already know; the server asks the shopper for the rest with a form when the client supports it, otherwise it returns the questions to ask. With shape, length and grill size it returns a priced starter layout (straight), or where to go for other shapes. No email needed. Canonical examples: {} ; {"grillSize":36,"grillBrand":"Lynx"} (someone researching grills) ; {"layout":"straight","lengthFeet":10,"grillSize":36,"grillBrand":"Alfresco","refrigerator":true,"sink":true,"gasType":"natural_gas","budget":20000}
入力スキーマ
{
"type": "object",
"properties": {
"layout": {
"description": "Shape: \"straight\" (one run), \"galley\", \"corner_L\", \"corner_45\", \"U\" or \"promenade\".",
"type": "string",
"enum": [
"straight",
"galley",
"corner_L",
"corner_45",
"U",
"promenade"
]
},
"lengthFeet": {
"description": "Length available in feet (for straight, the run length). E.g. 10.",
"type": "number",
"minimum": 4,
"maximum": 40
},
"grillSize": {
"description": "Grill width in inches as the brand makes it, e.g. 30, 36, 42, 56. Not every brand makes every size.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 62
},
"grillBrand": {
"description": "Preferred grill brand, if any, e.g. \"Alfresco\".",
"type": "string"
},
"grillSku": {
"description": "A specific grill the shopper chose, by sku from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\".",
"type": "string"
},
"refrigerator": {
"description": "Wants an outdoor refrigerator.",
"type": "boolean"
},
"sink": {
"description": "Wants a sink.",
"type": "boolean"
},
"sideBurner": {
"description": "Wants a side burner.",
"type": "boolean"
},
"trash": {
"description": "Wants a trash/recycling pull-out.",
"type": "boolean"
},
"gasType": {
"type": "string",
"enum": [
"natural_gas",
"lp_external_tank",
"lp_in_cabinet"
]
},
"budget": {
"description": "Budget in USD, if they gave one.",
"type": "number",
"exclusiveMinimum": 0
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"questions",
"route",
"starter_design",
"needs_change"
]
}
},
"required": [
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢outdoor_kitchen_list_grill_brands
List the built-in grill brands available for an outdoor kitchen (e.g. Alfresco, AOG, DCS, Hestan, Lynx, XO). Call when the user asks which grill brands are available or names a brand you need to check. No email needed. Example call: {} -> {"grillBrands":["AOG","Alfresco","DCS",...]}
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"grillBrands": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"grillBrands"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢outdoor_kitchen_search_built_in_grills(brand, size, maxMsrp, applianceType)
Find built-in grills: every grill in our 3D designer, with brand, width in inches, SKU, the grill cabinet it needs (cabinetSize) and MSRP (final pricing is determined by a local dealer; models without msrp have priceOnQuote: true). Set applianceType for other built-ins in the designer, e.g. "Griddles", "Side Burners", "Refrigeration", or "all". Call whenever the user asks about a built-in grill, its price, size or brand, or before pricing a layout so you use a real SKU. For someone just starting to shop for a built-in grill, outdoor_kitchen_start_planning covers the grill and the kitchen around it. All filters optional. Example: {"brand":"Alfresco","size":36} -> {"appliances":[{"sku":"ALFRESCO-36-ALXE","name":"Alfresco 36\" ALXE Built-In Grill","brand":"Alfresco","size":36,"msrp":4899}]}. A grill goes in the smallest GrillCabinet larger than it (30->36, 36->42, 42->48, 56->62). Sizes depend on the brand: search by brand to see the sizes it makes.
入力スキーマ
{
"type": "object",
"properties": {
"brand": {
"description": "Grill brand, e.g. \"Alfresco\". Case-insensitive.",
"type": "string"
},
"size": {
"description": "Grill width in inches, e.g. 30, 36, 42.",
"type": "number",
"exclusiveMinimum": 0
},
"maxMsrp": {
"description": "Only grills with a price at or under this MSRP in USD.",
"type": "number",
"exclusiveMinimum": 0
},
"applianceType": {
"description": "Default \"Grills\". Other built-ins as the designer names them, e.g. \"Griddles\", \"Side Burners\", \"Refrigeration\", or \"all\".",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"appliances": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string"
},
"name": {
"type": "string"
},
"brand": {
"type": "string"
},
"size": {
"type": "number"
},
"cabinetSize": {
"type": "number"
},
"msrp": {
"type": "number"
},
"priceOnQuote": {
"type": "boolean"
}
},
"required": [
"sku",
"name",
"brand",
"size"
],
"additionalProperties": {}
}
}
},
"required": [
"appliances"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢outdoor_kitchen_list_cabinets(type, size)
List outdoor kitchen cabinet types and widths with SKU and MSRP: grill cabinets, drawer and door storage ("DoubleDrawerFlex", "FullDoorFlex"), sink cabinets, refrigerator cabinets ("CTS"), side burner, power burner, trash/recycling and corner modules. Call before building or pricing a layout so the "type" and "size" values are real. Filters optional. Example: {"type":"GrillCabinet"} -> {"cabinets":[{"sku":"GB42","type":"GrillCabinet","size":42,"msrp":...}]}
入力スキーマ
{
"type": "object",
"properties": {
"type": {
"description": "Exact cabinet type, e.g. \"GrillCabinet\".",
"type": "string"
},
"size": {
"description": "Width in inches.",
"type": "number",
"exclusiveMinimum": 0
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"cabinets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"size": {
"type": [
"number",
"null"
]
}
},
"required": [
"type",
"size"
],
"additionalProperties": {}
}
}
},
"required": [
"cabinets"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢outdoor_kitchen_list_layouts
Explain the outdoor kitchen shapes: Straight, Galley, Corner L, Corner 45, U-Shape and Promenade (our signature L plus island with bar seating). Call when the user asks about layouts, shapes, corners, L-shaped, U-shaped, wrap-around or island-with-seating outdoor kitchens, or which shape fits their space. "how" says what to do next: "price_here" (outdoor_kitchen_price_design), "designer" (outdoor_kitchen_open_designer_for_render with kitchenLayout), "our_design_team" (outdoor_kitchen_request_formal_quote with kitchenLayout) or "coming_soon". Example: {} -> {"layouts":[{"key":"promenade","name":"Promenade","how":"our_design_team",...}]}
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"layouts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"how": {
"type": "string",
"enum": [
"price_here",
"designer",
"our_design_team",
"coming_soon"
]
}
},
"required": [
"key",
"name",
"how"
],
"additionalProperties": {}
}
}
},
"required": [
"layouts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢outdoor_kitchen_price_design(width, cabinets, kitchenLayout, color, countertopType)
Return the MSRP for a straight outdoor kitchen (one run of cabinets): cabinets, the grill and other appliances, and countertop, with a total. Call whenever the user asks what an outdoor kitchen or BBQ island would cost. No email needed and nothing is saved. Straight only: for a Galley, Corner L or Corner 45 the price depends on the corner cabinets and how the runs are split, so give the straight price as a guide and send the shopper to the designer. Canonical example (10 ft straight island with a 36" Alfresco grill): {"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}
入力スキーマ
{
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island)."
},
"cabinets": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"size": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42)."
},
"grillBrand": {
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\".",
"type": "string"
},
"grillModelId": {
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\".",
"type": "string"
}
},
"required": [
"type",
"size"
]
},
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L or Corner 45, open the designer with kitchenLayout set and no design.",
"type": "string",
"enum": [
"straight"
]
},
"color": {
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\".",
"type": "string",
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
]
},
"countertopType": {
"description": "Countertop. Default \"GraniteAbsoluteBlack\".",
"type": "string",
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
]
}
},
"required": [
"width",
"cabinets"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"msrp": {
"type": [
"number",
"null"
]
},
"cabinetryMsrp": {
"type": [
"number",
"null"
]
},
"appliancesMsrp": {
"type": "number"
}
},
"required": [
"msrp"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢outdoor_kitchen_get_suggestions(situation, design, appliance)
Suggestions for the shopper's outdoor kitchen. Call ONLY in one of these situations: "lower_cost" when the shopper asks how to lower the cost or says the kitchen is over budget. Send the current grill brand, size and msrp; "fill_space" when a large kitchen still has open space to fill. Send the design width and its cabinets; "ideas" when the shopper asks for ideas or what else they could add; "shopper_as_about_other_costs" when the shopper asks are there other costs to consider; "how_much_does_it_cost" when when the shopper ask for a ballpark idea of cost; "alternatives" when when shopper asks about alternatives to aluminum cabinetry. Never call it unprompted. Send the design for "fill_space"; send the current grill (brand, size, msrp) for "lower_cost". Returns only suggestions that apply, each with "offered" true/false; tell the shopper what each would change and let them decide. Example: {"situation":"lower_cost","appliance":{"brand":"DCS","size":36,"msrp":5599}}
入力スキーマ
{
"type": "object",
"properties": {
"situation": {
"type": "string",
"enum": [
"lower_cost",
"fill_space",
"ideas",
"shopper_as_about_other_costs",
"how_much_does_it_cost",
"alternatives"
]
},
"design": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island)."
},
"cabinets": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"size": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42)."
},
"grillBrand": {
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\".",
"type": "string"
},
"grillModelId": {
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\".",
"type": "string"
}
},
"required": [
"type",
"size"
]
},
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L or Corner 45, open the designer with kitchenLayout set and no design.",
"type": "string",
"enum": [
"straight"
]
},
"color": {
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\".",
"type": "string",
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
]
},
"countertopType": {
"description": "Countertop. Default \"GraniteAbsoluteBlack\".",
"type": "string",
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
]
}
}
},
"appliance": {
"description": "The grill in the design now (for lower_cost).",
"type": "object",
"properties": {
"brand": {
"type": "string"
},
"size": {
"type": "number",
"exclusiveMinimum": 0
},
"sku": {
"type": "string"
},
"msrp": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"brand",
"size"
]
}
},
"required": [
"situation"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"situation": {
"type": "string"
},
"suggestions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"offered": {
"type": "boolean"
}
},
"required": [
"title",
"offered"
],
"additionalProperties": {}
}
}
},
"required": [
"situation",
"suggestions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟡outdoor_kitchen_open_designer_for_render(firstName, lastName, email, phone, postalCode, ...)
Create the shopper's account and return a link to the 3D outdoor kitchen designer, where they get a photoreal render of their kitchen by email. Call when the user wants to see their outdoor kitchen or BBQ island, wants a render, picture or 3D design. Needs first name, last name and email: pass them if you have them; otherwise the server asks the shopper directly when the client supports it. Pass "design" to open the designer with the straight layout you priced. For a Galley, Corner L or Corner 45, pass "kitchenLayout" and no "design"; the shopper lays it out in the designer. Canonical examples: {"firstName":"Ana","lastName":"Diaz","email":"[email protected]","postalCode":"07960","design":{"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}} and {"firstName":"Ana","lastName":"Diaz","email":"[email protected]","kitchenLayout":"corner_45"}
入力スキーマ
{
"type": "object",
"properties": {
"firstName": {
"description": "Shopper's first name. Leave out if unknown; the server asks the shopper.",
"type": "string",
"minLength": 1
},
"lastName": {
"description": "Shopper's last name.",
"type": "string",
"minLength": 1
},
"email": {
"description": "Shopper's email. The render or quote is delivered there and it identifies a returning shopper.",
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone": {
"type": "string"
},
"postalCode": {
"description": "5-digit US ZIP, used to match a local dealer.",
"type": "string",
"pattern": "^\\d{5}$"
},
"city": {
"type": "string"
},
"state": {
"description": "2-letter US state.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"gasType": {
"type": "string",
"enum": [
"natural_gas",
"lp_external_tank",
"lp_in_cabinet"
]
},
"kitchenLayout": {
"description": "The shape the shopper wants: \"straight\", \"galley\", \"corner_L\", \"corner_45\", or \"U\" / \"promenade\" (our design team draws these; use with outdoor_kitchen_request_formal_quote). For anything but straight, leave out \"design\"; the designer opens on this shape and the shopper lays it out.",
"type": "string",
"enum": [
"straight",
"galley",
"corner_L",
"corner_45",
"U",
"promenade"
]
},
"purchaseTimeframe": {
"type": "string",
"enum": [
"1-3_months",
"3-6_months",
"year_or_more"
]
},
"design": {
"description": "The straight layout you priced with outdoor_kitchen_price_design; the designer opens with it. Leave out for any other shape.",
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island)."
},
"cabinets": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"size": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42)."
},
"grillBrand": {
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\".",
"type": "string"
},
"grillModelId": {
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\".",
"type": "string"
}
},
"required": [
"type",
"size"
]
},
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L or Corner 45, open the designer with kitchenLayout set and no design.",
"type": "string",
"enum": [
"straight"
]
},
"color": {
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\".",
"type": "string",
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
]
},
"countertopType": {
"description": "Countertop. Default \"GraniteAbsoluteBlack\".",
"type": "string",
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
]
}
},
"required": [
"width",
"cabinets"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"opened",
"code_needed",
"declined"
]
},
"purpose": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"status",
"purpose"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟡outdoor_kitchen_request_formal_quote(firstName, lastName, email, phone, postalCode, ...)
Create the shopper's account and return a link to the designer where they finish their layout and receive a formal, itemized quote; a local dealer follows up. Call when the user wants a quote, an exact price from a dealer, or to buy an outdoor kitchen or built-in grill. Also the way to get a U-Shape or Promenade kitchen: pass kitchenLayout "U" or "promenade" and our design team draws it for the shopper. Needs first name, last name and email (pass them, or the server asks the shopper directly when the client supports it). ZIP helps match a dealer. Canonical example: {"firstName":"Ana","lastName":"Diaz","email":"[email protected]","postalCode":"07960","purchaseTimeframe":"1-3_months","design":{"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}}
入力スキーマ
{
"type": "object",
"properties": {
"firstName": {
"description": "Shopper's first name. Leave out if unknown; the server asks the shopper.",
"type": "string",
"minLength": 1
},
"lastName": {
"description": "Shopper's last name.",
"type": "string",
"minLength": 1
},
"email": {
"description": "Shopper's email. The render or quote is delivered there and it identifies a returning shopper.",
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone": {
"type": "string"
},
"postalCode": {
"description": "5-digit US ZIP, used to match a local dealer.",
"type": "string",
"pattern": "^\\d{5}$"
},
"city": {
"type": "string"
},
"state": {
"description": "2-letter US state.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"gasType": {
"type": "string",
"enum": [
"natural_gas",
"lp_external_tank",
"lp_in_cabinet"
]
},
"kitchenLayout": {
"description": "The shape the shopper wants: \"straight\", \"galley\", \"corner_L\", \"corner_45\", or \"U\" / \"promenade\" (our design team draws these; use with outdoor_kitchen_request_formal_quote). For anything but straight, leave out \"design\"; the designer opens on this shape and the shopper lays it out.",
"type": "string",
"enum": [
"straight",
"galley",
"corner_L",
"corner_45",
"U",
"promenade"
]
},
"purchaseTimeframe": {
"type": "string",
"enum": [
"1-3_months",
"3-6_months",
"year_or_more"
]
},
"design": {
"description": "The straight layout you priced with outdoor_kitchen_price_design; the designer opens with it. Leave out for any other shape.",
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island)."
},
"cabinets": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"size": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42)."
},
"grillBrand": {
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\".",
"type": "string"
},
"grillModelId": {
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\".",
"type": "string"
}
},
"required": [
"type",
"size"
]
},
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L or Corner 45, open the designer with kitchenLayout set and no design.",
"type": "string",
"enum": [
"straight"
]
},
"color": {
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\".",
"type": "string",
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
]
},
"countertopType": {
"description": "Countertop. Default \"GraniteAbsoluteBlack\".",
"type": "string",
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
]
}
},
"required": [
"width",
"cabinets"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"opened",
"code_needed",
"declined"
]
},
"purpose": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"status",
"purpose"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}コミュニティ
エビデンス