Category Archives: Integrations

Meet PeopleMine, a more in-depth way to manage your customers

How well do you know your customers? Do you know the customers you’ve lost or the folks that are starting to not come in your doors as much? Hopefully you have some idea, but I’ll come back to the first question later.

MerchantOS users familiar with the Customers tab may already believe themselves to be experts on customer relationship management. While we have enough customer management features to shake a stick at, there are limitations as to what that tab and our reports can accomplish.

For instance, there is no way to look at spending trends for your local customers. In another scenario, it wouldn’t be an easy task to email your first-time customers with a special offer or send a thank you to your big spenders using MerchantOS alone. Well, for those of you looking to do advanced customer analysis, there is an integrated solution.

peopleminelogo Continue reading

Bike Shops: Buy Local Now

We’re excited to be working with SmartEtailing on the new Buy Local Now initiative. It has the potential to send customers to your store to buy products instead of shopping online.

Here’s how it works:

  1. A consumer finds the manufacturer web page for the product they’re interested in. For example CycleOps Fluid2 Trainer.
  2. The consumer sees the “Buy Local Now” button and clicks it.
  3. Shops in their local area are displayed. At the top are shops who are integrated with Buy Local Now and have the item in stock. Below are local shops who either don’t have it in stock or aren’t integrated.
  4. The consumer clicks “Buy Now” from one of the local shops.
  5. They are directed to the shop website and page for that product where they can purchase the product and select to pick it up in store (if their Ecommerce system supports that feature).
Buy Local Now Brand Product Page
Buy Local Now Shops Map
Buy Local Now Shop Page
Buy Local Now Brand Product PageBuy Local Now Shops MapBuy Local Now Shop Page

Integrated With MerchantOS

Good news! If you have a MerchantOS account you’re half way there. If you also have a SmartEtailing site with POS sync turned on then you’ve already crossed the finish line. Here’s what you can do right now if you want to get Buy Local Now:

We’d Love To Know What You Think

Please give us feedback on Buy Local Now and our integration with SmartEtailing.

Using Amazon SQS as a Messaging Bus

In a previous blog post I wrote about how we use a Message Queue server in a Message Bus design. Since that post was written we’ve moved from ActiveMQ to RabbitMQ and now we are moving to Amazon Web Service Simple Queue Service (SQS). I’m going to cover:

  • What is SQS?
  • The Message Bus design Pattern
  • How we’re using SQS to integrate with outside systems.
  • Bonus: I’ll also include how we’re looking at using SNS for notifications.

Intro to AWS SQS

Amazon Web Services are a suite of hosted services run by Amazon that are available on a pay per use basis. SQS (short for Simple Queue Service) is their messaging queue service. SQS operates much like other Queue servers, you can:

  • Create queues
  • Place messages on queues
  • Read messages off of queues.

One important difference with SQS is that there is no guarantee about the order that messages are delivered in. In most other stand alone queue servers messages are delivered in a First-In, First-Out (FIFO) manner. The primary reason that messages can be delivered out of order with SQS is a feature called message visibility. When a message is read from SQS it is no longer visible on the queue. This prevents multiple clients from getting the same message to process. But unlike some other queues, reading a message from the queue does not remove it. A client must explicitly acknowledge a message for it to be removed from the queue. If a client reads a message, but doesn’t acknowledge it, the message will become visible again a short time later. While the message is not visible other messages can be processed, and thus completed before the message becomes visible again.

What is a Message Bus

A Message Bus is a software design pattern that allows for message senders and receivers to be decoupled. This means that message senders and receivers can be added and removed without effecting other senders and receivers attached to the bus.

While we started with a message bus in our design for using SQS as a queue, we are not currently taking full advantage of the Message Bus design pattern as we use one sender class and one process for reading and distributing messages to the correct subscribers.

How we are using SQS

Now that we’ve covered SQS and the basic concept of a messaging bus, lets look at how we put it all together at MerchantOS.

Generating Messages

