2013-06-04 2 views
0

У меня есть следующий сценарий ajax, который я тестирую. Я действительно сосать в разработке модулей, поэтому пытался это сделать. Почему динамическая цена не отражается правильно на странице корзины при добавлении продукта? Я зарегистрировал var_dump ($ product-> debug());, и он имеет правильную цену переменных, оригинальную пользовательскую цену и isSuperMode (установленные номера и true).Нестандартная цена Magento не отображается на карточке/checkout

Аякса вызов:

<?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 

?> 

Это функция, которая имеет вызов AJAX. Пост-переменные правильные. Он невидимо выбирает применимый раскрывающийся список атрибутов поставщика на странице настраиваемых продуктов, а последняя строка добавляет его в корзину.

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 

} 

ответ

4

Я думаю, кроме Продукт сохранить здесь не работает

заменить

Mage::app(); 

Для

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 
+0

Nope. Все еще не работает :( – CaitlinHavener

Смежные вопросы