Jump to content

[SOLUCIONADO] Problema al insertar unit_price_ratio con Webservice PS1.7


Recommended Posts

Estoy intentando insertar un producto mediante webservice. Me coge bien todos los datos excepto el unit_price_ratio que me guarda siempre 0.

Lo que hago es descargarme primero el schema en blanco, modifico los campos que necesito y luego añado. En la respuesta que me da sí veo el valor en unit_price_ratio, pero luego en la web no se ve, como si aunque lo enviara en el XML no lo guardara en la BD.

¿Alguien sabe por qué? ¿Es que me falta enviar algún dato?

Estoy usando PS 1.7.6.5

Gracias!!

 

Esto es lo que envío:

XML SENT

<?xml version="1.0" encoding="UTF-8"?>
<prestashop
    xmlns:xlink="http://www.w3.org/1999/xlink">
    <product>
        <id/>
        <id_manufacturer>98</id_manufacturer>
        <id_supplier/>
        <id_category_default>11</id_category_default>
        <new/>
        <cache_default_attribute/>
        <id_default_image/>
        <id_default_combination/>
        <id_tax_rules_group>1</id_tax_rules_group>
        <position_in_category/>
        <type/>
        <id_shop_default>1</id_shop_default>
        <reference>LH43</reference>
        <supplier_reference/>
        <location/>
        <width/>
        <height/>
        <depth/>
        <weight/>
        <quantity_discount/>
        <ean13>123456789</ean13>
        <isbn/>
        <upc/>
        <cache_is_pack/>
        <cache_has_attachments/>
        <is_virtual>0</is_virtual>
        <state>1</state>
        <additional_delivery_times/>
        <delivery_in_stock>
            <language id="1"/>
        </delivery_in_stock>
        <delivery_out_stock>
            <language id="1"/>
        </delivery_out_stock>
        <on_sale/>
        <online_only>0</online_only>
        <ecotax>0</ecotax>
        <minimal_quantity>100</minimal_quantity>
        <low_stock_threshold/>
        <low_stock_alert/>
        <price>0.003264</price>
        <wholesale_price>0.00239</wholesale_price>
        <unity>/100gr</unity>
        <unit_price_ratio>0.01</unit_price_ratio>
        <additional_shipping_cost/>
        <customizable>0</customizable>
        <text_fields/>
        <uploadable_files/>
        <active>1</active>
        <redirect_type/>
        <id_type_redirected/>
        <available_for_order>1</available_for_order>
        <available_date/>
        <show_condition/>
        <condition/>
        <show_price>1</show_price>
        <indexed>1</indexed>
        <visibility>both</visibility>
        <advanced_stock_management/>
        <date_add>2020-07-27 12:07:52</date_add>
        <date_upd>2020-07-27 12:07:52</date_upd>
        <pack_stock_type/>
        <meta_description>
            <language id="1"/>
        </meta_description>
        <meta_keywords>
            <language id="1"/>
        </meta_keywords>
        <meta_title>
            <language id="1"/>
        </meta_title>
        <link_rewrite>
            <language id="1"/>
        </link_rewrite>
        <name>
            <language id="1">Arroz a granel TPV</language>
        </name>
        <description>
            <language id="1"/>
        </description>
        <description_short>
            <language id="1"/>
        </description_short>
        <available_now>
            <language id="1"/>
        </available_now>
        <available_later>
            <language id="1"/>
        </available_later>
        <associations>
            <categories>
                <category>
                    <id>11</id>
                </category>
            </categories>
            <images>
                <image>
                    <id/>
                </image>
            </images>
            <combinations>
                <combination>
                    <id/>
                </combination>
            </combinations>
            <product_option_values>
                <product_option_value>
                    <id/>
                </product_option_value>
            </product_option_values>
            <product_features>
                <product_feature>
                    <id/>
                    <id_feature_value/>
                </product_feature>
            </product_features>
            <tags>
                <tag>
                    <id/>
                </tag>
            </tags>
            <stock_availables>
                <stock_available>
                    <id/>
                    <id_product_attribute>0</id_product_attribute>
                </stock_available>
            </stock_availables>
            <accessories>
                <product>
                    <id/>
                </product>
            </accessories>
            <product_bundle>
                <product>
                    <id/>
                    <id_product_attribute/>
                    <quantity/>
                </product>
            </product_bundle>
        </associations>
    </product>
</prestashop>
 

 

RETURN HTTP BODY