We have many different message types that are generated and placed on our queue (Item, Customer, Integration Specific messages, etc). Since we are generating all of these messages within our own application we have simplified our message generation code to one class that is used across our system. Using one central message producer allows us to reduce the overall architectural complexity of generating messages and placing them on the queue. This also allows use to integrate other message generators in the future as we need or want them.

Receiving Messages

On the receiving side we have used a few techniques to improve the reliability of receiving and dispatching of messages

Using a CRON to receive messages

To receive messages we use one CRON process that wakes up and forks child processes. These child processes are each responsible for taking one message off of the queue and forwarding it onto its appropriate destination. We have previously used separate processes for each endpoint that needed a message. The downside to this technique was again complexity of monitoring each process and diagnosing when issues arose.

Reducing Coupling

While using one parent process that creates worker processes has potential pitfalls as a point of failure, we have mitigated those by reducing the coupling of the worker processes to the endpoints that they call. One technique we used was to have the workers call the endpoint (typically an RPC endpoint on our API), post it’s message payload and disconnect without waiting for a response. Each endpoint becomes responsible for logging its success or failure. By keeping the workers short lived we reduce the overall impact of one worker failing.

Routing Messages

Another way that our queue usage has evolved is by consolidating all messages into one queue. Previously we used per account queues, which allowed for segregating accounts that might be generating many queue messages from those that only generate a few. In the long run we found that it failed to give us any practical benefit.

We now use a two queue system where all messages are first placed on a “priority queue”. These messages are read off and dealt with by the worker processes described above. If one account is generating many messages, or if we have determined that the endpoint they are calling is saturated and cannot process any more messages, they are re-routed to a delayed queue. Messages on the delayed queue are read once the message volume has reduced or the endpoint is ready to receive messages again.

This arrangement of a limited number of message producers, sending to a limited number of queues, being read by a limited number of consumers, has helped to reduce our queue complexity, improve the transparency of the message flow through the system, and given us better monitoring of our queue status.

Integrating SNS

Our next steps with SQS and our queue development is to create the ability to generate webhook callbacks that can be notified about messages on the queue. We are currently evaluating Amazon SNS among other options to provide a way to generate notifications. With a general notification framework in place it will allow for more complete workflows that include MerchantOS as one component, including potentially being able to create websockets for a richer client interface.

Wrap-up

Our queueing infrastructure has evolved over time to help us create decoupled integrations while reducing our application complexity. Amazon SQS is an integral piece in our ability to reduce our application complexity while also allowing us to scale as our user base grows and our messages per user increases. We’ve got some exciting changes coming to our queuing infrastructure that will allow for richer interactions with API clients. Watch our blog for more posts as we release these changes.

New Integrated Catalogs

We’re pleased to announce that we have added new vendor catalog integrations for Action Bicycle and Raleigh. These integrations ensure that the catalog information we have available in our system will be up to date and provides availability information for products from these vendors.

We have also added the new J&B distribution center in North Carolina to our availability information.

Feel free to send us your feedback about our vendor integrations to support@merchantos.com. If you have a vendor in mind you’d like to see integrated, please get in contact with them and see if they are willing to integrate with us. We are always looking for new vendors to integrate with and at improving our existing integrations.

Bike Shops – Move Inventory By Listing On amlbs.com

With brick and mortar retailers increasingly competing against online retailers for sales, there may be ways to combat online rivals on their own digital turf. One way is to list your available merchandise online. A would be buyer, for example, might be lured by picking up merchandise on their way home from work rather than waiting for (and sometimes paying for) shipping.

At My local Bike Shop (amlbs.com) recently launched a search site that lists available inventory for participating retailers. With a zip code and a product description, online researchers can find if the product they want is available at your shop.

Amlbs.com is a service of Vendor-Link Cycling which aggregates data, providing retailers with helpful analytics along with sell-through inventory levels to suppliers in order to optimize supply chain costs. MerchantOS customers can list with amlbs.com quickly at no extra cost. Sign up here.

