I have (mock) product data hard coded into a JSON file that I use to generate "catalogue" pages in my application. However, the ultimate plan is to allow users to add new products via a CMS style admin panel.
Obviously I need this data to be persistent. The obvious choice would be to use MySQL or some other database, but since this a a pretty complex data structure with lots of nesting I can't imagine how that could be achieved painlessly. I could simply store the JSON in a text file on the server but then I lose the ability to manipulate it and have to send the whole set each time I make a change. Then again that would only be when people added and removed products so perhaps it wouldn't be so bad. Perhaps I could decode the JSON with PHP, manipulated it and then re-serialize it into JSON and save it into a text file.
Sorry, I'm rambling here. What do you think are my best options?
{
currency: currency,
currencySymbol: CurrencySymbol(currency),
shoes: {
title: 'Shoes',
items:[
[
{
name: 'Light Shoes',
price: 99.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Dark Shoes',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Brown Shoes',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
}
],[
{
name: 'Gold Shoes',
price: 999.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Dark Shoes',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Brown Shoes',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
}
]
]
},
dance: {
title: 'Dance Gear',
items: [
[
{
name: 'Cool Cap',
price: 99.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Baggy Pants',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Jacket',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
}
],[
{
name: 'T-Shirt',
price: 99.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Hip-Hip Hoodie',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Belt',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
}
]
]
}
}