The SUMO Heavy Industries Blog

Design / eCommerce / Business / Culture / Life

Archive for the ‘Development’ Category

Easy MailChimp Integration Into WordPress

January 6, 2012 by Sean Kennedy

[FULL DISCLOSURE] This plugin was developed by our very own Sean Kennedy, so you’ll probably get a biased view.

Easy MailChimp Integration

MailChimp Logo• Are you an avid user of MailChimp?

• Do You like WordPress?

• What about if we could somehow mash those two together — do you think that’s something you’d be interested in?

If so, RUN (don’t walk) and go download the plugin, Easy MailChimp Integration.

With just your API key and a list id, you can use a widget or a shortcode to put any of your saved list forms on your posts or pages. You can even use it in your custom templatesif you need a more custom solution.

FEATURES

• Create a Widget from any of your lists

• Add a Shortcode to any of your posts or pages

• Use a PHP snippet on any of your custom templates

• With one click, your list syncs and all your fields from MailChimp show up

• Custom classes on everything — style it to suit your needs using CSS

WHY IT’S THE BEST

All of the other MailChimp plugins I’ve tried for WordPress typically only do one thing well; that wasn’t good enough for me. I wanted the option to use my lists in any way that I wanted anywhere on the site. That’s where my plugin comes in. Easy MailChimp Integration is built to be used in the ways that suit your needs best.

You only need a Widget? Done. What’s that, you want it on specific posts only? No problem! You can do that with a shortcode. Oh no, you have 10 different lists and you want to use them all on your archives page?! No biggie, each list gets its own snippet. Need it to look different? It has unique ids and classes on everything. Do whatever you want!

TUTORIAL

1. Install/Activate the Plugin

 

 

 

2. Go to the Easy MailChimp page and set your API key.

3. Go to the list page

 

4. Import your list using the list id from MailChimp (even if it looks like this)

 

After that, you’re ready to go! If you have any questions, check out the FAQ page. If you notice any bugs or have a feature request, post it on the Github Issue Tracker or email me at sean@sumoheavy.com.

Pivotal Labs Tech Talk: Payment Processing Basics

September 27, 2011 by John Suder

Today at Pivotal Labs in New York City, our very own Robert Brodie led a Tech Talk on Payment Processing Basics. We’ve posted the slide deck below. We’ll be publishing a follow-up White paper on the subject shortly.

If you have any questions or info to share on this topic, feel free to post a comment below or send an email to hello@sumoheavy.com.

 

Capturing Payment on Shipment Creation in Magento

June 21, 2011 by Bob Brodie

Every shop owner – online and offline – knows that dealing with credit cards is a very complex subject. There are rules about storing cards, how long you can store them (if you need to at all), authorizations, captures, rules regarding those, and how to handle certain situations.

One easy step you can take to handle regulations is to only authorize at checkout. This is an easy change in Magento. Log into your admin, and go into the settings for your payment processor. You’ll notice something called “Payment Action”. For most, there’s “Authorize Only” and “Authorize and Capture”. PayPal is a little different; they use “Authorization” and “Sale” (same concept though). This is great. Set that to Authorize and you’re good to go. But wait – how do you actually get your money?

This is the not-so-fun part. When you ship every order, you’ll need to log into Magento, invoice the order by capturing online (Available in Magento 1.4.2.0 and higher), and then you’ll need to create shipments – either manually or via 3rd party integration.

A developer who does a lot of work with us, Kamil Durski, figured out a solution to this. Amazingly, it’s only 2 files. That’s right – 2. Why this functionality isn’t there is beyond me.

First, you’ll create app/code/local/SUMOHeavy/ShippingInvoice/etc/config.xml:

<?xml version="1.0"?>
<config>
	<modules>
		<SUMOHeavy_ShippingInvoice>
			<version>1.0.0</version>
		</SUMOHeavy_ShippingInvoice>
	</modules>
	<global>
		<models>
			<shippinginvoice>
				<class>SUMOHeavy_ShippingInvoice_Model</class>
			</shippinginvoice>
		</models>
		<events>
			<sales_order_shipment_save_after>
				<observers>
					<sumo_shippinginvoice>
						<type>singleton</type>
						<class>shippinginvoice/observer</class>
						<method>createInvoiceAndCapturePayment</method>
					</sumo_shippinginvoice>
				</observers>
			</sales_order_shipment_save_after>
		</events>		
	</global>
