Jump to content

Recommended Posts

Boa tarde a todos.
Estou tentando criar um pedido via WebService e não estou conseguindo.

Estou tentando persistir o seguinte XML:
 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
    <order>
        <id_address_delivery>29</id_address_delivery>
        <id_address_invoice>29</id_address_invoice>
        <id_customer>2</id_customer>
        <id_carrier>56</id_carrier>
        <id_shop_group>1</id_shop_group>
        <id_shop>1</id_shop>
        <current_state>2</current_state>
        <module>cashondelivery</module>
        <invoice_number>9</invoice_number>
        <invoice_date>2014-12-05 09:24:26</invoice_date>
        <delivery_date>0000-00-00 00:00:00</delivery_date>
        <date_add>2014-12-05 09:24:24</date_add>
        <date_upd>2014-12-05 09:31:00</date_upd>
        <payment> Pagamento na Entrega (PNA)</payment>
        <total_discounts>0.00</total_discounts>
        <total_paid>151.00</total_paid>
        <total_paid_real>151.0</total_paid_real>
        <total_paid_tax_incl>151.00</total_paid_tax_incl>
        <total_paid_tax_excl>151.00</total_paid_tax_excl>
        <total_products>151.00</total_products>
        <total_shipping>0.00</total_shipping>
        <total_shipping_tax_incl>0.00</total_shipping_tax_incl>
        <total_shipping_tax_excl>0.00</total_shipping_tax_excl>
        <reference></reference>
        <installmentcounts>0</installmentcounts>
        <id_transaction></id_transaction>
        <associations>
            <order_rows virtual_entity="true" node_type="order_row">
                <order_row>
                    <id>11</id>
                    <product_id>1</product_id>
                    <product_attribute_id>0</product_attribute_id>
                    <product_quantity>1.0</product_quantity>
                    <product_name>Tablet DL Mobile Plus 7, Chamada de Voz, Android 4.0, Cortex, 3G - TG-M73</product_name>
                    <product_reference></product_reference>
                    <unit_price_tax_incl>151.0</unit_price_tax_incl>
                </order_row>
            </order_rows>
        </associations>
        <id_cart>36</id_cart>
        <id_currency>1</id_currency>
        <id_lang>1</id_lang>
        <total_products_wt>151.00</total_products_wt>
        <conversion_rate>1.000000</conversion_rate>
        <shipping_number></shipping_number>
        <id_erp>3</id_erp>
    </order>
</prestashop>

Porém esta me retornando o erro:

 

  1. Fatal error: Uncaught exception 'PrestaShopException' with message 'Can't save Order' in /opt/lampp/htdocs/lojamodelo1/classes/PaymentModule.php:279
  2. Stack trace:
  3. #0 /opt/lampp/htdocs/lojamodelo1/classes/order/Order.php(1423): PaymentModuleCore->validateOrder('36', '12', '151.00', ' Pagamento na E...', NULL, Array, NULL, false, 'f5acca2afa7dcd9...')
  4. #1 /opt/lampp/htdocs/lojamodelo1/classes/webservice/WebserviceRequest.php(1555): OrderCore->addWs()
  5. #2 /opt/lampp/htdocs/lojamodelo1/classes/webservice/WebserviceRequest.php(1346): WebserviceRequestCore->saveEntityFromXml(201)
  6. #3 /opt/lampp/htdocs/lojamodelo1/classes/webservice/WebserviceRequest.php(500): WebserviceRequestCore->executeEntityPost()
  7. #4 /opt/lampp/htdocs/lojamodelo1/webservice/dispatcher.php(95): WebserviceRequestCore->fetch('ZEM34MUU8F6ZSV3...', 'POST', 'orders', Array, false, '<?xml version="...')
  8. #5 {main}
  9. thrown in /opt/lampp/htdocs/lojamodelo1/classes/PaymentModule.php on line 279

 

Alguém sabe como resolver este problema ?

 

Link to comment
Share on other sites

Pois é . o carrinho é o mais complicado de todos, pos se compoe de várias partes/tabelas no banco de dados (clientes, enderecos, produtos e combinacoes, precos especiais (descontos), descontos do carrinho, meio de transporte/entrega, modo de pagamento, pontos de loialdade(se estiver ativado), além de outros possíveis, dependendo dos módulos em uso).

  • Like 1
Link to comment
Share on other sites

O carrinho eu consegui criar.

Eu acho que consegui descobrir o problema.

Na minha loja existe uns campos customizados que são para integração. 

Eu criei uma classe que extende OrderCore dentro do override, porém, parece que o WebService mostra os campos normalmente mas na hora de gravar estes campos via WebService da o erro citado acima.

Fiz um teste de POST sem estes campos e funcionou.

Será que tem algum outro lugar, a não ser na controladora, que eu devo setar estes campos ?

Link to comment
Share on other sites

  • 9 months later...

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