Jump to content

Recommended Posts

Buenos días,

 

estoy probando la modificación de un registro de productos de prestashop mediante webservice y tengo una duda:

 

como campos obligatorios me pide el id, price, link_rewrite y name pero al ejecutarlo me vacia el resto de campos que no he rellenado.

 

Solo quiero actualizar uno o dos campos en concreto, como el precio de coste, ¿tengo que construir todo el xml con todos los valores, no se puede que dando el id del producto y la etiqueta del campo que quiero modificar me cambie SOLO ese valor?

 

Gracias.

Link to comment
Share on other sites

Gracias por responder,

 

el problema es que no estoy usando php sino vb.net

 

Este es el xml que le mando:

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<product>
<id>1</id>
<price>15.881818</price>
<link_rewrite>
<language id="1">link_rewrite_value</language>
</link_rewrite>
<name>
<language id="1">product_name_value
</language>
</name>
</product>
</prestashop>

Yo pensaba que indicando la etiqueta id del producto y las etiquetas con los campos a modificar actualizaría solo esos campos del producto pero me obliga ha indicar los campos del ejemplo anterior y encima me borro los que no le indique.

Link to comment
Share on other sites

Buenos días,

 

he estado haciendo pruebas y he conseguido obtener la información de un producto por webservice y editar el campo quantity que es el que quiero modificar pero cuando lo ejecuto me dice Error: 400 Solicitud Incorrecta. Es el mismo XML que me da la api de prestashop salvo el valor cambiado de esa etiqueta.

 

¿Alguién sabe a que se debe?

