I have the following ajax script I am testing. I really suck at module development, so was trying to do it this way. Why isn't the dynamic price reflecting correctly on the cart page when the product is added? I've logged var_dump($product->debug()); and it has the correct variables custom price, original custom price, and isSuperMode (established numbers and true).
The ajax call:
<?php
//error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
require_once('/var/www/Staging/public_html/app/Mage.php');
umask(0);
Mage::app();
//ensure that the value is legitimate
if($_POST && is_numeric($_POST['value'])){
$price = $_POST['price'];
}
//pass this in your ajax call for the add button
if($_POST && is_numeric($_POST['product_id'])){
$product_id = $_POST['product_id'];
}
$helper = Mage::helper('core'); //for translation
$block = new Mage_Catalog_Block_Product_View(); // not best practice, but neither are standalones
$product = Mage::getModel('catalog/product')->load($product_id); // no need to use the _ here, it's not protected/private;
// Set the custom price
$product->setCustomPrice($price);
$product->setOriginalCustomPrice($price);
// Enable super mode on the product.
$product->getProduct()->setIsSuperMode(true);
echo ('Custom Price is ' . $product->getCustomPrice() . '; '); //has correct value
echo ('Custom Original Price is ' . $product->getOriginalCustomPrice() . '; '); //has correct value
?>
This is the function that has the ajax call. Post variables are correct. It invisibly selects the applicable dropdown selection of vendor attribute on the configurable products page and the last line adds it to cart.
function selectAndAddToCart(value)
{
var product_id= <?=$product_id ?>;
var colorSelected = $j("#attribute92 option:selected").val();
$j('#attribute136 option[value="' + value + '"]').prop('selected',true);
$j('#attribute136').removeClass('validation-failed').addClass('validation-passed');
var price = newPriceArray[value][colorSelected];
console.log('The newPriceArray in selectAndAddToCart ' + price); //this is logging correctly
//Save price in system
$j.ajax({
type: "POST",
url: "/ajax_calls/savePrice.php",
data: { 'product_id': product_id, 'price': price}
}).done(function() {
console.log('Prices have been updated in system');
//initiate add to cart function
productAddToCartForm.submit(this);
});//end inner ajax request
}