</config>

Then you’ll need to create app/code/local/SUMOHeavy/ShippingInvoice/Model/Observer.php:

<?php 
 
class SUMOHeavy_ShippingInvoice_Model_Observer extends Mage_Core_Model_Abstract {
 
	public function createInvoiceAndCapturePayment($observer)
	{
		try {
			$shipment = $observer->getEvent()->getShipment();
			$order = $shipment->getOrder();
 
			if (!$order->canInvoice()) {
				return $this;
			}
 
			$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice($savedQtys);
			if (!$invoice->getTotalQty()) {
				return $this;
			}
 
 
			$invoice->setRequestedCaptureCase('online');
			$invoice->register();
			$invoice->getOrder()->setIsInProcess(true);
	        $transactionSave = Mage::getModel('core/resource_transaction')
	            ->addObject($invoice)
	            ->addObject($invoice->getOrder());
 
	        $transactionSave->save();
 
			// Mage::getSingleton('adminhtml/session')->addSuccess($this->__('The invoice has been created.'));		
		} catch(Exception $e) {
			die($e->getMessage());
		}
	}
 
}

In the first file, we’re setting up or observer to watch the salesordershipmentsaveafter event. This means that after a shipment is committed to the database, we’ll capture the payment. In the observer file, we’re doing a few things:

1) Look up the shipping and order info:

$shipment = $observer->getEvent()->getShipment();
$order = $shipment->getOrder();

2) Check to see if the order can be invoiced

if (!$order->canInvoice()) {
	return $this;
}

3) Load all necessary info we need to process the transaction:

$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice($savedQtys);
if (!$invoice->getTotalQty()) {
	return $this;
}

4) Capture the funds online and save the order:

$invoice->setRequestedCaptureCase('online');
$invoice->register();
$invoice->getOrder()->setIsInProcess(true);
$transactionSave = Mage::getModel('core/resource_transaction')
	->addObject($invoice)
	->addObject($invoice->getOrder());
 
$transactionSave->save();

5) If we can’t capture, it will fail and present an error:

catch(Exception $e) {
	die($e->getMessage());
}

This is basic functionality and assumes that all orders are capturing against a live authorization. A great idea would be to extend the payment modules to store authorization tokens so that if you need to re-authorize the order you’d be able to. I’ve been keeping an eye on the subversion repository Magento 1.6.0.0 and one thing is really intriguing:

Added settings Authorization Honor Period and Order Valid Period into EC tab in the backend

I’m not 100% sure what this is going to accomplish in the end but have some ideas. It would be great if there’s some better CC handling methods in 1.6. If this makes it into the stable version, it could be a doorway to even greater opportunities.

Feel free to try this out, or add to it here: https://github.com/sumoheavy/SUMOHeavy_ShippingInvoice

Magento 1.6 Minimum Advertised Price (MAP)

June 16, 2011 by Bob Brodie

Magento 1.6.0.0-beta1 was released today, and has some pretty nifty features. One of those is an implementation of “Minimum Advertised Price”, or MAP. Many vendors enforce restrictions on how low of a price you can show on your site, until either adding it to your cart or performing come action. Here’s how to take advantage of this feature:

First, enable MAP. It’s under Admin > System > Configuration, on the Sales tab. There’s an accordion panel titled Minimum Advertised Price. Here’s your options:

  • Enable MAP – Yes / No
  • Apply MAP (default value) – This is the master switch. (For some reason, I couldn’t get it working unless this was set to yes – even if it was set to yes at the product level.)
  • Display actual price – This is another default setting. Your options are “In Cart”, “Before Order Confirmation”, and “On Gesture”. I’ll cover these in a minute.
  • Default Popup Text Message – This is the text that will show up at the bottom of the popup when “On Gesture” is enabled.
  • Default “What’s This” Message – This is the text that shows when you click the “What’s this?” link.
Next, create your item. I’m going to assume that you are familiar with this process. When you get to the Pricing tab, you’ll see three new options:

Under Apply Map:

  • Yes – This option will apply MAP to the product page
  • No – This option will cause MAP not to apply
Display Actual Price – In Cart

Display Actual Price – Before Order Confirmation

Display Actual Cart – On Gesture

Keep in mind that you shouldn’t rely on any beta functionality as it may go away in the stable version!


 

If you like information like this, subscribe to our feed or join our mailing list.

