Jump to content

Enviar productos via API prestashop


Recommended Posts

Hola, acudo a la comunidad  ya que la doc de prestashop es escasa y no del todo clara. Queremos integrar un ERP a la API prestashop. (1.7.8.8)

Tengo las siguientes dudas puntuales que no puedo resolver:

1- Como envio un producto con multiples categorias? El unico campo de caegoria que veo para enviar es id_category_default, no veo en el esquema un campo que sea id_category, y en ese caso como separaria los id de las categorias?

2- Como asigno las imagenes a los productos? Hice mal en suponer que si creo links de las imagenes en base al codigo de referencia del producto las voy a poder asignar en algun campo url_image.

Desde ya muchas gracias

Link to comment
Share on other sites

Hola:

1- Aquí esta la doc: https://devdocs.prestashop-project.org/8/webservice/resources/products/. Las categorías son asociadas al producto y las puedes encontrar dentro del XML en <associations> <categories> <category> <id>

2- Aquí está la doc: https://devdocs.prestashop-project.org/8/webservice/tutorials/advanced-use/image-management/

Suerte

Link to comment
Share on other sites

14 minutes ago, ExpertoPrestaShop said:

Hola:

1- Aquí esta la doc: https://devdocs.prestashop-project.org/8/webservice/resources/products/. Las categorías son asociadas al producto y las puedes encontrar dentro del XML en <associations> <categories> <category> <id>

2- Aquí está la doc: https://devdocs.prestashop-project.org/8/webservice/tutorials/advanced-use/image-management/

Suerte

Muchas gracias. Lo revisaré, no habia tenido en cuenta esa seccion de la doc para revisar en las imagenes

Link to comment
Share on other sites

Buenos dias, tengo el siguiente error al intentar subir productos. PS 1.7.8.8 php 7.4:

Los datos se envian correctamente y se crean los productos, aparecen activos, con precios y asociados a sus categorias. El gran problema es que si no entro al backoffice y le doy a guardar de forma manual, NO SE PUBLICAN.

Esto es lo que envio, utilizando la libreria prestapyt. Creeria que los datos estan bien o no se si hay algun campo que fuerce esto que me este faltando.

data['product']['id_manufacturer'] = ut.buscar_manufacturas(id, cursor)
            data['product']['name']['language']['value'] = fila['despub'].strip().upper()
            data['product']['description']['language']['value'] = fila['desamp'].strip()
            data['product']['description_short']['language']['value'] = fila['desred'].strip()
            data['product']['active'] = "1"
            lw = fila['despub'].strip()
            precio = str(ut.vcalpre('POLO', cursor, id, cotdolar, LISTA, DESCUENTO_1))
            data['product']['price'] = precio
            data['product']['wholesale_price'] = "0"
            data['product']['id_category_default'] = ut.buscar_categorias(fila['id_wcategorias'], cursor)
            data['product']['show_price'] = "1"
            data['product']['id_shop_default'] = tienda
            data['product']['is_virtual'] = "0"
            data['product']['state'] = "1"
            data['product']['online_only'] = "0"
            data['product']['low_stock_alert'] = "0"
            data['product']['available_for_order'] = "1"
            data['product']['indexed'] = "1"
            data['product']['ean13'] = fila["num_art"]
            data['product']['reference'] = fila["num_art"]
            data['product']['quantity'] = "0"
            data['product']["width"] = str(fila["ancho"])
            data['product']["height"] = str(fila["alto"])
            data['product']["depth"] = str(fila["largo"])
            del data['product']['position_in_category']
            del data['product']['quantity']
            del data['product']['associations']
            del data['product']['manufacturer_name']

Link to comment
Share on other sites

24 minutes ago, ExpertoPrestaShop said:

La forma mas simple es que revises directamente los datos en la BD, tablas ps_product y ps_product_shop principalmente. Compara un producto que hayas creado a través de tu librería vs uno que hayas guardado desde el BackOffice. Probablemente encuentre rápidamente la diferencia. Suerte!!

image.thumb.png.b031d6854e0d54c332bee618120626bb.png

 

Esta es la unica diferencia que encuentro, los productos que le di a guardar y se muestran tienen "301-category" en el campo redirect_type. Deberé agregarlo al codigo que estoy enviando? Deberia generarse solo ya que no es un campo obligatorio

Link to comment
Share on other sites

3 minutes ago, leonardomarinio said:

image.thumb.png.b031d6854e0d54c332bee618120626bb.png

 

Esta es la unica diferencia que encuentro, los productos que le di a guardar y se muestran tienen "301-category" en el campo redirect_type. Deberé agregarlo al codigo que estoy enviando? Deberia generarse solo ya que no es un campo obligatorio

Los valores por defecto deben estar asignados a la variable correspondiente en la clase Product.php por ejemplo en ese caso: 

image.png.f4422a8a2eb5f128ba9bbd6934a890e9.png

Así que no, no deberías tener que asignarle un valor a ese campo. De igual forma no creo que ese fuera el problema. Revisaste también la tabla ps_product_shop y las demás relacionadas a productos?

Link to comment
Share on other sites

12 minutes ago, ExpertoPrestaShop said:

Los valores por defecto deben estar asignados a la variable correspondiente en la clase Product.php por ejemplo en ese caso: 

image.png.f4422a8a2eb5f128ba9bbd6934a890e9.png

Así que no, no deberías tener que asignarle un valor a ese campo. De igual forma no creo que ese fuera el problema. Revisaste también la tabla ps_product_shop y las demás relacionadas a productos?

En product_shop me señala lo mismo que comente recien, en las otras tablas product no hay datos o bien no hay diferencias. Es lo unico que aparece

Link to comment
Share on other sites

  • 1 year later...

¿ pudiste solucionarlo ?, tengo exactamente el mismo problema

 

Me respondo por si le puede ser de ayuda a alguien, el problema esta que el campo cache_default_attribute ps_product_shop se crea por defecto a 1 y debe estar en 0

Edited by juan_vil (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...