We’ve always been very interested in services like this and have attempted but never completed integrations with both Google (Google shelved the project for now) and Milo (Purchased by Paypal) to perform similar functionality. We strongly believe that technologies like this should be embraced by retailers and over time inventory availability information from small retailers will be displayed alongside that of big box and online retailers in places like google product search.

Mercury Payment Systems Now Compatible With MerchantOS

Mercury Payment Systems is our newest integrated processor. With this addition we now have three partner processors total and one gateway that is compatible with several major platforms.

Payment Processing within MerchantOS got more restricted when we dropped Authorize.net support due to security issues with how their gateway is designed. We’ve been hunting for companies that meet both security and functionality requirements we have for gateways and Mercury Payment Systems fit the bill perfectly.

We’ve wanted to have an additional choice in processing for our customers for some time and we are thankful Mercury has the feature set needed and willingness to help us get an integration done.

Perkville Webinar Reminder!

Finally, the customer rewards program you've been looking for.

Hey there. I just wanted to give you a reminder about the MerchantOS-Perkville webinar tomorrow April 10th at 3 pm PST. You’ll learn about Perkville, a service that enables you to create a loyalty program in minutes with plans starting as low as $9 per month. It helps you get more email addresses from your customers and it drives loyalty, referrals and social media for your business.

The webinar will be setup through Fuze Meeting. You can use this link to join the meeting tomorrow at 3 or sooner, as there will be a limit of 45 attendees.

We’ll see you then!

For more information you can refer to the original post here or contact our support office at support@merchantos.com

Cheers!

Upcoming Perkville Webinar

Finally, the customer rewards program you've been looking for.
You may have heard some scuttlebutt on our latest integration, Perkville. You probably have more questions about what features it offers, pricing levels, and how it works with MerchantOS. You can get those questions answered in our upcoming Perkville Webinar featuring the founder of Perkville and the developer, Sunil Saha. He will be joined by two staff from MerchantOS, Christina Gilpin (VP of Customer Relations, aka, our Customer Advocate), and Ciara Wolfe (Customer Support Hero).

The MerchantOS-Perkville Webinar will be hosted on April 10th at 3pm PST. Mark your calendars!

Now if you haven’t heard anything on Perkville, now would be a great time to look into this up and coming software as a service. Rob Richards took the time to set up his integration in just 30 minutes, so I’m sure you can do in half the time. Here’s what he had to say about it.

How can it benefit your shop? MerchantOS does not have every feature in the book. Our design philosophy of Retail.Easy couldn’t realistically be met if we added every feature someone thought would be a really good idea. It would complicate our software and our developers are not going down that route.

One of the more common requests we hear of is a rewards program. Sunil would agree- you should be rewarding your recurring customers. It can help build retention and increase your shop’s revenue. Perkville integrates seamlessly with MerchantOS, so you get a robust rewards program and no further complications in MerchantOS. It’s definitely worth trying out, the first 30 days with Perkville are free.

We hope to see you there! We will continue to update you with the details of the webinar as it gets closer. If you have any additional questions in the meantime you can reach us at support@merchantos.com or give us a call at 866-554-2453 ext. 0

Cheers!

Everything You Need To Know About: Integrated Vendors

With the growing list of integrated vendors, this seems like a good time to recap the benefits of using them. Previously, this feature only benefited our customers in the bicycle industry.

After our software update integrated vendors are no longer exclusive to bike shops. Our newest integrated vendor, Bradley Caldwell, is one of the largest agricultural equipment suppliers in the U.S., and should be no stranger to our shops in the pet industry. We hope to see our list of integrated vendors continue to expand in a way that will help your shop manage purchase orders.

If you think your vendors belong on this list, talk to them about integrating with MerchantOS. We are capable, willing, and eager to work with them. Get your rep in touch with Nate Horter. He’s the guy that can make this happen for you.

Learn all about Integrated Catalogs in MerchantOS Help →