<?xml version="1.0" encoding="UTF-8"?>
<prestashop
    xmlns:xlink="http://www.w3.org/1999/xlink">
    <product>
        <id>
            <![CDATA[59]]>
        </id>
        <id_manufacturer xlink:href="http://****.com/api/manufacturers/98">
            <![CDATA[98]]>
        </id_manufacturer>
        <id_supplier></id_supplier>
        <id_category_default xlink:href="http://***.com/api/categories/11">
            <![CDATA[11]]>
        </id_category_default>
        <new></new>
        <cache_default_attribute></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://***.com/api/tax_rule_groups/1">
            <![CDATA[1]]>
        </id_tax_rules_group>
        <position_in_category notFilterable="true">
            <![CDATA[0]]>
        </position_in_category>
        <manufacturer_name notFilterable="true">
            <![CDATA[La Herbotica]]>
        </manufacturer_name>
        <quantity notFilterable="true"></quantity>
        <type notFilterable="true">
            <![CDATA[simple]]>
        </type>
        <id_shop_default>
            <![CDATA[1]]>
        </id_shop_default>
        <reference>
            <![CDATA[LH43]]>
        </reference>
        <supplier_reference></supplier_reference>
        <location></location>
        <width></width>
        <height></height>
        <depth></depth>
        <weight></weight>
        <quantity_discount></quantity_discount>
        <ean13>
            <![CDATA[123456789]]>
        </ean13>
        <isbn></isbn>
        <upc></upc>
        <cache_is_pack></cache_is_pack>
        <cache_has_attachments></cache_has_attachments>
        <is_virtual>
            <![CDATA[0]]>
        </is_virtual>
        <state>
            <![CDATA[1]]>
        </state>
        <additional_delivery_times></additional_delivery_times>
        <delivery_in_stock>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </delivery_in_stock>
        <delivery_out_stock>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </delivery_out_stock>
        <on_sale></on_sale>
        <online_only>
            <![CDATA[0]]>
        </online_only>
        <ecotax>
            <![CDATA[0]]>
        </ecotax>
        <minimal_quantity>
            <![CDATA[100]]>
        </minimal_quantity>
        <low_stock_threshold></low_stock_threshold>
        <low_stock_alert></low_stock_alert>
        <price>
            <![CDATA[0.003264]]>
        </price>
        <wholesale_price>
            <![CDATA[0.00239]]>
        </wholesale_price>
        <unity>
            <![CDATA[/100gr]]>
        </unity>
        <unit_price_ratio>
            <![CDATA[0.01]]>
        </unit_price_ratio>

        <additional_shipping_cost></additional_shipping_cost>
        <customizable>
            <![CDATA[0]]>
        </customizable>
        <text_fields></text_fields>
        <uploadable_files></uploadable_files>
        <active>
            <![CDATA[1]]>
        </active>
        <redirect_type></redirect_type>
        <id_type_redirected></id_type_redirected>
        <available_for_order>
            <![CDATA[1]]>
        </available_for_order>
        <available_date></available_date>
        <show_condition></show_condition>
        <condition>
            <![CDATA[new]]>
        </condition>
        <show_price>
            <![CDATA[1]]>
        </show_price>
        <indexed>
            <![CDATA[1]]>
        </indexed>
        <visibility>
            <![CDATA[both]]>
        </visibility>
        <advanced_stock_management></advanced_stock_management>
        <date_add>
            <![CDATA[2020-07-27 12:01:52]]>
        </date_add>
        <date_upd>
            <![CDATA[2020-07-27 12:01:52]]>
        </date_upd>
        <pack_stock_type></pack_stock_type>
        <meta_description>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </meta_description>
        <meta_keywords>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </meta_keywords>
        <meta_title>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </meta_title>
        <link_rewrite>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[arroz-a-granel-tpv]]>
            </language>
        </link_rewrite>
        <name>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[Arroz a granel TPV]]>
            </language>
        </name>
        <description>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </description>
        <description_short>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </description_short>
        <available_now>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </available_now>
        <available_later>
            <language id="1" xlink:href="http://***.com/api/languages/1">
                <![CDATA[]]>
            </language>
        </available_later>
        <associations>
            <categories nodeType="category" api="categories">
                <category xlink:href="http://***.com/api/categories/11">
                    <id>
                        <![CDATA[11]]>
                    </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">
                <product_feature xlink:href="http://***.com/api/product_features/0">
                    <id>
                        <![CDATA[0]]>
                    </id>
                    <id_feature_value xlink:href="http://***.com/api/product_feature_values/0">
                        <![CDATA[0]]>
                    </id_feature_value>
                </product_feature>
            </product_features>
            <tags nodeType="tag" api="tags">
                <tag xlink:href="http://***.com/api/tags/0">
                    <id>
                        <![CDATA[0]]>
                    </id>
                </tag>
            </tags>
            <stock_availables nodeType="stock_available" api="stock_availables">
                <stock_available xlink:href="http://***.com/api/stock_availables/192">
                    <id>
                        <![CDATA[192]]>
                    </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 elenaso
SOLUCIONADO (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

Tras muchos días revisando código, me respondo sola: es un bug. No entiendo muy bien porqué se hace así, pero en el archivo:

/classes/Product.php

en la función getFieldsShop() hay un IF que machaca el unit_price_ratio al insertar un producto nuevo desde Webservice.

SOLUCIÓN que adopté:

1. Inserto el producto con todos los campos

2. Obtengo de nuevo todos los datos del producto que acabo de insertar (con una llamada al webservice)

3. Modifico el unit_price_ratio y elimino con unset() dos variables que me dan problemas: quantity y manufacturer_name.

4. Subo esta actualización

 

Es una llamada extra al webservice, pero fue la única solución que encontré para no tocar el código de PrestaShop. 

Link to comment
Share on other sites

  • 2 years later...

Es tremendo postear algo en este foro y no obtener respuesta de nadie mas que de uno mismo :(

La documentación de Prestashop es Penosa.

Yo estoy tratando de subir un producto con insomnia y no hay manera. Me bajo el schema, cargo los datos del producto ahi y SIEMPRE me rechaza alguno campo de los más de 200 que hay por producto.... 🤦‍♂️

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