Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Gravar valor digitado pelo usuário em um campo no pagamento
 
Jonathan Moratelli
Member
 
Total Posts:  35
Joined:  2008-10-30
 

Eaew pessoal!!!

Criei um método de pagamento onde o usuário entra com um valor e esse valor deve ficar gravado no banco. É tipo um COD (Cash on delivery) só que o usuário entra com o valor do troco.

Já procurei bastante e naum encontrei muita coisa. O que eu fiz foi o seguinte:

Criei manualmente o campo no banco de dados:

INSERT INTO `eav_attribute` (`attribute_id`, `entity_type_id`, `attribute_code`, `attribute_model`, `backend_model`, `backend_type`, `backend_table`, `frontend_model`, `frontend_input`, `frontend_label`, `frontend_class`, `source_model`, `is_global`, `is_visible`, `is_required`, `is_user_defined`, `default_value`, `is_searchable`, `is_filterable`, `is_comparable`, `is_visible_on_front`, `is_html_allowed_on_front`, `is_unique`, `is_configurable`, `apply_to`, `position`, `note`, `is_visible_in_advanced_search`, `is_used_for_price_rules`, `is_filterable_in_search`) VALUES()
(
50114'clientetv_trocopara'NULLNULL'decimal'NULLNULL'text''Troco Para'NULLNULL1101NULL0001001'0'0''000),
(
50210'clientetv_trocopara'NULLNULL'decimal'NULLNULL'text''Troco Para'NULLNULL1101NULL0001001'0'0''000);

ALTER TABLE `sales_flat_quote_paymentADD `clientetv_trocoparaVARCHAR255 CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL

A venda é fechada sem problemas e sem erro, então monitorei os INSERTS e UPDATES que o magento faz no banco quando uma venda é finalizada com cartão de crédito para saber onde são salvos os dados digitados pelo usuário. (Gg9MliM8lsCHkoE8BWd7sQ== é o número do cartão de crédito criptografado)

INSERT INTO `sales_order_entity_varchar` (`entity_id`, `entity_type_id`, `attribute_id`, `value`) VALUES ('384''14''277''Gg9MliM8lsCHkoE8BWd7sQ==')
UPDATE `sales_flat_quote_paymentSET `payment_id` = '126', `quote_id` = '86', `created_at` = '2009-03-06 20:54:24', `updated_at` = '2009-03-06 20:57:30', `method` = 'ccsave', `cc_type` = 'VI', `cc_number_enc` = 'Gg9MliM8lsCHkoE8BWd7sQ==', `cc_last4` = '8247', `cc_cid_enc` = '', `cc_owner` = 'abcdob', `cc_exp_month` = '12', `cc_exp_year` = '2011', `cc_ss_owner` = '', `cc_ss_start_month` = '0', `cc_ss_start_year` = '0', `cybersource_token` = '', `paypal_correlation_id` = '', `paypal_payer_id` = '', `paypal_payer_status` = '', `po_number` = '', `parent_id` = '86', `additional_data` = NULL, `cc_ss_issue` = NULL, `clientetv_trocopara` = NULL WHERE (payment_id='126')

Ao monitorar o meu módulo percebi que valor do campo que criei (`clientetv_trocopara` = ‘77777777777’) só é gravado no quote e não na finalização da ordem

UPDATE `sales_flat_quote_paymentSET `payment_id` = '127', `quote_id` = '87', `created_at` = '2009-03-06 20:59:41', `updated_at` = '2009-03-06 21:00:11', `method` = 'pgtotv', `cc_type` = '', `cc_number_enc` = '', `cc_last4` = '', `cc_cid_enc` = '', `cc_owner` = '', `cc_exp_month` = '0', `cc_exp_year` = '0', `cc_ss_owner` = '', `cc_ss_start_month` = '0', `cc_ss_start_year` = '0', `cybersource_token` = '', `paypal_correlation_id` = '', `paypal_payer_id` = '', `paypal_payer_status` = '', `po_number` = '', `parent_id` = '87', `additional_data` = NULL, `cc_ss_issue` = NULL, `clientetv_trocopara` = '77777777777' WHERE (payment_id='127')

Acho que esqueci de criar algum campo no banco de dados.

Se sim, alguém sabe qual???

Se naum, onde tá meu erro???

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top