首页 > 解决方案 > 将订单发布到 Prestashop API 时出现 500 内部服务器错误

问题描述

尝试将 XML 发送到 Prestashop 1.7 API 时,我遇到了这个一般问题。我的程序是 ASP.NET 核心 C#,我有我的序列化程序类。

我在这里被困了一段时间,我的 XML 看起来不错,API 没有返回任何有意义的错误消息。

这是我的 XML:

<?xml version="1.0"?>
<prestashop xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <order>
    <id_address_delivery>78</id_address_delivery>
    <id_address_invoice>78</id_address_invoice>
    <id_cart>356</id_cart>
    <id_lang>1</id_lang>
    <id_currency>1</id_currency>
    <id_customer>76</id_customer>
    <id_carrier>1</id_carrier>
    <current_state>15</current_state>
    <module>free_order</module>
    <invoice_number>0</invoice_number>
    <invoice_date>0000-00-00 00:00:00</invoice_date>
    <delivery_number>0</delivery_number>
    <delivery_date>0000-00-00 00:00:00</delivery_date>
    <valid>0</valid>
    <date_add>2020-10-07 09:06:22</date_add>
    <date_upd>2020-10-07 09:06:22</date_upd>
    <shipping_number />
    <id_shop_group>1</id_shop_group>
    <id_shop>1</id_shop>
    <secure_key />
    <payment>Free order</payment>
    <recyclable>0</recyclable>
    <gift>0</gift>
    <gift_message />
    <mobile_theme>0</mobile_theme>
    <total_discounts>0</total_discounts>
    <total_discounts_tax_incl>0</total_discounts_tax_incl>
    <total_discounts_tax_excl>0</total_discounts_tax_excl>
    <total_paid>0</total_paid>
    <total_paid_tax_incl>0</total_paid_tax_incl>
    <total_paid_tax_excl>0</total_paid_tax_excl>
    <total_paid_real>0</total_paid_real>
    <total_products>0</total_products>
    <total_products_wt>0</total_products_wt>
    <total_shipping>0</total_shipping>
    <total_shipping_tax_incl>0</total_shipping_tax_incl>
    <total_shipping_tax_excl>0</total_shipping_tax_excl>
    <carrier_tax_rate>0</carrier_tax_rate>
    <total_wrapping>0</total_wrapping>
    <total_wrapping_tax_incl>0</total_wrapping_tax_incl>
    <total_wrapping_tax_excl>0</total_wrapping_tax_excl>
    <round_mode>0</round_mode>
    <round_type>0</round_type>
    <conversion_rate>1</conversion_rate>
    <reference />
    <associations>
      <order_rows>
        <order_row>
          <product_id>4</product_id>
          <product_attribute_id>0</product_attribute_id>
          <product_quantity>2</product_quantity>
          <product_name>VITROCOOL 1003 refrigerante en contenedor de 1000 kg (cantidad en Kg)</product_name>
          <product_reference>30070003</product_reference>
          <product_ean13>30070003</product_ean13>
          <product_isbn />
          <product_upc />
          <product_price>0</product_price>
          <unit_price_tax_incl>0</unit_price_tax_incl>
          <unit_price_tax_excl>0</unit_price_tax_excl>
        </order_row>
        <order_row>
          <product_id>9</product_id>
          <product_attribute_id>0</product_attribute_id>
          <product_quantity>2</product_quantity>
          <product_name>VITROCRUST 1812 en garrafas de 10 kg</product_name>
          <product_reference>30070011</product_reference>
          <product_ean13>30070011</product_ean13>
          <product_isbn />
          <product_upc />
          <product_price>0</product_price>
          <unit_price_tax_incl>0</unit_price_tax_incl>
          <unit_price_tax_excl>0</unit_price_tax_excl>
        </order_row>
        <order_row>
          <product_id>3</product_id>
          <product_attribute_id>0</product_attribute_id>
          <product_quantity>9</product_quantity>
          <product_name>VITROCOOL 1003 refrigerante en bidones de 220 Kg (cantidad en Kg)</product_name>
          <product_reference>30070002</product_reference>
          <product_ean13>30070002</product_ean13>
          <product_isbn />
          <product_upc />
          <product_price>0</product_price>
          <unit_price_tax_incl>0</unit_price_tax_incl>
          <unit_price_tax_excl>0</unit_price_tax_excl>
        </order_row>
        <order_row>
          <product_id>9</product_id>
          <product_attribute_id>0</product_attribute_id>
          <product_quantity>2</product_quantity>
          <product_name>VITROCRUST 1812 en garrafas de 10 kg</product_name>
          <product_reference>30070011</product_reference>
          <product_ean13>30070011</product_ean13>
          <product_isbn />
          <product_upc />
          <product_price>0</product_price>
          <unit_price_tax_incl>0</unit_price_tax_incl>
          <unit_price_tax_excl>0</unit_price_tax_excl>
        </order_row>
        <order_row>
          <product_id>3</product_id>
          <product_attribute_id>0</product_attribute_id>
          <product_quantity>1003</product_quantity>
          <product_name>VITROCOOL 1003 refrigerante en bidones de 220 Kg (cantidad en Kg)</product_name>
          <product_reference>30070002</product_reference>
          <product_ean13>30070002</product_ean13>
          <product_isbn />
          <product_upc />
          <product_price>0</product_price>
          <unit_price_tax_incl>0</unit_price_tax_incl>
          <unit_price_tax_excl>0</unit_price_tax_excl>
        </order_row>
      </order_rows>
    </associations>
  </order>
