stevebo Posted December 16, 2017 Share Posted December 16, 2017 How can I manually adjust a payment? My Cubecart setup uses an Authorize.net extension (hacked up to work with Payeezy) in "Authorize & Capture" mode. My store offers combinations of discounts that customers don't always get right, sometimes in our favor sometimes in their favor. I would like the ability to adjust their payment before settlement. How do I do this? Do I do it in Cubecart Admin or do I have to go to the Gateway company? I imagine the mechanism is a lot like adding a tip onto a restaurant bill. Thanks, Steve Quote Link to comment Share on other sites More sharing options...
bsmither Posted December 16, 2017 Share Posted December 16, 2017 (edited) To keep things straight, I would imagine there to be a three step process: 1. The customer checks out with making a payment in Authorize Only mode. This "reserves" an amount on their credit card but doesn't actually take it out. If the following steps do not happen, the 'reserve' is eventually released. Depending on the card's issuing bank, this could take up to a month (an extreme case, but I've seen it). (I'm not sure how the module's code records an Authorize - still at Pending or will it go to Processing.) 2. After consulting with the customer, or at least making the customer fully informed of the extra charges and discounts, the merchant needs to sign in to their payment processor's "Transaction Resolution" screen. There, adjustments are made and finalized. 3. The merchant then makes similar adjustments to the order at CubeCart's Order Summary screen. If not already known, and unless a plugin alters this, CubeCart accepts only one coupon per order. That one coupon either gives a fixed money amount or a percentage amount based on the sub-total, and/or affects shipping costs. When you say "the customer doesn't always get right", are you sure they can actually get to the right solution? Edited December 16, 2017 by bsmither Quote Link to comment Share on other sites More sharing options...
stevebo Posted December 16, 2017 Author Share Posted December 16, 2017 I guess I should explain the discounts. I have these two items in my shopping cart Discount (-$1) Adjustment ($1) Customers figure out their own discounts and select the corresponding adjustment using these shopping cart items. Sometimes they apply an incorrect discount. If you'd like further explanation of why the onus is on the customer to adjust their totals, you can see the details of the discounts Here or Here. The shopping cart just doesn't know who gets discounts and how much. I could probably write this into the MySQL database and hack up the code to reflect the correct discount, but that's a project for the future. I read somewhere along the way (that I can't seem to find anymore) that I can adjust a ticket up to 25% or something like that before settlement. And sometimes people overpay so I want to adjust the amount before it goes to settlement. My bankcard processor does NOT refund any fees when I issue a refund, so I like to get it right before settlement. This may be something to take up with the Gateway, but I thought there might be a way to "intercept" the transaction in Cubecart. PS: I'm using Authorize & Capture. Should I instead use just Authorize in order to make adjustments? Quote Link to comment Share on other sites More sharing options...
bsmither Posted December 16, 2017 Share Posted December 16, 2017 Try using Authorize Only. I would expect Payeezy to have this capability. Then, just be mindful that you will need to finish off each transaction manually. 1 Quote Link to comment Share on other sites More sharing options...
stevebo Posted December 18, 2017 Author Share Posted December 18, 2017 I've got another issue. Although I can create a product called Discount that costs -$1.00, and that it appears to work just fine when I click on "Your Basket" at the top right, when I go to checkout, the unit price of the discount is changed to $0.00 which kind of defeats the purpose. I suppose it's a way of making sure the Gateway doesn't allow people to withdraw money from my account by charging -$50 or whatever, but do you know a work around? Quote Link to comment Share on other sites More sharing options...
bsmither Posted December 18, 2017 Share Posted December 18, 2017 We would appreciate having some clarification. You have created a product that costs -$1.00. How is a customer restricted to purchase this product only when applicable? Is eligibility for this "Discount" product based on a complicated matrix of conditions? We ask this in the hope of brainstorming other possible solutions. Quote Link to comment Share on other sites More sharing options...
stevebo Posted December 18, 2017 Author Share Posted December 18, 2017 Yes, there is a complicated matrix of conditions that determine a customer's loyalty discount. The "loyalty discount" can be any $50 increment between $50 and $700 depending upon how often a customer has purchased from us before, information CubeCart can't possibly know without linking to the website's database at a minimum. There are also referral discounts available to customers who refer others to us. This also starts at $50 and is unlimited up until the full price of the cart. We won't start paying people if their discounts are higher than the price of their shopping cart though. We also run a 3-Day sale once a year whose discount is either $50, $100 or $150. So it's a complicated matrix of conditions which Cubecart has no way of knowing about. I'm OK with leaving the discount in the hands of the customer (even if they get it wrong sometimes). But when they get to the checkout screen, the -$1 discount item (of which a customer may "buy" 100 to get a $100 discount) shows a unit price of $0.00 instead of -$1.00. I can probably take time to find and alter this in the PHP code and upload it to GitHub but I'm not certain it's a desirable feature for everyone. I'm not crazy about hacking up the code only for my store because the next time I download the latest code updates from GitHub, I'll end up overwriting my changes or they will at least be out-of-sync. What are your thoughts? Quote Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2017 Share Posted December 19, 2017 Perhaps the Moderator could split this other issue off to its own conversation. Regarding the product having a negative price, there is just too much going on that needs looking into and getting fixed. Quote Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2017 Share Posted December 19, 2017 I found the essential statement that zeroes out the negative price. In cart.class.php, public function get(), ##Update Subtotals After fixing a few things in the Tax class, working on making sure the negative amount carries through. Quote Link to comment Share on other sites More sharing options...
stevebo Posted December 19, 2017 Author Share Posted December 19, 2017 Thanks for the tip! Near "Update Subtotals" I see the line if($product['price']<0) $product['price'] = 0; and can just comment it out. I'm not sure about the tax class and other items you're looking into however although I guess I can see that a tax applied to a negative amount will give negative tax (which seems like it makes sense so that people pay tax on only what they are charged). I also looked a bit further down the code and found: if ($this->_total < 0) { $this->_total = 0; } so it looks like even if I order so many discounts that the total is negative, the total will still get set to zero. I will happily change this code in my own installation, but I don't know if this is a feature that would have more widespread appeal or if there's something else I'm not considering. What do you think? Quote Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2017 Share Posted December 19, 2017 Still working it out. Quote Link to comment Share on other sites More sharing options...
stevebo Posted December 20, 2017 Author Share Posted December 20, 2017 For what it's worth, I successfully implemented this in my store by commenting out the line. I'm looking forward to what you come up with Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.