Gracias.

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
  <product>
    <id><![CDATA[8]]></id>
    <id_manufacturer><![CDATA[0]]></id_manufacturer>
    <id_supplier><![CDATA[0]]></id_supplier>
    <id_category_default xlink:href="http://192.168.1.78/tienda/api/categories/2"><![CDATA[2]]></id_category_default>
    <new>
    </new>
    <cache_default_attribute><![CDATA[0]]></cache_default_attribute>
    <id_default_image notFilterable="true">
    </id_default_image>
    <id_default_combination notFilterable="true">
    </id_default_combination>
    <id_tax_rules_group xlink:href="http://192.168.1.78/tienda/api/tax_rule_groups/7"><![CDATA[7]]></id_tax_rules_group>
    <position_in_category notFilterable="true">5</position_in_category>
    <manufacturer_name notFilterable="true">
    </manufacturer_name>
    <quantity notFilterable="true"><![CDATA[0]]></quantity>
    <type notFilterable="true"><![CDATA[simple]]></type>
    <id_shop_default><![CDATA[1]]></id_shop_default>
    <reference><![CDATA[169767]]></reference>
    <supplier_reference>
    </supplier_reference>
    <location>
    </location>
    <width><![CDATA[0.000000]]></width>
    <height><![CDATA[0.000000]]></height>
    <depth><![CDATA[0.000000]]></depth>
    <weight><![CDATA[0.000000]]></weight>
    <quantity_discount><![CDATA[0]]></quantity_discount>
    <ean13><![CDATA[3574660680034]]></ean13>
    <upc>
    </upc>
    <cache_is_pack><![CDATA[0]]></cache_is_pack>
    <cache_has_attachments><![CDATA[0]]></cache_has_attachments>
    <is_virtual><![CDATA[0]]></is_virtual>
    <on_sale><![CDATA[0]]></on_sale>
    <online_only><![CDATA[0]]></online_only>
    <ecotax><![CDATA[0.000000]]></ecotax>
    <minimal_quantity><![CDATA[1]]></minimal_quantity>
    <price><![CDATA[16.991736]]></price>
    <wholesale_price><![CDATA[9.940000]]></wholesale_price>
    <unity>
    </unity>
    <unit_price_ratio><![CDATA[0.000000]]></unit_price_ratio>
    <additional_shipping_cost><![CDATA[0.00]]></additional_shipping_cost>
    <customizable><![CDATA[0]]></customizable>
    <text_fields><![CDATA[0]]></text_fields>
    <uploadable_files><![CDATA[0]]></uploadable_files>
    <active><![CDATA[1]]></active>
    <redirect_type><![CDATA[404]]></redirect_type>
    <id_product_redirected><![CDATA[0]]></id_product_redirected>
    <available_for_order><![CDATA[1]]></available_for_order>
    <available_date><![CDATA[0000-00-00]]></available_date>
    <condition><![CDATA[new]]></condition>
    <show_price><![CDATA[1]]></show_price>
    <indexed><![CDATA[1]]></indexed>
    <visibility><![CDATA[both]]></visibility>
    <advanced_stock_management><![CDATA[0]]></advanced_stock_management>
    <date_add><![CDATA[2017-06-06 17:35:05]]></date_add>
    <date_upd><![CDATA[2017-06-12 11:58:09]]></date_upd>
    <pack_stock_type><![CDATA[3]]></pack_stock_type>
    <meta_description>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[]]></language>
    </meta_description>
    <meta_keywords>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[]]></language>
    </meta_keywords>
    <meta_title>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[]]></language>
    </meta_title>
    <link_rewrite>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[prueba]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[prueba]]></language>
    </link_rewrite>
    <name>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[prueba]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[prueba]]></language>
    </name>
    <description>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[]]></language>
    </description>
    <description_short>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[]]></language>
    </description_short>
    <available_now>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[]]></language>
    </available_now>
    <available_later>
      <language id="1" xlink:href="http://192.168.1.78/tienda/api/languages/1"><![CDATA[]]></language>
      <language id="2" xlink:href="http://192.168.1.78/tienda/api/languages/2"><![CDATA[]]></language>
    </available_later>
    <associations>
      <categories nodeType="category" api="categories">
        <category xlink:href="http://192.168.1.78/tienda/api/categories/2">
          <id><![CDATA[2]]></id>
        </category>
      </categories>
      <images nodeType="image" api="images" />
      <combinations nodeType="combination" api="combinations" />
      <product_option_values nodeType="product_option_value" api="product_option_values" />
      <product_features nodeType="product_feature" api="product_features" />
      <tags nodeType="tag" api="tags" />
      <stock_availables nodeType="stock_available" api="stock_availables">
        <stock_available xlink:href="http://192.168.1.78/tienda/api/stock_availables/53">
          <id><![CDATA[53]]></id>
          <id_product_attribute><![CDATA[0]]></id_product_attribute>
        </stock_available>
      </stock_availables>
      <accessories nodeType="product" api="products" />
      <product_bundle nodeType="product" api="products" />
    </associations>
  </product>
</prestashop>
Edited by Zangetsu (see edit history)
Link to comment
Share on other sites

buenos días,

 

ya puedo mandar los datos por webservice y no me da ningún error el response.
El problema estaba en que los campos manufacturer_name y quantity era de solo lectura y por lo tanto no se tenian que pasar.

 

Ahora mi única duda es porque no me cambia de posición el producto a la nueva posición indicada (Siempre me lo deja en la posición 1 duplicandolo con otro producto).

 

Gracias!!

Link to comment
Share on other sites

Encontre la respuesta en este hilo:

 

https://www.prestashop.com/forums/topic/452799-updating-product-positions-in-categories-using-webservice-api-16014/

 

pero como se menciona en el hilo existe un problema cuando se establece la nueva posición a 0.

 

He seguido la modificación de la clase Products como se indica en este enlace:

 

https://github.com/PrestaShop/PrestaShop/pull/5308/commits/39bb35e38f46358a667c2c08816c45f6295265bd

 

pero sigue haciendo lo mismo. Cambia de posición pero cuando pongo la 0 para que este el primero ya en las siguientes no se mueve hasta que no lo arrastro manualmente.

 

¿Alguna idea? Gracias!!!

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...