Zen Cart Logo
Forums / Built-in Shipping and Payment Modules / COD with no order finalization

COD with no order finalization

Locked

Views: 1,632

Results 1 to 13 of 13
This thread is locked. New replies are disabled.
9 Feb 2009, 9:21 PM
#1
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

COD with no order finalization

Hi all - awhile since we posted here.

Does anyone know with the current version of ZEN if there is a way to use the COD payment module to allow buyer to choose COD (for cash at local pickup) that would not finalize the order until the store owner did so in the back end. Kind of like put it into some sort of pending status that would not deduct the item from inventory until the order was processed by the store owner on the back end?

Thanks

11 Feb 2009, 4:54 PM
#2
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

Re: COD with no order finalization

Anyone?

Thank You

11 Feb 2009, 5:19 PM
#3
Kim avatar

Kim

Obaa-san

Join Date:
Jun 2003
Location:
West Coast, North America
Posts:
26,616
Plugin Contributions:
0

Re: COD with no order finalization

What status do you have set for the module in your Admin?

11 Feb 2009, 5:36 PM
#4
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

Re: COD with no order finalization

Hi, we currently turned off the COD but when it was turned on, the status was set to PENDING. Is this supposed to keep the item in INVENTORY until released to another status?

Thanks

11 Feb 2009, 5:38 PM
#5
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

Re: COD with no order finalization

I just checked to make sure - and when an order is placed with COD - the item is removed from STORE inventory but the order shows PENDING status in the backend.

11 Feb 2009, 6:54 PM
#6
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: COD with no order finalization

The stock, products_quantity, is reduced at the end of the order, regardless of the orders_status as the product is considered "purchased" or "reserved" for the customer who ordered it ...

If I order a Red Widget that I "purchase" via credit card or check or COD and say I will drive out to your store and pick this up ... but you do not put it aside for me and sell it to someone else ... when I get to your store I am going to have to say some nasty choice words for wasting my time and gas as you thought my "COD" was not as "important" as someone who paid in another manner ... :flex:

Are you sure this is something that you really want to do?

Stock tracking is currently managed based on if you have it turned on or not ... and if not a Download, then the Stock is adjusted with the order ...

You can custom code this to manage stock differently, but I would really be cautious on the affects this might have and issues with your customers ...

11 Feb 2009, 8:21 PM
#7
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

Re: COD with no order finalization

Ajeh:

The stock, products_quantity, is reduced at the end of the order, regardless of the orders_status as the product is considered "purchased" or "reserved" for the customer who ordered it ...

If I order a Red Widget that I "purchase" via credit card or check or COD and say I will drive out to your store and pick this up ... but you do not put it aside for me and sell it to someone else ... when I get to your store I am going to have to say some nasty choice words for wasting my time and gas as you thought my "COD" was not as "important" as someone who paid in another manner ... :flex:

Are you sure this is something that you really want to do?

Stock tracking is currently managed based on if you have it turned on or not ... and if not a Download, then the Stock is adjusted with the order ...

You can custom code this to manage stock differently, but I would really be cautious on the affects this might have and issues with your customers ...

Thanks for replying. I will explain the situation further so you can understand.

We normally sell all of our products online and ship them either via UPS or USPS. Payment is always via PAYPAL.

We have started allowing Local Pickup on some items but again they have always had to pay via PAYPAL. With all of this said, the current way our cart has worked is no problem.

We now have some customers that want to pay in Cash. As it stands now, we have to create a separate invoice outside of the cart, e-mail it to them and set a pickup apppointment. Then we must go into the site, find the item that was bought and remove it from inventory. What we would like to do is this.

Direct all customers to the site. They select a product, come to shipping screen and they select the exisiting Local Pickup shipping option. They come to the payment screen and instead of choosing PAYPAL, they select COD as the payment method. From that point it will complete the order from their point of view, issue them an invoice. On our side, the order will go into the system into a PENDING (or call it something else) status which will NOT deduct the item from store inventory until we change the status of the item to PROCESSING.

The reason for this is sometimes you have people who will say they are going to show up but never do for whatever reason. Or you have some wiseguy go on your store, do a purchase for several things (all of which would be deducted from inventory under the current process) and never complete the transaction.

What do you think?

11 Feb 2009, 8:43 PM
#8
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: COD with no order finalization

I am asking about what happens when you have 5 Widgets and I come to your site and order 3 for COD/Pickup and Fred comes and orders 2 for PayPal/Ship it and Bob orders 3 for PayPal/Ship it and I get to your store and there aren't any in stock because you didn't subtract any from inventory and went and let Bob get "mine" because I did the COD/Pickup ... :eek:

11 Feb 2009, 9:31 PM
#9
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

Re: COD with no order finalization

Ajeh:

I am asking about what happens when you have 5 Widgets and I come to your site and order 3 for COD/Pickup and Fred comes and orders 2 for PayPal/Ship it and Bob orders 3 for PayPal/Ship it and I get to your store and there aren't any in stock because you didn't subtract any from inventory and went and let Bob get "mine" because I did the COD/Pickup ... :eek:

Thanks again for the response

Our agent who will be doing the local pickup will have the ability to go into the backend of the store and move the order from the new pending status to delivered which would then remove the item from inventory.

