DEV Community

Discussion on: ¿Cómo integrar Mercado Pago a tu web?

Collapse
 
storchia profile image
storchia • Edited

Hola Nicolas!
Brillante laburo y muchisimas gracias por compartirlo, en breve te invito unos cafecitos como corresponde

Realice al pie de la letra tu implementacion y funciona barbaro.

Ahora en una situacion de Carro de Compras en donde hay que pasar varios "items". Como lo resolverias? entiendo que me esta faltando una parte del codigo porque logro pasar en el body:

{
name: [ 'Otro mas', 'First Book' ],
unit: [ '2', '1' ],
img: [ 'images\1602475489688-Page1.png', 'images\1602463339226-3.jpg' ],
price: [ '1456', '125' ],
}

pero luego no puedo enviarlo a MP, envia solo el primer articulo o sea el [0] del obejto.

Alguna idea?

Muchisimas gracias nuevamente!

Collapse
 
nicolascastrogarcia profile image
Nicolás Castro Garcia

Hola!

Los items los tenes que mandar en la preferencia. La clave items dentro del objeto de preferencia tiene que ser un array [item1, item2, item3], donde cáda item tiene que ser un objeto que contenga los requisitos que explican en la documentación de mercadopago acá.

En síntesis, usando tu ejemplo, debería quedarte algo así:

   const items = [   
         {
            "id": "",
            "picture_url": "",
            "title": "Libro 1",
            "description": "Libro 1",
            "category_id": "",
            "currency_id": "ARS",
            "quantity": 1,
            "unit_price": 10
        },       {
            "id": "",
            "picture_url": "",
            "title": "Libro 2",
            "description": "libro 2",
            "category_id": "",
            "currency_id": "ARS",
            "quantity": 1,
            "unit_price": 10
        }
    ];  

Enter fullscreen mode Exit fullscreen mode

Entonces después cuando creas la preferencia, le pasas ese array de objetos a la clave items de la preferencia:

const preferences = { 
      items: items, // ACÁ TIENE QUE IR EL ARRAY DE ITEMS QUE CREAMOS ARRIBA
      external_reference: "referencia del negocio", 
      payer: { 
        name: "Lalo",
        surname: "Landa",
        email: "test_user_63274575@testuser.com", 
        phone: {
          area_code: "11",
          number: "22223333"
        },
        address: {
          zip_code: "1111",
          street_name: "False",
          street_number: "123"
        }
      }, 
      payment_methods: {
        excluded_payment_methods: [
          {
            id: "amex"
          }
        ],
        excluded_payment_types: [{ id: "atm" }],
        installments: 6,
        default_installments: 6 
      }, 
      back_urls: {
        success: "https://localhost:3000/success", 
        pending: "https://localhost:3000.com/pending",
        failure: "https://localhost:3000.com/error"
      }, 
      notification_url: "https://localhost:3000/webhook", 
      auto_return: "approved" 
    };
Enter fullscreen mode Exit fullscreen mode

Si no anduvo podes preguntarme devuelta, o hablarme a mi twitter

Espero que se arregle!

Saludos!