Сохранение валюты в Magento? - PullRequest
       32

Сохранение валюты в Magento?

1 голос
/ 11 августа 2010

Я пытаюсь получить некоторые курсы валют в отдельном php-файле в magento и сохраняю их:

<?php
// Initiate application
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
Mage::app();


// Code to create my $rates array
/** CODE **/

foreach ($rates as $currencyCode => $currencyRates) {
      Mage::getModel('directory/currency')
        ->setId($currencyCode)
        ->setRates($currencyRates)
        ->save();
        }

Ошибка:

<br />
<b>Fatal error</b>:  Uncaught exception 'Mage_Core_Exception' with message 'Cannot retrieve entity config: directory/currency' in /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/Mage.php:550
Stack trace:
#0 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Resource.php(161): Mage::throwException('Cannot retrieve...')
#1 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(265): Mage_Core_Model_Resource-&gt;getTableName('directory/curre...')
#2 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(247): Mage_Core_Model_Mysql4_Abstract-&gt;getTable('currency')
#3 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(402): Mage_Core_Model_Mysql4_Abstract-&gt;getMainTable()
#4 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Abstract.php(306): Mage_Core_Model_Mysql4_Abstract-&gt;save( in <b>/home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/Mage.php</b> on line <b>550</b><br />

Я оказываюсьsave () - метод, где это происходит.

Мысли?Не уверен, где начать отладку этого.Если бы я знал, где хранятся ставки, все было бы в порядке, поэтому я мог бы вставить их вручную ...

(Я взял код из класса Mage_Directory_Model_Currency_Import_Abstract , обычное сохранение черезинтерфейс magento работает нормально)

Ответы [ 2 ]

1 голос
/ 06 января 2011

Похоже, что вы пытаетесь сохранить каталог / валюту, когда вам нужно сохранить каталог / валюта. Самый простой способ сделать это - использовать метод saveRates в модели каталога / валюты, которую вы создаете. т.е.

Array
(
    [USD] => Array
        (
            [CAD] => 1.07
            [GBP] => .63
            [EUR] => .71
        )

)
$currency = Mage::getModel('directory/currency')->saveRates($currencies);
0 голосов
/ 11 августа 2010

Моя первая мысль - запуск Magento в контексте другого PHP-файла, но без всех исправлений, которые Magento предоставляет при начальной загрузке, кажется рискованным.

Путь наименьшего сопротивления, за очень немногими исключениямиПозволь Magento быть Magento и делай свое дело, чем меньше взлома, тем лучше.Имея это в виду, возможно ли для вас установить контроллер / действие Magento и вызывать эти данные оттуда или даже использовать их удаленно (например, используя file_get_contents)?

...