I think I know what you are saying.

  1. Customer 1 purchases a Widget 1 (of which there is 1 item in inventory on the store) - chooses COD
  2. The order for Customer 1 is put to COD pending - the item is not removed from inventory - it still can be purchased by someone else
  3. Customer 1 is scheduled for a pickup appointment. During that time, Customer 2 comes and makes a purchase for Widget 1 using paypal. His order goes into normal pending status, the item is removed from inventory (inventory for this item now reads 0). Our orders to be shipped have a 1 - 3 day processing time.
  4. Customer 1 arrives for his pickup and since he made the order 1st, he is allowed to pick it up, the order is completed in the store back end, 1 item is deducted from inventory per the normal zen cart process (now bringing the inventory level for Widget 1 to "-1".
  5. Customer 2 is informed that Widget 1 is now BACK ORDERED (the same agent would do this in the back end) and they are given the option to wait for an additional WIDGET 1 to come to inventory or their order can be cancelled. If the order is cancelled, then in the back end, the order is deleted, and the inventory level for Widget #1 goes from "-1" to 0.

On the other hand, this could happen too:

  1. Customer 1 purchases a Widget 1 (of which there is 1 item in inventory on the store) - chooses COD
  2. The order for Customer 1 is put to COD pending - the item is not removed from inventory - it still can be purchased by someone else
  3. Customer 1 is scheduled for a pickup appointment. During that time, Customer 2 comes and makes a purchase for Widget 1 using paypal. His order goes into normal pending status, the item is removed from inventory (inventory for this item now reads 0). Our orders to be shipped have a 1 - 3 day processing time.
  4. Customer 1 never shows for his appointment. His order is canceled and the agent doesn't select restock product quantity as to not add an additional item to inventory.
  5. Customer 2 has his order shipped and all is well.
11 Feb 2009, 11:08 PM
#10
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: COD with no order finalization

Look in the orders class and in this section the stock is managed and you can alter it as you need it to work:

        if (DOWNLOAD_ENABLED == 'true') {
          $stock_query_raw = "select p.products_quantity, pad.products_attributes_filename, p.product_is_always_free_shipping
                              from " . TABLE_PRODUCTS . " p
                              left join " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                               on p.products_id=pa.products_id
                              left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                               on pa.products_attributes_id=pad.products_attributes_id
                              WHERE p.products_id = '" . zen_get_prid($this->products[$i]['id']) . "'";

          // Will work with only one option for downloadable products
          // otherwise, we have to build the query dynamically with a loop
          $products_attributes = $this->products[$i]['attributes'];
          if (is_array($products_attributes)) {
            $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
          }
          $stock_values = $db->Execute($stock_query_raw);
        } else {
          $stock_values = $db->Execute("select * from " . TABLE_PRODUCTS . " where products_id = '" . zen_get_prid($this->products[$i]['id']) . "'");
        }
11 Mar 2009, 6:22 PM
#11
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

Re: COD with no order finalization

Linda,

Thanks for pointing me to the right file. I see this code basically looks at the order and if a product is not tagged as downloadable (with some other things too) then it will subject the item from inventory.

What could we put in there that is a product is using a specific method of payment it will not subtract from inventory and go to say the PENDING product status but will subtract from inventory when it goes to the processing status in the order?

Thanks

11 Mar 2009, 6:55 PM
#12
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: COD with no order finalization

That would take a lot of customization ... :blink:

There is nothing right now, on a per product basis, to manage the Order Status ...

So you need to customize this for the Catalog and the Admin both to not touch the Stock for the products_id in the Catalog ... but to alter the stock for the products_id in the Admin based on changes to the Orders Status ...

While this could be done, it would take quite a bit of work to manage this especially if you get Orders with multiple products and such ...

11 Mar 2009, 7:28 PM
#13
jla avatar

jla

Zen Follower

Join Date:
Jul 2005
Posts:
128
Plugin Contributions:
0

Re: COD with no order finalization

Ajeh:

That would take a lot of customization ... :blink:

There is nothing right now, on a per product basis, to manage the Order Status ...

So you need to customize this for the Catalog and the Admin both to not touch the Stock for the products_id in the Catalog ... but to alter the stock for the products_id in the Admin based on changes to the Orders Status ...

While this could be done, it would take quite a bit of work to manage this especially if you get Orders with multiple products and such ...

Yes, I got to thinking about this too - and we decided to do the following.

Changed that orders placing using COD automatically go to the PENDING ORDER status on our site

Changed our SOP so that

  1. Staff member who is processing orders sees a PENDING ORDER and that order is COD - then they will go in and manually add the item back into inventory
  2. Changed posted policies regarding Cash at Pickup and items are still avaialble for purchase by other customers BEFORE COD orders are completed and NON-COD orders have priority over COD orders. COD orders that are picked up the soonest have priority over other COD orders. COD orders have time limit on how soon they must be picked up or order will be cancelled during daily maintenance tasks.
  3. Once COD order is completed the staff member processing completed orders will now go in and remove that item from inventory, etc.

A bit more work but probably better than dealing with the alternative at this time. Perhaps you all might consider coding this option in at some future date.