ticketebo
v1.6.0
Published
Ticketebo Magento Admin
Readme
Ticketebo Online Ticket Store
What is this repository for?
This is the main Ticketebo Magento 1/OpenMage-based webshop source code.
It also includes code for our various webservices service APIs to support scanning and on-site Kiosk sales.
The repository type is "git" and the host is Bitbucket. Use the "master" branch unless otherwise instructed.
It is a fork of OpenMage LTS as of September 2020. We now manually patch important changes from OpenMage every 3 months but more and more of the original core code and db schema is being stripped away, either because we don't use it at all, we can greatly simplify it or because we've replaced it with custom code and db schema
The medium term goal is to maintain the admin backend, order/invoice sub-system and at least part of the catalog sub-system. Front-end patrons will use a VueJS based browser front-end to browse and make purchases and interact with our server via our own webservices API. The API code handles interaction with the OpenMage code and Magento db schema.
In the medium-long term:
- Admin backend: Progressively get away from and finally eliminate Magento-reliance due to its use of completely obsolete Prototype.js by introducing Laravel and Eloquent ORM.
- Order/invoice sub-system - heavily simplify and get rid of Invoice object.
- Catalog sub-system - Get away from Group Product/Virtual Product system. Introduce new product types, still Magento-based but tailored specifically for Ticketebo needs.
In the very long term, all Magento components will be replaced.
Since the end of life of Magento 1, this repository includes all core OpenMage code, third party Magento libraries and Ticketebo custom code. [Previously Magento core code was never checked in for easier upgrades upgrades to later versions of Magento.]
This README is written in MD Markdown: Learn Markdown
Install instructions
Using the original Magento installer is no longer an option. You can install reasonably easily like this:
- Clone the git repo
- Create and edit app/etc/local.xml
- Clone the db from another instance and use vi editor to change all website instances from, say, www.ticketebo.com.au to your own site, say, myserver.ticketebo.com.au. A script is available to empty it out (TODO: Hmm, where?).
The hardest part is generally getting ioncube licensing to run correctly. To that end we are gradually phasing out the U nirgy D ropship module that uses it. Eventually it will be gone. UPDATE: 2024-09-29 ioncube need appears to be already eliminated in live versions. A version under test completely removes the U nirgy Dropship module and replaces it with a fully functioning version of our custom Organiser module (still Magento/Zend based be db schema designed to be agnostic) . YOU SHOULD BE ABLE TO COMPLETELY IGNORE ALL ioncube instructions and it will still work.
Set up Apache virtual host with port 80 and 443 activated
Hostname must be *.ticketebo.com.au or *.ticketebo.co.uk for U nirgy license to work. (Soon to be eliminated)
Here is a simple set with self-signed SSL certificate for a personal machine but typically we now use letsencrypt for non-production servers.
NOTE: This appears to be for a MacOS/homebrew configuration. Configuration for other systems will require a different DocumentRoot:
Sample simple Apache config file (TODO: Where to put this?)
<VirtualHost *:80>
ServerAdmin [email protected]
# We do not allow http to be used at all for personal data security reasons
Redirect / https://mysserver.ticketebo.com.au/
ServerName mag19.ticketebo.com.au
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/Library/WebServer/Documents"
ServerName myserver.ticketebo.com.au
SSLEngine on
SSLCertificateFile "/etc/apache2/server.crt"
SSLCertificateKeyFile "/etc/apache2/server.key"
</VirtualHost>For personal testing, you can create self-signed certificates on Linux or Mac:
openssl req -x509 -nodes -days 1000 -newkey rsa:2048 -keyout server.key -out server.crtPlease these in the same location
Mac-specific notes
For cert set-up, see https://getgrav.org/blog/macos-sierra-apache-ssl
Create empty MySQL db (we will use the default "magento" in this doc)
Create db using your favourite MySQL tool.
Create a user on just that db e.g. user=ticketebo password=rcLi0jzcni7evhqd All privileges. No global priv. In most set-ups, you should also restrict the user to localhost only. Make sure user/password are entered in app/etc/local.xml (see below).
Install Ioncube - needed for U nirgy d ropship module licensing
(you should now be able to skip this step entirely)
If not already running on your target host machine:
http://www.ioncube.com/loaders.php - choose right one for your platform
General help on U nirgy license: https://www.youtube.com/watch?v=E3IlOX4-73Q
Source code Option 1 - Clone Ticketebo "ticketebo" git repository.
Get a Bitbucket account and request read or read/write permissions to the repository
Install git
sudo apt-get install gitTODO: The "git clone" parameters may be out of date??
mkdir -p /home/myinstance/public_html
cd /home/myinstance/public_html
git clone [email protected]:ticketebo/ticketebo.git .else if there are already files in the folder
git init
git remote add origin https://[email protected]/ticketebo/ticketebo.git
git fetch
git checkout -t origin/masterSource code Option 2 - Copy an existing instance
Copy all files in existing installation preserving file timestamps.
cd ..
mkdir mycopy
cp -af public_html/ mycopy/Delete var/cache, var/session and var/log contents.
rm -rf var/*Optionally, delete much of media/ folder local content:
cd media
rm sitemap.xml
rm -rf catalog/* vendor/* tmp/* wysiwyg/* upload/* Create an archive file and move to your new installation.
cd mycopy
tar -czf code.tgz public/htmlLocalise
Create or edit 2 files for the new environment:
.htaccess - to allow Apache the access it needs. Copy from or modify distribution .htaccess.* files
app/etc/local.xml - database parameters, https://myinstance.ticketebo.com.au/MYADMINKEY
robots.txt - choose from robots.txt.testsites or robots.txt.live distribution filesMYADMINKEY is a deliberately obscure string such as asdf23494cmwe4 that is used to access the admin login. We have a convention for this, please ask - not described here for security reasons.
File and Folder permissions
TODO: This is not complete
Assuming your htdocs root folder is /home/mynewinstance/public_html and you are running on Debian or Ubuntu and Apache.
In general, all files should have the same GROUP. This allows Apache to read them. File OWNER can be whatever you like, as long as secure, EXCEPT where Apache/Magento needs to write files. You can handle this either by group write permissions or by letting the Apache process own the folders.
These folders have been identified so far as needing write permission:
var/
media/ or more specifically:
media/upload
media/catalogA simple cribsheet:
cd /home/mynewinstance/
chown -R root:_www public_html
cd public_html
sudo chmod -R o+w var/ media/ app/etc/
chmod -R g+w media app/etc
TODO: verify wordpress media folder permissionsClone db
- Dump existing installation db using mysqldump.
- Open with vi editor. Change all instances of old.ticketebo.com.au string to new.ticketebo.com.au. E.g. www.ticketebo.com.au to dev.ticketebo.com.au. The standard vi command for this is :g/www.ticketebo.com.au/s//dev.ticketebo.com.au/g
- Copy the file to new installation and restore with mysql command line client
mysqldump --databases ticketebo -u ticketebo -p > live_copy.sql
vi live_copy.sql
:g/www.ticketebo.com.au/s//dev.ticketebo.com.au/g
and find and edit these lines, (it is also possible to run mysqldump without them):
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ticketebo` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `ticketebo`;
to
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `dev` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `dev`;
mysql -h hostname -u dev -p < live_copy.sqlMagento admin console configuration
You should now be able to use the Magento admin console:
https://myinstance.ticketebo.com.au/MYADMINKEY (see "Localise")TODO: This is a very basic beginning of a configuration guide. There is lot's more to document. But this should get you a basic working test platform with catalog, catalog search, one page checkout, purchase and success page operational.
CMS
Existing pages: About Us Customer Services Enable Cookies Home page 404 Not Found 1 Privacy Policy
Clean out unneeded Magento samples:
CMS > Pages - Delete all (TODO - not sure if some files still used)
CMS > Static Blocks - Delete all
CMS > Polls - Delete allConsole > System > Cache Management . Disable "Blocks HTML output"
Enabling System and Exception Logging
Log into your Magento Admin Backend.
Go to System > Configuration.
Click on "Developer" in the left side menu pane.
Open the "Log Settings" section.
Change the "Enabled" to "Yes"
Click "Save Config"Enable exception printing to browser (for dev only!!!)
cd errors mv local.xml.sample local.xml
Set up Attribute Sets
The Attributes are created automagically but not the sets:
Create a test Event Organiser, Event, Ticket Product
Ticketebo objects map as follows to the Magento general world:
- Event Organiser - Vendor; @deprecated functionality for this is provided by U nirgy d ropship extension modules.
- Event - Magento grouped product; with custom attributes in "Event" custom attribute set.
- Ticket Product/Type- Magento virtual product; with custom attributes in "Ticket" custom attribute set.
- Ticket - No Magento analogue
You can create any one using either core Magento functionality or using the admin Console "Ticketebo" menu ...
Create a Test vendor
Organisers > Manage Organisers
(Ticketebo-custom function is not yet available)
Create a test Event
Create a test Ticket
Test basic ticket purchase process
Payment Gatewey Testing
Our main payment method is eWay in Australia and Safecharge/Nuvei in the UK
Appendix A - Third party modules and add-ons
Magento Extension Modules
https://fishpig.co.uk/magento/wordpress-integration/installation/ free
Paid for:
Mageworx, Multifees - for booking fee Amasty, Manage Order Attributes - custom questions (@deprecated and will soon be removed) Mageworx, Donations - donations U nigry 3 modules (@deprecated and will soon be removed) Free: Inchoo - featured products on home page (carosel?)
Javascript
TODO: Out of date
https://github.com/aFarkas/html5shiv/tree/master/dist html5shiv http://jquery.malsup.com/cycle/download.html jquery.cycle.all.js - update 2017-0303 from v2.88 to v3.03
Appendix B - Sources used to create repository
Code
http://www.sunsean.com/idTabs/jquery.idTabs.min.js jquery.idTabs.min.js
http://malsup.github.io/jquery.cycle.all.js
https://raw.githubusercontent.com/scottjehl/Respond/master/dest/respond.min.js
Payment
How do I get set up?
- Summary of set up
- Configuration
- Dependencies
- Database configuration
- How to run tests
- Deployment instructions
Contribution guidelines
- Writing tests
- Code review
- Other guidelines
Who do I talk to?
- Repo owner or admin
- Other community or team contact
