====== The JSON Cart Object ======
In an effort to make FoxyCart as flexible, customizable, and "Web 2.0" as possible, we've provided a JSON cart object for you to manipulate to your heart's content. As of v0.4.0, the JSON object is loaded:
* Whenever you call ''foxycart_includes.js''
* your cart
* your checkout
* your receipt
Additionally, you can retrieve the JSON at any time by calling:
https://example.foxycart.com/cart?output=json&cart=view
This is described [[..:getting_started:adding_links_and_forms#cart_options|here]].
===== Helper Functions =====
To run a function either before or after an "add to cart" request is handled, please read the [[includes:foxycart_includes_js#included_functions|documentation on included functions]], such as ''fc_PreProcess()'' and ''fc_BuildFoxyCart()''.
===== JSON Example Output =====
This JSON structure is current as of v0.4.0. If you're using an earlier version you can use [[http://getfirebug.com|Firebug]] to see the structure of the JSON object.
fc_json = {
"products":[
{
"id": "2951",
"name": "testing 01",
"code": "001a",
"options": {"color":"red"},
"quantity": 4,
"price_each": 14,
"price": 56,
"shipto": "",
"category": "DEFAULT"
},
{
"id": "2955",
"name": "testing",
"code": "",
"options": {},
"quantity": 4,
"price_each": 9.00,
"price": 36,
"shipto": "",
"category": "DEFAULT"
}],
"product_count": 8,
"total_price": 92,
"session_id": "blnj77nik4equdg7ou0emr3kd4",
"coupons":{
"$5 off all orders over $5!":-5
},
"custom_fields":{
"custom_id":"0123abcd",
"other_custom_field":"my value"
}
};
===== Example Tutorial with JSON =====
[[json:tutorial|Example JSON cart display]].
[[http://www.toasteddigital.com/blog/foxycart-modx-adding-live-cart-contents-to-your-site.html|Adding a mini-cart]] to display cart quantity and total price, sitewide.