opencart - customer table, cart field encoding - opencart

I have a need to show the abandoned cart to my visitors. I have looked around and found out that opencart saves the cart in serialized array in customer table under cart field.
My problem is that even though I unserialize the array I cant really tell what options the customer has chosen as it still somehow in unreadable to me. I am not sure if it requires some kind of decoding or not, thats probably what I may need.
Here is what I have
the cart field is a:1:{s:31:"59:YToxOntpOjIzNztzOjI6IjQyIjt9";i:1;}
but when I unserialize it, it shows an array like this
array(1) { ["59:YToxOntpOjIzNztzOjI6IjQyIjt9"]=> int(1) }
I know that 59 is the product_id, I have no idea what it (YToxOntpOjIzNztzOjI6IjQyIjt9) is after that? or how to even decode it?
Any help will be appreciated.

Use base64_decode on that string.
Here is a clue, from system/library/cart.php:
$options = unserialize(base64_decode($product[1]));

Related

Django Inline with join table structure

So I have a DB structure like so: (ignore how i named things its a quick fake DB example things)
Collection: id, ...
List: id, title,...
Car: id, name, ...
CollectionHasList: id, collectionid, listid
ListHasCar: id, carid, listid
So what I am trying to do is in the django admin panel under collection/add I want to be able to fill in all of these tables instead of filling everything in individually one by one.
So the collection fields will exist as normal, but then I want to have a custom field that takes in a list title and a text area that takes in a comma delimited cardIds (cards are already created and don't need to be done through here, just list and collections) But since Collections have many lists, I want to be able to click a "add" button and generate the same custom form again to add more lists (with associated cars).
I think in the model I will be able to do the custom saving that I need, but I can't get the form to work and thats what I need most help on. Can anyone please help me! Thank you so much! I looked everyone on stack overflow and haven't found anything that can directly help me, some good points, but I still can't put it together.

Musicbrainz querying artist and release

I am trying to get an artist and their albums. So reading this page https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2 i created the following query to get Michael Jackson's albums
http://musicbrainz.org/ws/2/artist/?query=artist:michael%20jackson?inc=releases+recordings
My understanding is to add ?inc=releases+recordings at the end of the URL which should return Michael Jackson's albums however this doesnt seem to return the correct results or i cant seem to narrow down the results? I then thought to use the {MBID} but again thats not returned in the artists query (which is why im trying to use inc in my query)
http://musicbrainz.org/ws/2/artist/?query=artist:michael%20jackson
Can anyone suggest where im going wrong with this?
You're not searching for the correct Entity. What you want is to get the discography, not artist's infos. Additionally, query fields syntax is not correct (you must use Lucene Search Syntax).
Here is what you're looking for:
http://musicbrainz.org/ws/2/release-group/?query=artist:"michael jackson" AND primarytype:"album"
We're targeting the release-group entity to get the albums, searching for a specific artist and filtering the results to limit them to albums. (accepted values are: album, single, ep, other)
There are more options to fit your needs, for example you can filter the type of albums using the secondarytype parameter. Here is the query to retrieve only live albums:
http://musicbrainz.org/ws/2/release-group/?query=artist:"michael jackson" AND primarytype:"album" AND secondarytype="live"
Here is the doc:
https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search
Note that to be able to use MB's API you need to understand how it is structured, especially, the relations between release_group, release and medium.

Adding More Column in Customer OSCommerce Admin Page

i'm a little bit struggling regarding how can i add more column in the costumer tabs in the admin page OSCommerce. As we can i only can display 8 customer in one page. How can i increase it ?
Thank you so much
I can't say for sure without seeing your catalog/admin/customers.php file... Is the following code in your customers.php file?
$customers_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $customers_query_raw, $customers_query_numrows);
If so, then check the value of MAX_DISPLAY_SEARCH_RESULTS in your database. MAX_DISPLAY_SEARCH_RESULTS is in the 'configuration" table. If it is set to 8 then adjust it to the number of customer rows you prefer to see in the customers table.
Keep in mind that MAX_DISPLAY_SEARCH_RESULTS is used elsewhere and whatever value you adjust it too will be used everywhere MAX_DISPLAY_SEARCH_RESULTS is used.

Django Spreadsheet Application

I am in the making of a Django application where you will be able to upload an excel spreadsheet file and have it inserted into the application. But I sorta got the importing sorted out.
What I need is a way to store the values dynamically, I basicly need X number of fields for each row, with each three possible types.
These would be:
Boolean
String
Number
How would I go about doing so?
Let's say I have some models that contains this information:
A spreadsheet with a name, and some "header"-cells that will indidate which fields (and their name) that belong to that spreadsheet (but dynamically expanding).
A row that can have multiple cells, each with a type of either a boolean, a string or a number.
An example could be like this:
Spreadsheet 100
name (string)
city (string)
religious? (boolean)
phonenumber (number)
and then I need to pair the cells underneath with the appropiate header, like this:
row
name = "Bob Curious"
city = "New York"
religious = "Yes"
phonenumber = "888 888 888"
I hope that explains it good enough, if not, please go ahead and ask for anything you might like explained.
Thanks in advance! :)
This post is pretty old so I'm not sure whether you still need help with your issue, but I've found xlrd to be an excellent tool for scraping spreadsheet data. I would suggest investigating this package further.
Maybe others would like to hear more about the solution for this question. My plugin django-excel would help with excel data import into and export from one or more django models. What's more, the plugin provides one programming interface to handle data in ods(using odfpy or ezodf), xls(using xlrd), xlsx(using openpyxl) and csv formats. I hope it may help you.

Django create several records at a time

I want to be able to create as many records as a user wants for a database table in a single form.
For example, there will be some inputs for the data required for a record and at the end of the line a "+" button that would make a new line of inputs appear. There should be no limit to the number of lines and when the user clicks on the single submit button, all of the records would be inserted.
Thing is : I don't know how to make a new line appear dynamically, I suppose I have to use jquery for that but I'm kind of a newbie :)
And I don't know how I can iterate through all the lines dynamically added.
If someone can point to an example or something, it'd save me a lot of hair pulling !
EDIT :
By following this blog post I managed to do that. I have one last problem which is : when I try to insert several records at one time, it keeps the last one fine, but the previous ones are considered empty. It tells me that the fields are required, I fill them up and click on save and only then it saves them allright.
Maybe I'll ask a new question for this!
Start here: https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#model-formsets
I suppose I have to use jquery for that
That can also work.
And I don't know how I can iterate through all the lines dynamically added.
You'll get all the fields of the form (all of them) in your request.POST object. If you use a formset, it will largely be handled by the form's clean() and save() methods.