Помощь Prestashop 1.7 WebService

sergiykhd

Prestashop Expert
Регистрация
17 Апр 2013
Сообщения
1.230
Реакции
1.150
Всем привет!

Стоит такая задача: по апи обновлять только кол. товара. В самих настройках веб служб нет поля products_quantity.

Может кто сталкивался - сэкономьте мне время. Спасибо!
 
Всем привет!

Стоит такая задача: по апи обновлять только кол. товара. В самих настройках веб служб нет поля products_quantity.

Может кто сталкивался - сэкономьте мне время. Спасибо!
Приветствую! Создайте файл WebserviceRequest.php. Поместите в него такой код:
Код:
   class WebserviceRequest extends WebserviceRequestCore{
      
        public static function getResources(){
          
            $resources=parent::getResources();
          
            $resources['product_quantity'] = array('description' => 'Update product quantity only', 'class' => 'ProductPrice', 'forbidden_method' => array('POST', 'DELETE'));
            ksort($resources);
            return $resources;
          
          
        }
    }

Далее создайте файл ProductPrice.php. В него добавьте такой код:
Код:
   class ProductPriceCore extends ObjectModel{  


        /** @var string Object last modification date */
      
        public $date_upd;
        public $id_product;
        public $active;
        public $quantity;
              
        public static $definition = array(
            'table' => 'product',
            'primary' => 'id_product',
            'fields' => array(
                                'id_shop_default'           =>  array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
                                'active'                    =>  array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'),
                               // 'prestashop_product_id'  =>  array('type' => self::TYPE_INT,  'required' => true),
                                'date_upd'                  =>  array('type'  => self::TYPE_DATE, 'shop' => true, 'validate' => 'isDate'),
                                'quantity'                  =>  array('type' => self::TYPE_HTML, 'shop' => false, 'validate' => 'isInt', 'required' => true),
                                )
            );
        protected $webserviceParameters = array();
    }
И закиньте их (файлы) в оверрайды, имеющие такие пути:
../override/classes/webservice/WebserviceRequest.php
../override/classes/ProductPrice.php

Если будет присутствовать ошибка (зависит от ваших настроек VPS/VDS и PHP) то можно раскомментировать prestashop_product_id
 
Всем привет!

Стоит такая задача: по апи обновлять только кол. товара. В самих настройках веб служб нет поля products_quantity.

Может кто сталкивался - сэкономьте мне время. Спасибо!

Используйте Для просмотра ссылки Войди или Зарегистрируйся
 
Каким образом? Синхронизация происходит по ключу.

Уточните вопрос.

Я указал, что достучаться к количеству в версии 1.7.x можно через webservice Для просмотра ссылки Войди или Зарегистрируйся
Ключ для webservice Вы можете создать в админке НАСТРОИТЬ/Расширенные параметры/Веб службы
 
Уточните вопрос.

Я указал, что достучаться к количеству в версии 1.7.x можно через webservice Для просмотра ссылки Войди или Зарегистрируйся
Ключ для webservice Вы можете создать в админке НАСТРОИТЬ/Расширенные параметры/Веб службы
вы пишите: Используйте Для просмотра ссылки Войди или Зарегистрируйся - вопрос куда его вставлять?
 
вы пишите: Используйте Для просмотра ссылки Войди или Зарегистрируйся - вопрос куда его вставлять?

Я использую внешний источник. А именно 1С. И данные передаю в API извне. Использую GET запросы для чтения и POST запросы для добавления/изменения. Что-то типа ...
Для просмотра ссылки Войди или Зарегистрируйся

Вот дока по вопросу
Для просмотра ссылки Войди или Зарегистрируйся
или
Для просмотра ссылки Войди или Зарегистрируйся

С созданием модуля в самой престе я помочь не смогу.
 
Последнее редактирование:
И закиньте их (файлы) в оверрайды, имеющие такие пути:
../override/classes/webservice/WebserviceRequest.php
../override/classes/ProductPrice.php

Если будет присутствовать ошибка (зависит от ваших настроек VPS/VDS и PHP) то можно раскомментировать prestashop_product_id

Этот методе под 1.7 не подходит, т.к в этой версии в базе products_quantity - не используемое поле. Поле с запасами перенесено с ps_product (products_quantity) в ps_stock_available (quantity и physical_quantity).
 
Назад
Сверху