I am implementing a down-payment/multi-pay option on a higher-priced product, and I want to offer it as an attribute. Let's say the product costs $1,000... I want to be able to offer it at full price like a normal product, but also offer the customer the ability to only pay $500 at the time of purchase. If they choose that $500 option/attribute, their card will be charged for five additional monthly payments ($100 each plus a service fee amount, via the UC Recurring Payments and Subscriptions module) so that they pay the full amount plus fees over that time period.

By default, the Ubercart product attributes simply add their dollar amount to the dollar amount of the product. How can I use the attribute dollar amount instead of the product's dollar amount when that attribute is selected? One workaround would be to add a "no, I want to pay the entire amount now" attribute and price it with the normal product price, but that would not be ideal.


1 Answer 1


Looks like the Ubercart Ajax Attribute Calculations module will do the trick, at least somewhat... it will change out my product's "$0" base price for the attribute price, but it still does not technically "swap" the prices.

  • A little more info... What I ended up doing was pricing my product at $1000, and then adding a negative price to the attribute (-$500). So $1000 plus "-$500" = $500. This way I can have my cake (maintaining the correct "full price" of the product when no options have been selected) and eat it too (AJAX-ify the price and provide accurate pricing for the initial payment for my recurring billing program).
    – hockey2112
    Feb 27, 2013 at 15:28
  • How to check if the product is shippable where an item has two adjustments. For ex. one is hard copy with its own SKU and another is soft copy with its own SKU.? Any clue for drupal 8? Mar 30, 2019 at 18:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.