The Foxy forums are on the move!


Allowing store owner to revise orders

mzslatermzslater Member
in Bugs & Feature Requests edited August 2010
We're trying to help a client with a workflow problem and I'd love to hear how others have dealt with this.

The scenario is:

1. Customer places an order on the site.
2a. Customer calls and says "can you provide this special shipping option for me"?
2b. Or there's an availability issue with one of the products.
3. Store owner needs to modify the order. They can do this through their gateway, to modify the account, but this doesn't update the order in FoxyCart or generate a new receipt for the user.

What they'd like to do is be able to modify the order in FoxyCart and resubmit it so a new receipt email would be generate, and a revised charge would be processed.

Any suggestions?
  • lukeluke FoxyCart Team
    Hey mzslater. That sounds like one of the exact reasons we built this:

    That should help you out. Just cancel the original order and place it again yourself on behalf of the customer. You can even "hide" the original order in the FoxyCart admin so it doesn't confuse anyone.
  • Thanks for the tip. A couple questions:

    1. When I tried this out, the customer's credit card number did not appear to have been saved, so I couldn't complete an order on their behalf. Is there something I need to change in the setup?

    2. Suppose I have an order for 10 items and I need to add an extra shipping charge, or delete one item. I have recreate the order from scratch to make this adjustment?
  • lukeluke FoxyCart Team
    1. If they didn't select the option to save and encrypt their card, then you won't have it so you'll have to ask for the card over the phone. Also, if they check out as an anonymous user, you'll have to collect their other billing information over the phone and/or input it from the previous receipt.

    2. Yes, you would have to recreate the order if you wanted a "complete" order for them. Another option would be to just dynamically create a product on the fly as needed to make up for any payment differences. I'll run through some examples that might help:

    User is overcharged and you need to remove an item: You could void or refund the order from your gateway (let's say it was a $100 and you want to charge $90) and then add a dummy item in the cart and checkout to cover the real amount you want to charge them. You could use an add to cart link like so: ?cart=add&name=Price Adjustment&quantity=1&amount=90)

    User is undercharged and you want to add an item: This one is pretty simple, just create a new order with just the new item they need. If you don't want to charge shipping again, you can get creative with line item discounts in your custom add to cart string to subtract out the cost of the shipping.

    Hope that gives you some ideas to work with.
  • OK, I think I understand what is possible.

    For the store owner, creating URLs on the fly to add dummy items to the cart is a non-starter. We may build them a private page on their site that makes it easy for them to create one-off items.

    We're going to have to look for another solution for this customer that includes more order management workflows.
  • lukeluke FoxyCart Team
    Yeah, we are a little different than many systems, but we'd also say we're more flexible since you can build whatever you want and integrate with it. This page might give some more insight to our thought process:

    Good luck either way.
  • Inventory control is not the issue here -- it is order management. It doesn't have anything to do with FoxyCart knowing about the products. It only has to do with your providing things you can do with orders, like modify them, mark them as shipped, make lists of orders that need to be shipped, etc.

    I understand that this isn't where you've focused, and that's fine for simple needs. But we're finding that once a site is dealing with more than the occasional order, they need something more. We don't want to build the order management flows into the CMS; what we'd like to have is a more complete, third-party shopping cart and order processing solution.
  • lukeluke FoxyCart Team
    Thanks for the reply. That page focuses on inventory, but also has some of our philosophy behind the decisions we've made which I thought might be helpful.

    As far as order management workflow, you don't use a Quickbooks, CRM or accounting package to manage that? Our hope is to avoid duplication of data and workflow tasks but it sounds like we may be missing out on real needs that aren't commonly addressed in other systems. Most experience I've had with larger companies doing lots of orders take their e-commerce order data and import them into a different systems like ERP packages where they handle all of that workflow, especially when they have multiple sales channels and brick and mortar shops.

    Thanks again for the continued dialog, we really appreciate knowing what the needs are out there and how we are (or aren't) meeting those needs.
  • These are small (generally one-person) businesses with minimal infrastructure, no CRM, probably only aggregate data going into Quickbooks. But if they start getting more than a few orders a day, or have much need to revise orders after they have been placed, the simple solutions we've been providing with FoxyCart become inadequate. It is already too complex for them that some things they need to do in the CMS, some in FoxyCart, and some on their gateway site.

    A solution like Shopify or Big Commerce may the better solution for these customers, but they like the complete design flexibility that Webvanta provides for the database and site presentation, as well as its ability to include a lot of content beyond the product info.

    What we'd like to have for these customers is a complete hosted online store back-end, that takes the product info for each order from a form submit, as does FoxyCart, so we can still provide the catalog and product pages.
  • brettbrett FoxyCart Team
    Thanks for the dialog. When you say "complete hosted online store backend," can you clarify what features your users are generally looking for? This idea of an order management system done in a FoxyCart style (ie. not an all-in-one solution, highly flexible but perhaps not necessarily turn-key) has come up internally, and we're always looking to get a better feel for real-life use cases.
    If you want to lay it out in a little more detail I'd actually love to hear. I can't promise we'll actually be able to do anything, but there may be quick things we can do to ease the pain, or there may be larger things that we can explore for the future. Either way, our goal is still to provide a powerful, flexible, and highly customizable e-commerce system for web professionals to provide to their clients.
  • Here's some quick thoughts:

    1. Have a status field for an order, and the ability to display and print lists of orders with a particular status. New orders have state "new", fulfilled orders have state "fulfilled", and probably there are a few other useful states.

    2. Be able to open an existing order, and mark it as fulfilled. Option to have this also trigger the funds capture, if you've set up for authorize-only on initial sale.

    3. Be able to open an existing order, modify it, and re-submit an adjusted payment (with a corresponding new receipt emailed to the customer).

    I'm sure there's much more that is possible, and I realize this is a slippery slope, but these are the key things that have come up for our customers.
  • lukeluke FoxyCart Team
    Thanks again mzslater, we definitely appreciate the input. We've talked about making the admin completely API based at some point and then building various integrations in MODx, EE, Drupal, Joomla, etc... that would allow others to customize it as needed, etc. That would let hosted providers build their own FoxyCart admin's directly in their system and such. Some day.

    So much to do. :)
  • brettbrett FoxyCart Team
    Typically you can only capture _less_ than what is initially authorized. (I also heard yesterday that there's usually a charge to adjust the capture amount, but I'm not sure how prevalent that is as I've never had experience with a merchant that did it as part of their order flow.)

    Is that something you're aware of, and if so, how do you or your clients typically get around it? It's something that comes up often, and I'd love to know more about how people approach it.
  • Luke, Brett,

    We'd like to see some of the features discussed in this thread as well. Specifically we'd like to be able to process refunds in foxycart and make changes to orders in foxycart (shipping address, partial refund, email address). Right now if a customer wants to change thier shipping address, we hide the order in foxy cart, issue a refund through the gateway, and tell the customer to re-place the order. Seems like a lot of work to correct, for example, a zip code typo.

    I know this is beyond the scope of what foxycart was designed to do. Maybe these type of features could be an add-on at an additional cost? This is something we're not interested in developing ourselves but something for which we would gladly pay an additional monthly fee.
  • brettbrett FoxyCart Team
    Thanks for the feedback. It's definitely something that we think about, and we do plan on doing _something_. Our biggest concern is how to make it flexible enough for the myriad requirements.

    As far as your specific workflow goes though, you could probably save your customer having to re-place the order themselves by using "Unified Order Entry", which effectively turns the FoxyCart checkout into a sort of virtual terminal:
  • I think 1 and 2 are really important.
    #1 particularly. To be able to mark a product as fulfilled, refunded, etc. Google Checkout has a great example of this.

    As a programmer, I think #3 would be really hard. However, if we have one field we can update on a transaction via the API, then we could handle all of the above. And we could do it with our own schema within that field.

    Example (I would use json):
    { order_status: 'open', product_1: 'shipped', product_2: 'out_of_stock', product_3: refunded, misc_changes: 'refunded $10 for shipping overage. Edited via'}

    That's an example schema that could be used. It could also work well w/ self-hosted downloads. You could store the download_times within that field.

    All of that to say: Being able to update the order status is pretty important. #2 would be really awesome.
Sign In or Register to comment.