‘Magento Go’ Launches: Is It the Right Solution for You?

February 28, 2011 by John Suder

Magento is a powerful eCommerce development platform. It’s open-source, built on the powerful Zend framework and is supported by a fast-growing community of users. It’s a feature-rich platform that has most of the features you’d expect from top-of-the-line eCommerce platforms. The downside is that it’s a bit of an overkill for someone who might be looking to start an online store with only  a few products. The full Magento product has specific resource and hosting requirements and, while it looks and performs beautifully when set up correctly, it’s just too complex for the small eCommerce store operator.

Today, Magento fills in the gap for store owners looking to set up online shops with their new Magento Go solution. Magento Go is a SaaS (Software as a Service) and makes it easy for small business to get up and running, quickly and easily. There is no software required, no servers to manage, and very little technical know-how is required to get started.

Magento Go includes these key benefits for small and emerging merchants:

  • PCI Level-1 certified solution
  • Fully supported by their team of experts via email and/or phone
  • Complete Design Control
  • Industry-Leading SEO
  • Support for Multiple Languages and Currencies
  • Powerful Coupon and Discount Tools


For Developers: The Magento Go Platform

Magento will soon launch the Magento Go Platform, which will allow developers to build applications for Magento Go. The Magento Go Platform features a full range of APIs that will expose all of Magento’s functionality, both front-end and back-end, to developers. The Platform uses best of breed open standards, such as OpenSocial and OAuth, and developers can use any programming language to create applications.

Magento Go Apps will work both on the SaaS and the deployed products of Community, Professional, and Enterprise Edition – enabling developers to write applications once and deploy them across all of Magento’s solutions.

Conclusion

If you’re small business looking for a Magento store, without the learning curve or resources required, Magneto Go may be a good starting point for you. Magento Go gives you the starting point and resources to grow your online business.

PHP Developer – Job Posting

November 16, 2010 by Bart Mroz

SUMO Heavy Industries is a Digital Commerce Agency. We are looking for talented PHP developers to work with us on building and customizing ecommerce sites and building new tools for retailers. You will be working with a global team of branding, design, development, and marketing professionals. We are currently looking for contract to hire.

Designing, developing, implementing and maintaining web software applications under the direction of senior technical staff

  • Debugging and troubleshooting software defects
  • Creating and maintaining code documentation
  • Participating in the review of business requirements and functional specifications providing analysis and feedback
  • Delivering software code that is built to scope and within the agreed upon goals
  • Working as a team member on large accounts, understanding how a team operates and what is expected of the various roles on the project
  • Shifting between a creative and a technical focus depending on the project need and/or the type of project
  • Rapidly producing interim deliverables (such as prototypes, proofs of concept, etc.) in addition to the final live site or application.
  • Providing day-to-day support, troubleshooting and bug fixing for our existing clients
  • Reporting to project managers any risks or possible delays
  • Taking initiative to research and learn emerging technologies
 

What we need you to know:

  • 1-3 years experience working with PHP5.x and MySQL
  • 1+ years experience with MVC frameworks and CMS platforms (Drupal, WordPress, Zend Framework, etc)
  • Good understanding of object oriented programming concepts
  • Comfortable developing and debugging applications in a Unix/Linux environment
  • Experience with AJAX techniques using modern JavaScript libraries
  • Knowledge of web application security considerations
  • Experience with source control software
  • Comfortable documenting code
  • Comfortable working closely with a UX team
  • Basic Knowledge of SEO best practices
  • Effective verbal and written communication skills
 

The hope is that you also have these skills:

  • Experience with the Magento Platform or Zend Framework
  • Capable of debugging a web application from hardware to client browser
  • Familiar with UML and ERD
  • Experience with unit testing, specifically phpUnit
  • Interactive web agency experience
  • Awesome at ping pong
 

To Apply please send the following to careers@sumoheavy.com ( – required)

  • Name
  • Email
  • Cover Letter
  • Linkedin *
  • Phone
  • Website
  • Twitter
  • Location
  • Smoke Signals Number
  • Make me laugh

New Site Launch – PYT Philly

October 15, 2010 by Bart Mroz

In the midst of creating awesome work for our eCommerce clients we sometimes like to work on a special project. This time we worked on our friend’s site – one of our favorite burger joints. We redesigned the site and used WordPress for easy content management. Now you should go visit the place! www.pytphilly.com

Enhanced by Zemanta