Programming

Custom Templates using Headway Connect and Jigoshop

One of the things we found when we shifted to the Headway Connect plugin is that it turns off the Jigoshop template loader. While this makes it simple to customize to insert Jigoshop into your headway grid, it makes it more difficult to customize the layout of the content.

There are 3 general steps to being able to do this:

  1. Create a Headway Child Theme (how to create a headway child theme)
  2. Insert the Jigoshop block into your Headway Grid via Headway Connect
  3. Customize your Jigoshop template with Jigoshop hooks (how to customize Jigoshop with hooks)

This can be a lot to take in, if you have questions on how to make it work, leave us a comment and we’ll respond as soon as we can.

Post by +Darryl Jung

Jigoshop and Headway Themes checkout frozen, waiting indicator keeps spinning.

Recently our Jigoshop checkout page stopped working. When our customers would try to complete the checkout process they would get a waiting indicator that would force them to wait forever to checkout.

Our system had the following software versions

  • Jigoshop 1.2.3
  • WordPress 3.4.1
  • PHP 5.3.10
  • Headway Themes 3.2

After a long conversation with Jigoshop support we investigated this problem ourselves. It turns out that the ajax admin handler that processes checkout requests for Jigoshop calls ob_clean() before returning a response. We found out that the call to ob_clean() was causing php to hang indefinitely. As a result request made to the jigoshop checkout ajax handler were not being returned. For some reason this error was not being reported in the php.log file.

Further investigation revealed that source of the issue was the fact that Headway Themes was initializing the output buffer using a call to ob_start with ‘ob_gzhandler’, passed as a parameter. Unfortunately our php was not configured to use zlib library for output compression, which is what this call specifies. Output compression is controlled using the zlib.output_compression setting in the php.in file. To enable output compression we would have to set zlib.output_compression=On, the default is Off. In our installation we are not able to control the php.ini file, fortunately we are able to override this Headway Themes setting using the headway_gzip filter. We added the following code to the functions.php file for our headway child theme.

// functions.php
function atlas_noBuffer() {
return false;
}
add_filter(‘headway_gzip’,'atlas_noBuffer’);

This seamlessly resolved the issue for us.

Resources:

Git Ignore Templates

One of the beauties of using git is the ability to share useful code. Ironically one bit of useful code is the .gitignore file.  For those just getting started with git this is a file that allows you to ignore specific files or directories when committing code into your repository.  If you’ve had the opportunity to write code in multiple languages or on multiple platforms you know that each platform, framework, and or language has different files that need to be ignored.

Github has a useful repository of ignore file templates located here.  These templates will help get you started with a new project.

What is a CRM?

CRM stands for Customer Relationship Management and is a database that holds all of your customer information.  Various types of customer information can be stored including contact information, communication history, deal details, task lists and sales forecasting.  Having this information available in one place instantly creates verification, velocity and visibility for your sales channels.

 

Verification

I know half of my marketing works.  I just don’t know which half.   – unknown

With a CRM all of your lead, account and opportunity information can be stored in a single location and tracked in real time.  Reports can be generated to measure performance by sales channels and sales representatives.  Based on this data decisions can be made whether to continue with your current marketing activities or to explore other lead generation strategies.

 

Velocity

 

Collecting customer information can be a tedious process when many of your employees deal with the same customer.  Having a database for customer information can save you time, effort and money.

Opportunities can be lost to a competitor if proposals are not submitted in a timely manner.  With a CRM activities can be scheduled and tracked so nothing falls through the cracks.  Reminders can also be set so tasks are not forgotten.  As deals are created quicker, more deals can be pitched and won.

 

Visibility

 

Source: Salesforce.com

 

Have you ever wondered how much revenue to expect next month from the deals that you are working on currently?  With a CRM, you can estimate sales revenue and product demand.  Based on this data you can forecast with confidence.