</prestashop>

这就是 Prestashop API 所期望的(空白 XML):

<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
    <order>
        <id_address_delivery required="true" format="isUnsignedId"/>
        <id_address_invoice required="true" format="isUnsignedId"/>
        <id_cart required="true" format="isUnsignedId"/>
        <id_currency required="true" format="isUnsignedId"/>
        <id_lang required="true" format="isUnsignedId"/>
        <id_customer required="true" format="isUnsignedId"/>
        <id_carrier required="true" format="isUnsignedId"/>
        <current_state format="isUnsignedId"/>
        <module required="true" format="isModuleName"/>
        <invoice_number/>
        <invoice_date/>
        <delivery_number/>
        <delivery_date/>
        <valid/>
        <date_add format="isDate"/>
        <date_upd format="isDate"/>
        <shipping_number notFilterable="true" format="isTrackingNumber"/>
        <id_shop_group format="isUnsignedId"/>
        <id_shop format="isUnsignedId"/>
        <secure_key format="isMd5"/>
        <payment required="true" format="isGenericName"/>
        <recyclable format="isBool"/>
        <gift format="isBool"/>
        <gift_message format="isMessage"/>
        <mobile_theme format="isBool"/>
        <total_discounts format="isPrice"/>
        <total_discounts_tax_incl format="isPrice"/>
        <total_discounts_tax_excl format="isPrice"/>
        <total_paid required="true" format="isPrice"/>
        <total_paid_tax_incl format="isPrice"/>
        <total_paid_tax_excl format="isPrice"/>
        <total_paid_real required="true" format="isPrice"/>
        <total_products required="true" format="isPrice"/>
        <total_products_wt required="true" format="isPrice"/>
        <total_shipping format="isPrice"/>
        <total_shipping_tax_incl format="isPrice"/>
        <total_shipping_tax_excl format="isPrice"/>
        <carrier_tax_rate format="isFloat"/>
        <total_wrapping format="isPrice"/>
        <total_wrapping_tax_incl format="isPrice"/>
        <total_wrapping_tax_excl format="isPrice"/>
        <round_mode format="isUnsignedId"/>
        <round_type format="isUnsignedId"/>
        <conversion_rate required="true" format="isFloat"/>
        <reference/>
        <associations>
            <order_rows nodeType="order_row" virtualEntity="true">
                <order_row>
                    <id/>
                    <product_id required="true"/>
                    <product_attribute_id required="true"/>
                    <product_quantity required="true"/>
                    <product_name read_only="true" readOnly="true"/>
                    <product_reference read_only="true" readOnly="true"/>
                    <product_ean13 read_only="true" readOnly="true"/>
                    <product_isbn read_only="true" readOnly="true"/>
                    <product_upc read_only="true" readOnly="true"/>
                    <product_price read_only="true" readOnly="true"/>
                    <unit_price_tax_incl read_only="true" readOnly="true"/>
                    <unit_price_tax_excl read_only="true" readOnly="true"/>
                </order_row>
            </order_rows>
        </associations>
    </order>
</prestashop>

据我所知,唯一必填字段是带有标签的字段,required但由于这给了我 500 内部服务器错误,我尝试尽可能多地填写我拥有的数据。

我尝试使用 Postman 并通过我的编译发送它,但没有成功。我不知道还能尝试什么,我一直在纠正问题,但同样的错误一遍又一遍地弹出。

标签: xmlapiprestashop-1.7

解决方案


推荐阅读