改変自由です。
バグを見つけたら、いい感じにして使ってください。

#!/usr/local/bin/python2.7
# -*- coding: utf-8 -*-

import json
import sys

reqJson = json.load(sys.stdin)

try:
	intentName = reqJson["queryResult"]["intent"]["displayName"]
	sessionID = reqJson["session"]
except KeyError:
	intentName = ""
	
contextsPrm={}
orders =[]

try:
	for con in reqJson["queryResult"]["outputContexts"]:
		if con["name"] == sessionID+"/contexts/counter_business":
			contextsPrm = con["parameters"]
			orders = contextsPrm["ORDER"]
except KeyError:
	pass

if intentName == "IsEatInIntent":
	inParm = reqJson["queryResult"]["parameters"]
	place = inParm["PLACE"]
	contextsPrm.setdefault("PLACE", place)
	
	resJson ={
		"fulfillmentText": place+u"でお召し上がりですね。ご注文をお伺いします。",
		"fulfillmentMessages": [
			{
				"text": {
					"text": [
						place,
						u"でお召し上がりですね。ご注文をお伺いします。"
					]
				}
			}
		],
		"outputContexts": [
			{
				"name": sessionID+"/contexts/counter_business",
				"lifespanCount": 10,
				"parameters": contextsPrm
			}
		]
	}
elif intentName == "MenuIntent":
	
	resJson ={
		"fulfillmentText": u"フードメニューは、ハンバーガー、ナゲット、ポテトがあります。ドリンクメニューはコーラ、オレンジジュース、コーヒーがあります。何になさいますか?",
		"fulfillmentMessages": [
			{
				"text": {
					"text": [
						u"フードメニューは、ハンバーガー、ナゲット、ポテトがあります。",
						u"ドリンクメニューはコーラ、オレンジジュース、コーヒーがあります。",
						u"何になさいますか?"
					]
				}
			}
		]
	}
elif intentName == "RecommendIntent":
	
	resJson ={
		"fulfillmentText": u"お勧めはハンバーガーですね。何になさいますか?",
		"fulfillmentMessages": [
			{
				"text": {
					"text": [
						u"お勧めはハンバーガーですね",
						u"何になさいますか?"
					]
				}
			}
		]
	}	
elif intentName == "MoreRecommendIntent":
	hasFoodOrder = False
	hasDrinkOrder = False
	
	if len(orders) > 0:
		for orderDetail in orders:
			if orderDetail["class"] =="Drink":
				hasDrinkOrder=True
			elif orderDetail["class"] == "Food":
				hasFoodOrder=True
	
	if not hasDrinkOrder:
		resTxt = u"ではコーラはいかがでしょうか?"
		contextsPrm.setdefault("REC_ORDER", {"class":"Drink","name":u"コーラ","number":"1"})
	elif not hasFoodOrder :
		resTxt = u"ではナゲットはいかがでしょうか?"
		contextsPrm.setdefault("REC_ORDER", {"class":"Food","name":u"ナゲット","number":"1"})
	else:
		resTxt = u"ではポテトはいかがでしょうか?"
		contextsPrm.setdefault("REC_ORDER", {"class":"Food","name":u"ポテト","number":"1"})

	resJson ={
		"fulfillmentText": resTxt,
		"fulfillmentMessages": [
			{
				"text": {
					"text": [
						resTxt
					]
				}
			}
		],
		"outputContexts": [
			{
				"name": sessionID+"/contexts/counter_business",
				"lifespanCount": 10,
				"parameters": contextsPrm
			}
		]
	}
elif intentName == "MoreRecommendIntent - yes":
	order=contextsPrm["REC_ORDER"]["name"]
	number=contextsPrm["REC_ORDER"]["number"] 
	orders.append(contextsPrm.pop("REC_ORDER"))
	contextsPrm.setdefault("ORDER", orders)

	resJson ={
		"fulfillmentText": order + u"を" + number + u"ですね。他にご注文はありますか?",
		"fulfillmentMessages": [
			{
				"text": {
					"text": [
						order + u"を" + number + u"ですね。",
						u"他にご注文はありますか?"
					]
				}
			}
		],
		"outputContexts": [
			{
				"name": sessionID+"/contexts/counter_business",
				"lifespanCount": 10,
				"parameters": contextsPrm
			}
		]
	}

elif intentName == "OrderIntent":
	inParm = reqJson["queryResult"]["parameters"]
	food = inParm["Food"]
	number = inParm["number"]
	drink = inParm["Drink"]

	if food != "":
		order = food
		orderClass = "Food"
	else:
		order = drink
		orderClass = "Drink"

	if number != "":
		order_number = str(int(number))
	else:
		order_number = "1"

	orders.append({"class":orderClass,"name":order,"number":order_number})
	contextsPrm.setdefault("ORDER", orders)

	resJson ={
		"fulfillmentText": order+u"を" + order_number + u"ですね。他にご注文はありますか?",
		"fulfillmentMessages": [
			{
				"text": {
					"text": [
						order+u"を" + order_number + u"ですね。",
						u"他にご注文はありますか?"
					]
				}
			}
		],
		"outputContexts": [
			{
				"name": sessionID+"/contexts/counter_business",
				"lifespanCount": 10,
				"parameters": contextsPrm
			}
		]
	}
elif intentName == "ResetIntent":
	contextsPrm.setdefault("ORDER", [])

	resJson ={
		"fulfillmentText": u"わかりました。注文をすべてキャンセルします。ご注文はありますか?",
		"fulfillmentMessages": [
			{
				"text": {
					"text": [
						u"わかりました。",
						u"注文をすべてキャンセルします。ご注文はありますか?"
					]
				}
			}
		],
		"outputContexts": [
			{
				"name": sessionID+"/contexts/counter_business",
				"lifespanCount": 0,
				"parameters": contextsPrm
			}
		]
	}
elif intentName == "ConcludeIntent":

	if len(orders) > 0:
		if contextsPrm["PLACE"] != "":
			orderTxt = contextsPrm["PLACE"]+u"で"
		else:
			orderTxt = u"店内で"
		for orderDetail in orders:
			orderTxt = orderTxt + orderDetail["name"] + u"を" + orderDetail["number"]  + u"、"
		
		with open("order.txt","w") as odrFile:
			json.dump(contextsPrm["ORDER"],odrFile,indent=4)

		resJson ={
			"fulfillmentText": orderTxt+u"ですね。少々お待ちください。",
			"fulfillmentMessages": [
				{
					"text": {
						"text": [
							orderTxt,
							u"ですね。少々お待ちください。"
						]
					}
				}
			],
			"outputContexts": [
				{
					"name": sessionID+"/contexts/counter_business",
					"lifespanCount": 1,
					"parameters": {
					}
				}
			]
		}
	else:
		resJson ={
			"fulfillmentText": u"注文の内容が分かりませんでした。最初からやり直してください。ご注文はありますか?",
			"fulfillmentMessages": [
				{
					"text": {
						"text": [
							u"注文の内容が分かりませんでした。最初からやり直してください。",
							u"ご注文はありますか?"
						]
					}
				}
			],
			"outputContexts": [
				{
					"name": sessionID+"/contexts/counter_business",
					"lifespanCount": 1,
					"parameters": {
					}
				}
			]
		}
else:
	pass

print('Content-type: application/json\n\n')
json.dump(resJson,sys.stdout)