cancel
Showing results for 
Search instead for 
Did you mean: 

api rest magento 2

SOLVED

api rest magento 2

Buenos dias, tengo una duda sobre de donde puedo encontrar los archivos de la api rest de magento 2.1.3, especialmente donde esta la función de agregar productos, lo que quiero es que me agregue unos datos en una tabla adicional.

 

me podrían ayudar?

9 REPLIES

Re: api rest magento 2

Hola @Korinho,

 

En los módulos puedes ver las definiciones en los archivos /etc/webapi.xml.

Por ejemplo, para el módulo Catalog, vendor/magento/module-catalog/etc/webapi.xml

Allí verás referencias a interfaces, que si analizas luego en vendor/magento/module-catalog/etc/di.xml, verás cuál es la clase real que se ejecuta.

--
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution"

Re: api rest magento 2

entonces suponiendo que quiero modificar como se agrega un producto desde la api seria siguiendome de esos archivos??? aun no entinedo muy bien los xml.

 

lo que quiero es hacer que al agregarse un producto desde la api, me agregue unos datos en una tabla diferente y eso intentare modificar

Re: api rest magento 2

Hola @Korinho,

 

Quizás (y digo quizás porque debería de tener mayor detalle y hacer algunas pruebas) te sea suficiente usnado Observers y capturando el momento en que se guarda la información para replicar tus datos en otra tabla.

Aunque si esos datos son recibidos por el request, quizás debas hacer un override (investiga también los plugins en Magento) para modificar el comportamiento de un endpoint existente.

--
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution"

Re: api rest magento 2

ya encontre los archivos pero quiero hacer que la api al agregar un producto solicite un valor mas, que sea seller o seller_id 

const SKU = 'sku';

    const NAME = 'name';

    const PRICE = 'price';

    const WEIGHT = 'weight';

    const STATUS = 'status';

    const VISIBILITY = 'visibility';

    const ATTRIBUTE_SET_ID = 'attribute_set_id';

    const TYPE_ID = 'type_id';

    const CREATED_AT = 'created_at';

    const UPDATED_AT = 'updated_at';
    
    const SELLER = 'seller';

ahi tengo lo que me encontre, pensando yo que con eso lo pediria, pero me sale error, donde podria encontrar donde pediria la informacion?

{"product":{"sku":"test4","name":"test4","price":100,"status":1,"type_id":"simple","attribute_set_id":4,"weight":0,"customAttributes":[{"attributeCode":"category_ids","value":["42","41","32"]},{"attributeCode":"carats","value":24},{"attributeCode":"brand_or_stamp","value":"kasjdj"},{"attributeCode":"materials","value":1},{"attributeCode":"precious_stones","value":1},{"attributeCode":"tag","value":1}]},"saveOptions":true}

algo como eso solo agregar el seller

Re: api rest magento 2

una pregunta, el endpoint si hago uno tendria que volver a hacer el código para que agregue todo el producto??? osea no podría solo hacer un endpoint para la tabla que necesito llenar y que solo es la relación de que producto corresponde a que vendedor, y dejo como esta el código de agregar productos de magento y creo un nuevo que sea asignar un producto ya dado de alta a un vendedor???

Re: api rest magento 2

Hola @Korinho,

 

Si, por lo cual creo que es demasiado trabajo. Sigo creyendo que el plugin puede ser un mejor approach en este caso.
Aunque habría que evaluar también si lo que necesitas es una tabla separada o esa información del seller puede ser un atributo del producto.

--
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution"

Re: api rest magento 2

si pero como nada mas quiero que se agregue una funcion extra, estoy intentando crear la, pero al hacer la prueba me dice que no encuentra la ruta}}

<route url="/V1/mpapi/sellers/me/product/:productid/seller/:sellerid/price/:price/specialprice/:sprice/product" method="POST">
        <service class="Webkul\MpApi\Api\SellerManagementInterface" method="seller_product"/>
        <resources>
            <resource ref="self"/>
        </resources>
        <data>
            <parameter name="id" force="true">%customer_id%</parameter>
        </data>
    </route>

asi tengo la configuracion que hice en el webapi.xml

pero dice que aun no encuentra la ruta, me hace falta algo??? neesito generar el un upgrade como cuando instale ese addon???

Re: api rest magento 2

Hola @Korinho,

 

El endpoint contra el cual quieres impactar, vía POST, sería:

 

https://www.dominio.com/rest/V1/mpapi/sellers/me/product/:productid/seller/:sellerid/price/:price/specialprice/:sprice/product

¿Verdad?

 

 

--
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution"

Re: api rest magento 2

si, quiero que reciba esos datos