Показаны сообщения с ярлыком Програмирование. Показать все сообщения
Показаны сообщения с ярлыком Програмирование. Показать все сообщения

четверг, 18 марта 2010 г.

Magento. Задать и получить Product QTY

Стоит следующая задача:

Задать и получить Product QTY.

Сначала попробовал сделать это через $product->getQty();

Но как оказалось все данные что связанные с Inventory хранятся в другой модели. Поэтому делаем так:

   $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId); 
   $stock->getQty(); // получаем QTY
   $stock->setQty(1); // задаем QTY
   $stock->save(); // Обязательно сохранись, если были внесены изменения

Собственно вот.

среда, 10 марта 2010 г.

Ebay Api. Отсылаем запросы

Все запросы в eBay Api. Отсылаются в виде XML


Приведу пример:
// Указываем ключи, полученные на developers.ebay.com

        $this->devID = 'DEV ID';
        $this->compatabilityLevel = 681;
        $this->appID = 'APP ID';
        $this->certID = 'CERT ID';
        $this->serverUrl = 'https://api.sandbox.ebay.com/ws/api.dll';
        $this->siteUrl = 'http://cgi.sandbox.ebay.com/ws/eBayISAPI.dll?ViewItem&item=';
        $this->globalUserToken ='YOURTOKEN';
        $this->auth_url="https://signin.sandbox.ebay.com/ws/eBayISAPI.dll?SignIn&";  
        $this->Runame="YOUR RUNAME";

        // Функция которая принимает XML - запрос: $requestBody;
        // $type - это тип запроса. "AddItem, GetCategories .........."
        // $siteID - Id магазина с которым собираемся работать
        public function sendHttpRequest($requestBody, $type = '', $siteID = 0)
        {
         $this->siteID = $siteID;
         $this->verb = $type;
         //build eBay headers using variables passed via constructor
                // создаем Xедеры
         $headers = $this->buildEbayHeaders();

         //initialise a CURL session
         $connection = curl_init();
         //set the server we are using (could be Sandbox or Production server)
         curl_setopt($connection, CURLOPT_URL, $this->serverUrl);

         //stop CURL from verifying the peer's certificate
         curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0);
         curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);

         //set the headers using the array of headers
         curl_setopt($connection, CURLOPT_HTTPHEADER, $headers);

         //set method as POST
         curl_setopt($connection, CURLOPT_POST, 1);

  
         //set the XML body of the request
         curl_setopt($connection, CURLOPT_POSTFIELDS, $requestBody);

         //set it to return the transfer as a string from curl_exec
          curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);

         //curl_multi_info_read($connection);
         //Send the Request
         $response = curl_exec($connection);
         //close the connection
         curl_close($connection);

         return $response;
        }

        private function buildEbayHeaders()
        {
          $headers = array (
          //Regulates versioning of the XML interface for the API
          'X-EBAY-API-COMPATIBILITY-LEVEL: ' . $this->compatabilityLevel,
   
          //set the keys
          'X-EBAY-API-DEV-NAME: ' . $this->devID,
          'X-EBAY-API-APP-NAME: ' . $this->appID,
          'X-EBAY-API-CERT-NAME: ' . $this->certID,
   
         //the name of the call we are requesting
          'X-EBAY-API-CALL-NAME: ' . $this->verb,   
   
         //SiteID must also be set in the Request's XML
         //SiteID = 0  (US) - UK = 3, Canada = 2, Australia = 15, ....
         //SiteID Indicates the eBay site to associate the call with
         'X-EBAY-API-SITEID: ' . $this->siteID,
         );

         return $headers;
       }


Это методы класса, которые обрабатывают запрос, отсылают его на Ebay и возвращают ответ.

Продолжение следует.

понедельник, 5 октября 2009 г.

Восcтановление удаленных разделов. Ubuntu

Сегодня пытался поставить Windows на свой второй винчестер и случайно удалил все разделы на нем. А ведь там хранилася вся важная мне информация...
В общем начал искать методы как восстановить все, и нашел!!! Им и поделюсь.

Как оказалось все чертовски просто.

1) Сначала находим через менеджер пакетов и устанавливает утилиту GPART (не путать с GParted).

2)  Затем выполняем команду gpart /dev/sdb (sdb - название вашего привода)
После некоторых раздумий (у меня лично думало около часа). На экран выводиться следующее:



Guessed primary partition table:
Primary partition(1)
   type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)
   size: 89996mb #s(184313682) s(106494948-290808629)
   chs:  (1023/254/63)-(1023/254/63)d (6629/1/1)-(18101/254/63)r

Primary partition(2)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 9005mb #s(18442616) s(290808630-309251245)
   chs:  (1023/254/63)-(1023/254/63)d (18102/0/1)-(19249/254/59)r

Primary partition(3)
   type: 130(0x82)(Linux swap or Solaris/x86)
   size: 1623mb #s(3325448) s(309251250-312576697)
   chs:  (1023/254/63)-(1023/254/63)d (19250/0/1)-(19456/254/56)r

Primary partition(4)
   type: 000(0x00)(unused)
   size: 0mb #s(0) s(0-0)
   chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r 

Программка сама нашла удаленные разделы. Тут мы видим тип системы и ее размер.

3) Если нас все устраивает, выполняем команду


gpart -W /dev/hdb /dev/hdb

Ждем еще часик, и вуаля!!! Винчестер как новенький:)

Удачи!

понедельник, 21 сентября 2009 г.

Локализация модуля Magento

Решил написать про локализацию своего модуля в Magento.

На первый взгляд задача проста, но я не сразу понял как....

Сначала создаем папку, если таковой нет в /locale/ с названием вашей локали.

На моем примере русский язык - папка "ru_RU". Затем в этой папке создаем файл для вашего модуля. В принципе название можно выбирать любое, но рекомендуют называть Company_Module.csv. (Company - название Вашей компании, Module - название модуля).

В Magento локализация основана на Английском. То есть содержимое файла должно выглядеть следующим образом:


"Attributes for template","Аттрибуты для шаблона"
"Test", "Тест"
"Your english text", "Ваш русский текст"

В коде же вы пишете

echo Mage::helper('moduleName')->__('Attributes for template');


где moduleName - название Вашего модуля.

Также в конфиг файл модуля (/app/code/local/Company/Module/etc/config.xml)

вставляете следующие строки (если их нет)


<translate>
<modules>
<ebay>
<files>
<default>Company_Module.csv</default>
</files>
</ebay>
</modules>
</translate>


Далее меняете локализацию в настройках и должно все заработать.

П.С. Незабудьте перелогинится и обновить Кеш.