[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"spaces":3,"$f33b6odycx69b0":14,"$frx0skleaa89k":96},[4],{"id":5,"name":6,"slug":7,"description":8,"icon":9,"sort":5,"visible":10,"published_count":11,"created_at":12,"updated_at":13},1,"API e-commerce de Geor","api-e-commerce-de-geor","Referencia de la API para conectar una tienda o una aplicación con el ERP de Geor, con catálogo, cuenta del cliente, compras y datos del comprador.","pi pi-shopping-cart",true,45,"2026-09-24T15:57:44.000000Z","2026-10-03T00:36:16.000000Z",{"id":15,"title":16,"slug":17,"full_path":18,"is_canonical":10,"summary":19,"content":20,"toc":21,"author":79,"reading_time":80,"popularity":81,"space":82,"breadcrumb":83,"prev":90,"next":79,"attachments":94,"updated_at":95},37,"Carrito","carrito","compra\u002Fcarrito","Cómo se identifica el carrito de cada visitante y de quién es, cómo añadir, ver y quitar productos, calcular el envío y el descuento de un cupón, y pagar para crear el pedido.","\u003Ch2 id=\"como-se-identifica-el-carrito\">Cómo se identifica el carrito\u003C\u002Fh2>\n\u003Cp>Cada visitante tiene su carrito, aunque no haya iniciado sesión. Se identifica con la cabecera \u003Ccode>user-ip-address\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Genera un identificador propio para cada visitante, difícil de adivinar, de al menos 16 caracteres. Un UUID sirve.\u003C\u002Fli>\n\u003Cli>Guárdalo en el navegador o en la app, en una cookie o en el almacenamiento local.\u003C\u002Fli>\n\u003Cli>Envíalo en \u003Cstrong>todas\u003C\u002Fstrong> las llamadas del carrito.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-bash\">curl https:\u002F\u002F&lt;dominio-de-la-empresa&gt;\u002Fapi\u002Fv1\u002Fecommerce\u002Fcarts\u002Fshipments\u002Fcalculate?type=DOMICILIO \\\n  -H \"user-ip-address: 3f2b8c1e-9d4a-4e7b-8a1c-2b5d6e7f8a90\" \\\n  -H \"Accept: application\u002Fjson\"\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Si el visitante inicia sesión o se registra enviando esta cabecera, su carrito pasa a ser de su cuenta.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>De quién es el carrito:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Mientras nadie inicia sesión, el carrito es de visitante y solo lo protege el identificador. Por eso tiene que ser difícil de adivinar.\u003C\u002Fli>\n\u003Cli>Cuando el visitante inicia sesión o se registra, el carrito pasa a su cuenta. Desde ese momento solo esa cuenta lo ve, lo cambia o lo paga, aunque otro conozca el identificador.\u003C\u002Fli>\n\u003Cli>Con el identificador del carrito de otra cuenta, todas las rutas responden como si no existiera: sin carrito o 404 \u003Ccode>CART_NOT_FOUND\u003C\u002Fcode>. Iniciar sesión con ese identificador tampoco se lleva el carrito.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Todas las rutas del carrito, y también pagar, exigen que la tienda esté \u003Cstrong>publicada\u003C\u002Fstrong>. Con la tienda en privado responden igual que el catálogo: 404 \u003Ccode>STORE_NOT_FOUND\u003C\u002Fcode> si nunca se publicó, o 503 \u003Ccode>STORE_PAUSED\u003C\u002Fcode> si estuvo publicada y está cerrada un tiempo.\u003C\u002Fp>\n\u003Ch2 id=\"anadir-un-producto\">Añadir un producto\u003C\u002Fh2>\n\u003Cp>\u003Ccode>POST \u002Fapi\u002Fv1\u002Fecommerce\u002Fcarts\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Si el visitante aún no tiene carrito, se crea con este primer producto. No pide token; si se envía el del cliente, el carrito queda en su cuenta.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Campo\u003C\u002Fth>\n\u003Cth>Tipo\u003C\u002Fth>\n\u003Cth>Obligatorio\u003C\u002Fth>\n\u003Cth>Reglas\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>item_id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>número\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>Un producto a la venta en la tienda. Los servicios no se venden por aquí\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>quantity\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>número\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>Entre 1 y 100000\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>variants\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>lista\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Solo si el producto tiene variantes (talla, color…). Hasta 100\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>variants[].id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>número\u003C\u002Ftd>\n\u003Ctd>Con \u003Ccode>variants\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Una variante de ese mismo producto\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>variants[].quantity\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>número\u003C\u002Ftd>\n\u003Ctd>Con \u003Ccode>variants\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Entre 1 y 100000\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cpre>\u003Ccode class=\"language-json\">{ \"item_id\": 45, \"quantity\": 2, \"variants\": [ { \"id\": 7, \"quantity\": 2 } ] }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>La cantidad reemplaza, no suma.\u003C\u002Fstrong> Si el producto ya estaba en el carrito, su línea pasa a tener la cantidad enviada. Para quitarlo, usa «Quitar un producto», más abajo.\u003C\u002Fp>\n\u003Cp>El precio lo calcula el ERP: precio de oferta si lo hay, y precios por cantidad si el producto los tiene.\u003C\u002Fp>\n\u003Ch3 id=\"respuesta\">Respuesta\u003C\u002Fh3>\n\u003Cp>El carrito completo, con los totales ya recalculados. Tiene la misma forma que al verlo (ver «Ver el carrito»).\u003C\u002Fp>\n\u003Ch3 id=\"si-algo-sale-mal\">Si algo sale mal\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>HTTP\u003C\u002Fth>\n\u003Cth>code\u003C\u002Fth>\n\u003Cth>Cuándo\u003C\u002Fth>\n\u003Cth>Qué hacer\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda no está publicada\u003C\u002Ftd>\n\u003Ctd>Publícala en el ERP\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_PAUSED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda está pausada\u003C\u002Ftd>\n\u003Ctd>Vuelve a intentarlo más tarde (\u003Ccode>Retry-After\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>400\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_IDENTIFIER_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta la cabecera \u003Ccode>user-ip-address\u003C\u002Fcode> o tiene menos de 16 caracteres\u003C\u002Ftd>\n\u003Ctd>Envía el identificador del carrito\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>VALIDATION_ERROR\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El producto no existe o no está a la venta, la cantidad no es válida, o una variante no es de ese producto\u003C\u002Ftd>\n\u003Ctd>Corrige el campo que indica \u003Ccode>errors\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_CONFIGURED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda no tiene almacén\u003C\u002Ftd>\n\u003Ctd>Avisa a la tienda\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"ver-el-carrito\">Ver el carrito\u003C\u002Fh2>\n\u003Cp>\u003Ccode>GET \u002Fapi\u002Fv1\u002Fecommerce\u002Fcarts\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Devuelve el carrito activo del visitante, con sus líneas y el envío elegido. Si no tiene, \u003Ccode>data\u003C\u002Fcode> llega en \u003Ccode>null\u003C\u002Fcode>: no es un error.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{ \"success\": true, \"message\": \"Carrito de compras obtenido de forma correcta.\", \"data\": null }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Cuando hay carrito, \u003Ccode>data\u003C\u002Fcode> tiene la misma forma que la respuesta de «Quitar un producto», más \u003Ccode>shipment\u003C\u002Fcode> con el envío elegido o \u003Ccode>null\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"si-algo-sale-mal-2\">Si algo sale mal\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>HTTP\u003C\u002Fth>\n\u003Cth>code\u003C\u002Fth>\n\u003Cth>Cuándo\u003C\u002Fth>\n\u003Cth>Qué hacer\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda no está publicada\u003C\u002Ftd>\n\u003Ctd>Publícala en el ERP\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_PAUSED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda está pausada\u003C\u002Ftd>\n\u003Ctd>Vuelve a intentarlo más tarde (\u003Ccode>Retry-After\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>400\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_IDENTIFIER_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta la cabecera \u003Ccode>user-ip-address\u003C\u002Fcode> o tiene menos de 16 caracteres\u003C\u002Ftd>\n\u003Ctd>Envía el identificador del carrito\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"quitar-un-producto\">Quitar un producto\u003C\u002Fh2>\n\u003Cp>\u003Ccode>DELETE \u002Fapi\u002Fv1\u002Fecommerce\u002Fcarts\u002F{code}\u002Fitems\u002F{id}\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Parámetro\u003C\u002Fth>\n\u003Cth>Dónde\u003C\u002Fth>\n\u003Cth>Qué es\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>code\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Ruta\u003C\u002Ftd>\n\u003Ctd>Código del carrito, con formato UUID\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Ruta\u003C\u002Ftd>\n\u003Ctd>Identificador de la \u003Cstrong>línea\u003C\u002Fstrong> del carrito (\u003Ccode>items[].id\u003C\u002Fcode>), no del producto\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>user-ip-address\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Cabecera\u003C\u002Ftd>\n\u003Ctd>El identificador del carrito. Obligatorio si no se envía el token del cliente\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>El carrito tiene que ser de quien llama: por el token del cliente, si el carrito es de su cuenta, o por el identificador de la cabecera. Un carrito ajeno responde igual que uno inexistente.\u003C\u002Fp>\n\u003Ch3 id=\"respuesta-2\">Respuesta\u003C\u002Fh3>\n\u003Cp>Devuelve el carrito actualizado, con los totales ya recalculados.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Producto eliminado del carrito correctamente.\",\n  \"data\": {\n    \"code\": \"3f2b8c1e-9d4a-4e7b-8a1c-2b5d6e7f8a90\",\n    \"order\": \"000123\",\n    \"status\": \"PROCESANDO PEDIDO\",\n    \"phase\": null,\n    \"can_cancel\": true,\n    \"payment_method\": \"\",\n    \"quantity\": 2,\n    \"subtotal\": 84.75,\n    \"total_taxes\": 15.25,\n    \"total_shipments\": 0,\n    \"discounts\": 0,\n    \"total\": 100,\n    \"items\": [\n      {\n        \"id\": 88,\n        \"quantity\": 2,\n        \"subtotal\": 84.75,\n        \"total_taxes\": 15.25,\n        \"discounts\": 0,\n        \"total\": 100,\n        \"item\": { \"id\": 45, \"description\": \"Polo algodón\", \"price\": 50.0, \"stock\": 10.0 }\n      }\n    ],\n    \"cash_order_id\": \"0000\"\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Campo\u003C\u002Fth>\n\u003Cth>Qué es\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>items[].id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Identificador de la línea. Es el que se usa para quitarla\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>items[].item\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Copia del producto en el momento de añadirlo\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>total\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Envío + suma de las líneas − descuentos\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"si-algo-sale-mal-3\">Si algo sale mal\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>HTTP\u003C\u002Fth>\n\u003Cth>code\u003C\u002Fth>\n\u003Cth>Cuándo\u003C\u002Fth>\n\u003Cth>Qué hacer\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda no está publicada\u003C\u002Ftd>\n\u003Ctd>Publícala en el ERP\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_PAUSED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda está pausada\u003C\u002Ftd>\n\u003Ctd>Vuelve a intentarlo más tarde (\u003Ccode>Retry-After\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>400\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_IDENTIFIER_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Sin token y sin la cabecera \u003Ccode>user-ip-address\u003C\u002Fcode>, o con menos de 16 caracteres\u003C\u002Ftd>\n\u003Ctd>Envía el identificador del carrito\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito no existe o no es de quien llama\u003C\u002Ftd>\n\u003Ctd>Revisa el código y el identificador\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_ITEM_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Esa línea no está en el carrito\u003C\u002Ftd>\n\u003Ctd>Vuelve a consultar el carrito\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>409\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_ALREADY_PAID\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito ya se pagó\u003C\u002Ftd>\n\u003Ctd>Nada: un pedido pagado no se modifica\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>409\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_NOT_EDITABLE\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito ya no está activo, por ejemplo porque se anuló\u003C\u002Ftd>\n\u003Ctd>Empieza un carrito nuevo\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"calcular-el-envio-del-carrito\">Calcular el envío del carrito\u003C\u002Fh2>\n\u003Cp>\u003Ccode>GET \u002Fapi\u002Fv1\u002Fecommerce\u002Fcarts\u002Fshipments\u002Fcalculate\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Calcula cuánto cuesta enviar el carrito del visitante. Solo calcula: no guarda nada en el carrito.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Parámetro\u003C\u002Fth>\n\u003Cth>Dónde\u003C\u002Fth>\n\u003Cth>Obligatorio\u003C\u002Fth>\n\u003Cth>Reglas\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>user-ip-address\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Cabecera\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>El identificador del carrito\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>type\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Query\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>Uno de los \u003Ca href=\"\u002Fdocs\u002Fapi-e-commerce-de-geor\u002Ftienda\u002Ftipos-de-envio\">tipos de envío\u003C\u002Fa> que la tienda tiene activos, en mayúsculas. Si no activó ninguno, vale \u003Ccode>DOMICILIO\u003C\u002Fcode>, \u003Ccode>AGENCIA\u003C\u002Fcode> o \u003Ccode>TIENDA\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ubigeo\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Query\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Distrito de destino, 6 cifras. Si no se envía y el cliente tiene sesión, se usa su \u003Ca href=\"\u002Fdocs\u002Fapi-e-commerce-de-geor\u002Fdatos-del-comprador\u002Fdirecciones-de-envio\">dirección por defecto\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>agency_code\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Query\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Solo con \u003Ccode>AGENCIA\u003C\u002Fcode>: devuelve solo esa agencia\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>establishment_id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Query\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Solo con \u003Ccode>TIENDA\u003C\u002Fcode>: devuelve solo ese establecimiento. Tiene que estar visible en la tienda\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>El peso es la suma del peso de cada producto por su cantidad. Hasta 1 kg se cobra el precio por kilo; a partir de ahí se suma el precio por kilo adicional. Si la tienda lo tiene configurado, al total se le suma el IGV (18 %), sin redondear.\u003C\u002Fp>\n\u003Ch3 id=\"respuesta-a-domicilio\">Respuesta a domicilio\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Información procesada de forma correcta.\",\n  \"data\": { \"type\": { \"price\": 12, \"lead_time\": 1 }, \"weight\": 1.2, \"subtotal\": 12, \"total\": 14.16 }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"respuesta-a-agencia\">Respuesta a agencia\u003C\u002Fh3>\n\u003Cp>Una lista con cada agencia que llega al destino, con su propio subtotal y total. Si ninguna llega, la lista viene vacía.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Información procesada de forma correcta.\",\n  \"data\": {\n    \"type\": [ { \"code\": \"OLVA\", \"name\": \"Olva Courier\", \"logo\": \"…\", \"price\": 15.5, \"lead_time\": 3, \"subtotal\": 15.5, \"total\": 18.29 } ],\n    \"weight\": 2.5\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"respuesta-con-recojo-en-tienda\">Respuesta con recojo en tienda\u003C\u002Fh3>\n\u003Cp>Los establecimientos del mismo distrito, provincia o departamento. El subtotal y el total son 0.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Información procesada de forma correcta.\",\n  \"data\": {\n    \"type\": [ { \"id\": 1, \"description\": \"Tienda Centro\", \"address\": \"Av. Lima 123\", \"lead_time\": 1, \"logo\": null, \"latitude\": \"-12.04\", \"longitude\": \"-77.03\", \"department\": \"LIMA\", \"province\": \"LIMA\", \"district\": \"LIMA\" } ],\n    \"weight\": 1.2,\n    \"subtotal\": 0,\n    \"total\": 0\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"si-algo-sale-mal-4\">Si algo sale mal\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>HTTP\u003C\u002Fth>\n\u003Cth>code\u003C\u002Fth>\n\u003Cth>Cuándo\u003C\u002Fth>\n\u003Cth>Qué hacer\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda no está publicada\u003C\u002Ftd>\n\u003Ctd>Publícala en el ERP\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_PAUSED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda está pausada\u003C\u002Ftd>\n\u003Ctd>Vuelve a intentarlo más tarde (\u003Ccode>Retry-After\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>VALIDATION_ERROR\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta el tipo o no está activo en la tienda, el ubigeo no tiene 6 cifras o el establecimiento no existe\u003C\u002Ftd>\n\u003Ctd>Corrige el parámetro que indica \u003Ccode>errors\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>400\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_IDENTIFIER_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta la cabecera \u003Ccode>user-ip-address\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Envía el identificador del carrito\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No hay un carrito activo con ese identificador\u003C\u002Ftd>\n\u003Ctd>Añade un producto primero\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>UBIGEO_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No se envió ubigeo y no hay sesión\u003C\u002Ftd>\n\u003Ctd>Envía el \u003Ccode>ubigeo\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DEFAULT_ADDRESS_MISSING\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No se envió ubigeo y el cliente no tiene dirección por defecto\u003C\u002Ftd>\n\u003Ctd>Envía el \u003Ccode>ubigeo\u003C\u002Fcode> o pide al cliente una dirección\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DESTINATION_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La dirección por defecto no tiene ubigeo\u003C\u002Ftd>\n\u003Ctd>Envía el \u003Ccode>ubigeo\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>SHIPPING_AREA_NOT_COVERED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>A domicilio: no hay tarifa para ese distrito\u003C\u002Ftd>\n\u003Ctd>Ofrece otro tipo de envío\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"calcular-el-descuento-de-un-cupon\">Calcular el descuento de un cupón\u003C\u002Fh2>\n\u003Cp>\u003Ccode>GET \u002Fapi\u002Fv1\u002Fecommerce\u002Fcarts\u002Fcoupons\u002Fcalculate\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Comprueba un cupón y devuelve cuánto descontaría. \u003Cstrong>No aplica el cupón al carrito.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Parámetro\u003C\u002Fth>\n\u003Cth>Dónde\u003C\u002Fth>\n\u003Cth>Obligatorio\u003C\u002Fth>\n\u003Cth>Reglas\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>code\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Query\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>Código del cupón. Máximo 50 caracteres\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>user-ip-address\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Cabecera\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>El identificador del carrito. Sin él se comprueba el cupón, pero no se puede calcular el importe\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Authorization\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Cabecera\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>El token del cliente. Hace falta para los cupones de un solo uso o reservados a ciertos clientes\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Esta ruta admite 10 peticiones por minuto, para que no se puedan probar códigos. Ver \u003Ca href=\"\u002Fdocs\u002Fapi-e-commerce-de-geor\u002Fprimeros-pasos\u002Flimites-de-peticiones\">límites\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3 id=\"respuesta-3\">Respuesta\u003C\u002Fh3>\n\u003Cp>\u003Ccode>data\u003C\u002Fcode> es el importe del descuento.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{ \"success\": true, \"message\": \"Información procesada de forma correcta.\", \"data\": 15.0 }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>Si el cupón es de porcentaje, se aplica sobre el importe de los productos o sobre el envío, según cómo lo configuró la tienda.\u003C\u002Fli>\n\u003Cli>Si es de importe fijo, se devuelve ese importe, con un tope: nunca más que el importe sobre el que se aplica.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"si-algo-sale-mal-5\">Si algo sale mal\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>HTTP\u003C\u002Fth>\n\u003Cth>code\u003C\u002Fth>\n\u003Cth>Cuándo\u003C\u002Fth>\n\u003Cth>Qué hacer\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda no está publicada\u003C\u002Ftd>\n\u003Ctd>Publícala en el ERP\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_PAUSED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda está pausada\u003C\u002Ftd>\n\u003Ctd>Vuelve a intentarlo más tarde (\u003Ccode>Retry-After\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>VALIDATION_ERROR\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta el código o es demasiado largo\u003C\u002Ftd>\n\u003Ctd>Corrige el código\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El cupón no existe o no está activo\u003C\u002Ftd>\n\u003Ctd>Pide al cliente que revise el código\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_EXPIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El cupón aún no empieza o ya venció\u003C\u002Ftd>\n\u003Ctd>—\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>401\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_LOGIN_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El cupón exige sesión\u003C\u002Ftd>\n\u003Ctd>Pide al cliente que inicie sesión\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_ALREADY_USED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El cliente ya usó este cupón\u003C\u002Ftd>\n\u003Ctd>—\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_USER_NOT_ELIGIBLE\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El cupón no es para este cliente\u003C\u002Ftd>\n\u003Ctd>—\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_REQUIRES_CART\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El cupón es válido, pero hace falta un carrito para calcular el descuento\u003C\u002Ftd>\n\u003Ctd>Envía el identificador del carrito, o añade productos\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_PRODUCTS_NOT_IN_CART\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito no tiene ningún producto de la promoción\u003C\u002Ftd>\n\u003Ctd>Añade uno\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_MIN_AMOUNT_NOT_REACHED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito no llega al importe mínimo\u003C\u002Ftd>\n\u003Ctd>Añade productos\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>COUPON_MAX_AMOUNT_EXCEEDED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito supera el importe máximo\u003C\u002Ftd>\n\u003Ctd>Quita productos\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>429\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>RATE_LIMITED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Más de 10 peticiones por minuto\u003C\u002Ftd>\n\u003Ctd>Espera lo que indica \u003Ccode>Retry-After\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Ccode>COUPON_LOGIN_REQUIRED\u003C\u002Fcode> es un 401 distinto del de sesión: no trae \u003Ccode>error_code\u003C\u002Fcode> y no significa que el token haya caducado.\u003C\u002Fp>\n\u003Ch2 id=\"pagar-y-crear-el-pedido\">Pagar y crear el pedido\u003C\u002Fh2>\n\u003Cp>\u003Ccode>POST \u002Fapi\u002Fv1\u002Fecommerce\u002Fcarts\u002Fpay\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Convierte el carrito en un pedido del ERP. Es una \u003Cstrong>solicitud de pedido\u003C\u002Fstrong>: el cobro y el envío los gestiona después la tienda desde el ERP.\u003C\u002Fp>\n\u003Cp>Pide el token del cliente y la cabecera \u003Ccode>user-ip-address\u003C\u002Fcode> con el identificador del carrito. El carrito tiene que ser de visitante (sin cuenta) o de la cuenta del cliente que paga: el de otra cuenta responde como si no existiera. Lo normal es registrarse o iniciar sesión enviando la cabecera, y pagar justo después.\u003C\u002Fp>\n\u003Ch3 id=\"cuerpo\">Cuerpo\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Campo\u003C\u002Fth>\n\u003Cth>Tipo\u003C\u002Fth>\n\u003Cth>Obligatorio\u003C\u002Fth>\n\u003Cth>Reglas\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>contact.first_name\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>Nombre de quien recibe el aviso. Máximo 50 caracteres\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>contact.last_name\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Máximo 50 caracteres\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>contact.country_code\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>Prefijo del país, por ejemplo \u003Ccode>+51\u003C\u002Fcode>. Máximo 5 caracteres\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>contact.phone\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>WhatsApp de contacto. Exactamente 9 cifras\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>origin\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>Sí\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>WEB\u003C\u002Fcode> o \u003Ccode>APP\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>payment_method\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Uno de los \u003Ca href=\"\u002Fdocs\u002Fapi-e-commerce-de-geor\u002Ftienda\u002Fmetodos-de-pago\">métodos de pago\u003C\u002Fa> de la tienda. Sin él se usa \u003Ccode>EFECTIVO\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>billing.document_type_id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>01\u003C\u002Fcode> (factura) o \u003Ccode>03\u003C\u002Fcode> (boleta)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>billing.document_number\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>DNI de 8 cifras o RUC de 11. Una factura exige RUC\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>billing.name\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>texto\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Nombre o razón social. Máximo 250 caracteres\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>data\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>objeto\u003C\u002Ftd>\n\u003Ctd>No\u003C\u002Ftd>\n\u003Ctd>Lo que devolvió la consulta de DNI o RUC de ese mismo documento: \u003Ccode>ruc\u003C\u002Fcode> o \u003Ccode>dni\u003C\u002Fcode>, \u003Ccode>nombre_o_razon_social\u003C\u002Fcode> o \u003Ccode>nombre_completo\u003C\u002Fcode>, \u003Ccode>direccion\u003C\u002Fcode>, \u003Ccode>condicion\u003C\u002Fcode>, \u003Ccode>estado\u003C\u002Fcode>, \u003Ccode>ubigeo\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  \"contact\": { \"first_name\": \"Ana\", \"last_name\": \"Pérez\", \"country_code\": \"+51\", \"phone\": \"987654321\" },\n  \"origin\": \"WEB\",\n  \"payment_method\": \"TRANSFERENCIA\",\n  \"billing\": { \"document_type_id\": \"03\", \"document_number\": \"45678912\", \"name\": \"Ana Pérez\" }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>El teléfono y el prefijo solo se guardan como dato de contacto del pedido: no se envía ningún código ni se comprueba el país.\u003C\u002Fp>\n\u003Cp>Si se indica un documento de facturación que la empresa aún no tiene, se da de alta como cliente con los datos de \u003Ccode>data\u003C\u002Fcode>. Sin nombre, ni en \u003Ccode>data\u003C\u002Fcode> ni en \u003Ccode>billing.name\u003C\u002Fcode>, responde \u003Ccode>BILLING_NAME_REQUIRED\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"respuesta-4\">Respuesta\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Información procesada de forma correcta.\",\n  \"data\": { \"number\": \"PED P001-15\", \"order_id\": 57 }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Campo\u003C\u002Fth>\n\u003Cth>Qué es\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>number\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Número del pedido en el ERP, para mostrárselo al cliente\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>order_id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Identificador interno del pedido en el ERP\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Al pagar se reserva el stock de los productos y se descuenta el de sus variantes (talla, color…). Si el pedido se \u003Ca href=\"\u002Fdocs\u002Fapi-e-commerce-de-geor\u002Fcompra\u002Fpedidos\">anula\u003C\u002Fa>, ambos vuelven.\u003C\u002Fp>\n\u003Ch3 id=\"si-algo-sale-mal-6\">Si algo sale mal\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>HTTP\u003C\u002Fth>\n\u003Cth>code\u003C\u002Fth>\n\u003Cth>Cuándo\u003C\u002Fth>\n\u003Cth>Qué hacer\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda no está publicada\u003C\u002Ftd>\n\u003Ctd>Publícala en el ERP\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_PAUSED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>La tienda está pausada\u003C\u002Ftd>\n\u003Ctd>Vuelve a intentarlo más tarde (\u003Ccode>Retry-After\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>401\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>SESSION_EXPIRED\u003C\u002Fcode> o \u003Ccode>TOKEN_INVALID\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta el token o no es válido\u003C\u002Ftd>\n\u003Ctd>Pide al cliente que inicie sesión\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>403\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>NOT_A_STORE_USER\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El token no es de un cliente de la tienda\u003C\u002Ftd>\n\u003Ctd>Usa el token de un cliente\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>VALIDATION_ERROR\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta el contacto u \u003Ccode>origin\u003C\u002Fcode>, el teléfono no tiene 9 cifras, el método de pago no está disponible o el documento no es válido\u003C\u002Ftd>\n\u003Ctd>Corrige el campo que indica \u003Ccode>errors\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>400\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_IDENTIFIER_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta la cabecera \u003Ccode>user-ip-address\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Envía el identificador del carrito\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>404\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_NOT_FOUND\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No hay carrito activo con ese identificador, o es de otra cuenta\u003C\u002Ftd>\n\u003Ctd>Añade un producto primero\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>409\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_ALREADY_PAID\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito ya se pagó\u003C\u002Ftd>\n\u003Ctd>Consulta el pedido en el historial\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>CART_EMPTY\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>El carrito no tiene productos\u003C\u002Ftd>\n\u003Ctd>Añade uno\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>422\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>BILLING_NAME_REQUIRED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta el nombre del documento de facturación\u003C\u002Ftd>\n\u003Ctd>Envía \u003Ccode>billing.name\u003C\u002Fcode> o \u003Ccode>data\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>409\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>OUT_OF_STOCK\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No hay stock suficiente de algún producto\u003C\u002Ftd>\n\u003Ctd>Quita o reduce ese producto\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>503\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>STORE_NOT_CONFIGURED\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Falta el almacén o la serie de pedidos en el ERP\u003C\u002Ftd>\n\u003Ctd>Avisa a la tienda\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>",[22,26,29,33,36,39,41,44,46,48,51,54,57,60,62,65,67,69,72,75,77],{"id":23,"text":24,"level":25},"como-se-identifica-el-carrito","Cómo se identifica el carrito",2,{"id":27,"text":28,"level":25},"anadir-un-producto","Añadir un producto",{"id":30,"text":31,"level":32},"respuesta","Respuesta",3,{"id":34,"text":35,"level":32},"si-algo-sale-mal","Si algo sale mal",{"id":37,"text":38,"level":25},"ver-el-carrito","Ver el carrito",{"id":40,"text":35,"level":32},"si-algo-sale-mal-2",{"id":42,"text":43,"level":25},"quitar-un-producto","Quitar un producto",{"id":45,"text":31,"level":32},"respuesta-2",{"id":47,"text":35,"level":32},"si-algo-sale-mal-3",{"id":49,"text":50,"level":25},"calcular-el-envio-del-carrito","Calcular el envío del carrito",{"id":52,"text":53,"level":32},"respuesta-a-domicilio","Respuesta a domicilio",{"id":55,"text":56,"level":32},"respuesta-a-agencia","Respuesta a agencia",{"id":58,"text":59,"level":32},"respuesta-con-recojo-en-tienda","Respuesta con recojo en tienda",{"id":61,"text":35,"level":32},"si-algo-sale-mal-4",{"id":63,"text":64,"level":25},"calcular-el-descuento-de-un-cupon","Calcular el descuento de un cupón",{"id":66,"text":31,"level":32},"respuesta-3",{"id":68,"text":35,"level":32},"si-algo-sale-mal-5",{"id":70,"text":71,"level":25},"pagar-y-crear-el-pedido","Pagar y crear el pedido",{"id":73,"text":74,"level":32},"cuerpo","Cuerpo",{"id":76,"text":31,"level":32},"respuesta-4",{"id":78,"text":35,"level":32},"si-algo-sale-mal-6",null,13,0,{"id":5,"name":6,"slug":7},[84,86],{"slug":7,"full_path":79,"title":6,"type":85},"space",{"slug":87,"full_path":87,"title":88,"type":89},"compra","Compra","document",{"slug":91,"full_path":92,"title":93},"pedidos","compra\u002Fpedidos","Pedidos",[],"2026-09-30T00:42:53.000000Z",{"space":97,"tree":98},{"id":5,"name":6,"slug":7,"description":8,"icon":9,"sort":5,"visible":10,"created_at":12,"updated_at":13},[99,107,136,201,285,361,372,417,423],{"id":5,"parent_id":79,"title":100,"slug":101,"full_path":101,"summary":102,"phases":25,"phase_label":103,"version":104,"sort":5,"depth":81,"is_published":10,"reading_time":25,"popularity":25,"updated_at":105,"children":106},"Introducción","introduccion","Qué es la API e-commerce de Geor, qué permite hacer, en qué versión está y cómo se conecta con el ERP de cada empresa.","Publicado",9,"2026-10-05T23:12:37.000000Z",[],{"id":25,"parent_id":79,"title":108,"slug":109,"full_path":109,"summary":110,"phases":25,"phase_label":103,"version":111,"sort":25,"depth":81,"is_published":10,"reading_time":5,"popularity":81,"updated_at":112,"children":113},"Primeros pasos","primeros-pasos","Lo que hay que saber antes de llamar a cualquier ruta, como el acceso, el formato de las respuestas, los errores y los límites.",7,"2026-09-30T01:16:44.000000Z",[114,122,128],{"id":115,"parent_id":25,"title":116,"slug":117,"full_path":118,"summary":119,"phases":25,"phase_label":103,"version":104,"sort":5,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":120,"children":121},8,"Autenticación","autenticacion","primeros-pasos\u002Fautenticacion","Qué rutas son públicas, cuáles piden el token del cliente, cómo se obtiene y cómo se envía.","2026-09-30T01:16:46.000000Z",[],{"id":104,"parent_id":25,"title":123,"slug":124,"full_path":125,"summary":126,"phases":25,"phase_label":103,"version":111,"sort":25,"depth":5,"is_published":10,"reading_time":115,"popularity":81,"updated_at":120,"children":127},"Respuestas y errores","respuestas-y-errores","primeros-pasos\u002Frespuestas-y-errores","La forma común de todas las respuestas, cómo distinguir un error tuyo de uno del servidor y el catálogo completo de códigos de error.",[],{"id":129,"parent_id":25,"title":130,"slug":131,"full_path":132,"summary":133,"phases":25,"phase_label":103,"version":134,"sort":32,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":120,"children":135},10,"Límites de peticiones","limites-de-peticiones","primeros-pasos\u002Flimites-de-peticiones","Cuántas peticiones por minuto admite la API, cómo se cuentan y qué hacer al recibir un 429.",6,[],{"id":137,"parent_id":79,"title":138,"slug":139,"full_path":139,"summary":140,"phases":25,"phase_label":103,"version":141,"sort":32,"depth":81,"is_published":10,"reading_time":141,"popularity":81,"updated_at":142,"children":143},43,"Catálogo","catalogo","Lectura pública del catálogo de la tienda, como productos con sus filtros, ficha de producto, relacionados, categorías, banners y atributos, sin token.",4,"2026-09-30T01:17:38.000000Z",[144,152,160,168,176,185,193],{"id":11,"parent_id":137,"title":145,"slug":146,"full_path":147,"summary":148,"phases":25,"phase_label":103,"version":141,"sort":5,"depth":5,"is_published":10,"reading_time":149,"popularity":81,"updated_at":150,"children":151},"Productos","productos","catalogo\u002Fproductos","El listado de productos de la tienda, con búsqueda, filtros por categoría, atributo y precio, orden y paginación, y qué trae cada producto.",12,"2026-09-30T01:17:40.000000Z",[],{"id":153,"parent_id":137,"title":154,"slug":155,"full_path":156,"summary":157,"phases":25,"phase_label":103,"version":141,"sort":25,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":158,"children":159},46,"Ficha del producto","ficha-del-producto","catalogo\u002Fficha-del-producto","Todos los datos de un producto, por id o por slug, con sus categorías, variantes, descripción, especificaciones y medidas.","2026-09-30T01:17:41.000000Z",[],{"id":161,"parent_id":137,"title":162,"slug":163,"full_path":164,"summary":165,"phases":25,"phase_label":103,"version":141,"sort":32,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":166,"children":167},47,"Productos relacionados","productos-relacionados","catalogo\u002Fproductos-relacionados","Los productos de la misma categoría principal que uno dado, para mostrar sugerencias en su ficha.","2026-09-30T01:17:42.000000Z",[],{"id":169,"parent_id":137,"title":170,"slug":171,"full_path":172,"summary":173,"phases":25,"phase_label":103,"version":141,"sort":141,"depth":5,"is_published":10,"reading_time":134,"popularity":81,"updated_at":174,"children":175},48,"Categorías","categorias","catalogo\u002Fcategorias","Las categorías visibles de la tienda y el detalle de una de ellas, con su portada y sus productos paginados.","2026-09-30T01:17:43.000000Z",[],{"id":177,"parent_id":137,"title":178,"slug":179,"full_path":180,"summary":181,"phases":25,"phase_label":103,"version":141,"sort":182,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":183,"children":184},49,"Banners","banners","catalogo\u002Fbanners","Los banners activos de la portada, con sus imágenes para escritorio y móvil y a dónde lleva cada uno.",5,"2026-09-30T01:17:44.000000Z",[],{"id":186,"parent_id":137,"title":187,"slug":188,"full_path":189,"summary":190,"phases":25,"phase_label":103,"version":141,"sort":134,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":191,"children":192},50,"Atributos","atributos","catalogo\u002Fatributos","Los atributos con los que se filtra el catálogo (talla, color…), cada uno con sus valores y los ids que usa el filtro de productos.","2026-09-30T01:17:45.000000Z",[],{"id":194,"parent_id":137,"title":195,"slug":196,"full_path":197,"summary":198,"phases":25,"phase_label":103,"version":141,"sort":111,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":199,"children":200},51,"Todo en una llamada","todo-el-catalogo-en-una-llamada","catalogo\u002Ftodo-el-catalogo-en-una-llamada","Categorías, atributos, banners, textos legales, ajustes y logo de la tienda juntos en una sola respuesta, que además funciona con la tienda sin publicar.","2026-09-30T01:17:46.000000Z",[],{"id":141,"parent_id":79,"title":202,"slug":203,"full_path":203,"summary":204,"phases":25,"phase_label":103,"version":205,"sort":141,"depth":81,"is_published":10,"reading_time":5,"popularity":81,"updated_at":112,"children":206},"Tienda","tienda","Datos generales que usa la tienda, como ajustes, países, idiomas, establecimientos, cálculo de envío de un producto, libro de reclamaciones, cupones disponibles, métodos de pago y agencias de transporte.",11,[207,214,222,230,238,246,254,261,269,277],{"id":208,"parent_id":141,"title":209,"slug":210,"full_path":211,"summary":212,"phases":25,"phase_label":103,"version":182,"sort":5,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":120,"children":213},15,"Ajustes de la tienda","ajustes-de-la-tienda","tienda\u002Fajustes-de-la-tienda","Configuración pública de la tienda, como nombre, tema, redes, estado de publicación, tipos de envío y modelo de venta.",[],{"id":215,"parent_id":141,"title":216,"slug":217,"full_path":218,"summary":219,"phases":25,"phase_label":103,"version":134,"sort":25,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":220,"children":221},16,"Países e idiomas","paises-e-idiomas","tienda\u002Fpaises-e-idiomas","Países activos, con su prefijo telefónico y sus divisiones territoriales, e idiomas disponibles.","2026-09-30T00:42:32.000000Z",[],{"id":223,"parent_id":141,"title":224,"slug":225,"full_path":226,"summary":227,"phases":25,"phase_label":103,"version":182,"sort":32,"depth":5,"is_published":10,"reading_time":5,"popularity":81,"updated_at":228,"children":229},17,"Establecimientos","establecimientos","tienda\u002Festablecimientos","Tiendas físicas de la empresa donde el cliente puede recoger su pedido.","2026-09-30T01:16:47.000000Z",[],{"id":231,"parent_id":141,"title":232,"slug":233,"full_path":234,"summary":235,"phases":25,"phase_label":103,"version":182,"sort":141,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":236,"children":237},18,"Envío de un producto","envio-de-un-producto","tienda\u002Fenvio-de-un-producto","Calcular cuánto cuesta y cuánto tarda enviar un producto, a domicilio, a una agencia o con recojo en tienda.","2026-09-30T00:42:34.000000Z",[],{"id":239,"parent_id":141,"title":240,"slug":241,"full_path":242,"summary":243,"phases":25,"phase_label":103,"version":182,"sort":182,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":244,"children":245},19,"Libro de reclamaciones","libro-de-reclamaciones","tienda\u002Flibro-de-reclamaciones","Registrar un reclamo en el libro de reclamaciones de la tienda.","2026-09-30T01:16:48.000000Z",[],{"id":247,"parent_id":141,"title":248,"slug":249,"full_path":250,"summary":251,"phases":25,"phase_label":103,"version":141,"sort":134,"depth":5,"is_published":10,"reading_time":5,"popularity":81,"updated_at":252,"children":253},31,"Tipos de envío","tipos-de-envio","tienda\u002Ftipos-de-envio","Los tipos de envío que la tienda tiene activos, como domicilio, agencia y recojo en tienda.","2026-09-30T00:42:46.000000Z",[],{"id":255,"parent_id":141,"title":256,"slug":257,"full_path":258,"summary":259,"phases":25,"phase_label":103,"version":182,"sort":111,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":244,"children":260},32,"Textos legales","textos-legales","tienda\u002Ftextos-legales","Los textos legales visibles de la tienda, como términos, privacidad y cambios y devoluciones.",[],{"id":262,"parent_id":141,"title":263,"slug":264,"full_path":265,"summary":266,"phases":25,"phase_label":103,"version":134,"sort":115,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":267,"children":268},38,"Cupones disponibles","cupones-disponibles","tienda\u002Fcupones-disponibles","Los cupones activos que se le pueden ofrecer al cliente, ya filtrados según si le tocan o no.","2026-09-30T00:42:54.000000Z",[],{"id":270,"parent_id":141,"title":271,"slug":272,"full_path":273,"summary":274,"phases":25,"phase_label":103,"version":141,"sort":104,"depth":5,"is_published":10,"reading_time":5,"popularity":81,"updated_at":275,"children":276},39,"Métodos de pago","metodos-de-pago","tienda\u002Fmetodos-de-pago","Los métodos de pago que la tienda tiene activos, con las cuentas bancarias para transferencia.","2026-09-30T00:42:55.000000Z",[],{"id":278,"parent_id":141,"title":279,"slug":280,"full_path":281,"summary":282,"phases":25,"phase_label":103,"version":141,"sort":129,"depth":5,"is_published":10,"reading_time":5,"popularity":81,"updated_at":283,"children":284},40,"Agencias de transporte","agencias-de-transporte","tienda\u002Fagencias-de-transporte","Las agencias de transporte que la tienda tiene activas para el envío por agencia.","2026-09-30T00:42:56.000000Z",[],{"id":182,"parent_id":79,"title":286,"slug":287,"full_path":287,"summary":288,"phases":25,"phase_label":103,"version":104,"sort":182,"depth":81,"is_published":10,"reading_time":5,"popularity":81,"updated_at":289,"children":290},"Cuenta del cliente","cuenta-del-cliente","Rutas para que el cliente cree su cuenta, la consulte y edite, cambie su contraseña, cierre sesión, la verifique y la dé de baja.","2026-09-30T00:42:25.000000Z",[291,299,307,315,322,330,337,345,353],{"id":292,"parent_id":182,"title":293,"slug":294,"full_path":295,"summary":296,"phases":25,"phase_label":103,"version":111,"sort":5,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":297,"children":298},20,"Perfil y contraseña","perfil-y-contrasena","cuenta-del-cliente\u002Fperfil-y-contrasena","Consultar los datos del cliente, editar su perfil y cambiar su contraseña.","2026-09-30T01:16:50.000000Z",[],{"id":300,"parent_id":182,"title":301,"slug":302,"full_path":303,"summary":304,"phases":25,"phase_label":103,"version":141,"sort":25,"depth":5,"is_published":10,"reading_time":5,"popularity":81,"updated_at":305,"children":306},21,"Cerrar sesión","cerrar-sesion","cuenta-del-cliente\u002Fcerrar-sesion","Anular el token del cliente para cerrar su sesión en todos los dispositivos.","2026-09-30T00:42:36.000000Z",[],{"id":308,"parent_id":182,"title":309,"slug":310,"full_path":311,"summary":312,"phases":25,"phase_label":103,"version":134,"sort":32,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":313,"children":314},22,"Reenviar el código de verificación","reenviar-el-codigo-de-verificacion","cuenta-del-cliente\u002Freenviar-el-codigo-de-verificacion","Volver a enviar al cliente el código para verificar su correo o su teléfono.","2026-09-30T00:42:37.000000Z",[],{"id":316,"parent_id":182,"title":317,"slug":318,"full_path":319,"summary":320,"phases":25,"phase_label":103,"version":182,"sort":141,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":297,"children":321},23,"Borrar la cuenta","borrar-la-cuenta","cuenta-del-cliente\u002Fborrar-la-cuenta","Dar de baja la cuenta del cliente con un código de confirmación que se envía por correo o por SMS.",[],{"id":323,"parent_id":182,"title":324,"slug":325,"full_path":326,"summary":327,"phases":25,"phase_label":103,"version":182,"sort":182,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":328,"children":329},33,"Iniciar sesión","iniciar-sesion","cuenta-del-cliente\u002Finiciar-sesion","Obtener el token del cliente con su email y contraseña.","2026-09-30T00:42:49.000000Z",[],{"id":331,"parent_id":182,"title":332,"slug":333,"full_path":334,"summary":335,"phases":25,"phase_label":103,"version":182,"sort":134,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":328,"children":336},34,"Verificar la cuenta","verificar-la-cuenta","cuenta-del-cliente\u002Fverificar-la-cuenta","Enviar al cliente un código para verificar su correo o su teléfono, y confirmarlo.",[],{"id":338,"parent_id":182,"title":339,"slug":340,"full_path":341,"summary":342,"phases":25,"phase_label":103,"version":182,"sort":111,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":343,"children":344},35,"Recuperar la contraseña","recuperar-la-contrasena","cuenta-del-cliente\u002Frecuperar-la-contrasena","Cambiar la contraseña de un cliente que no la recuerda, con un código enviado a su correo o a su teléfono.","2026-09-30T00:42:51.000000Z",[],{"id":346,"parent_id":182,"title":347,"slug":348,"full_path":349,"summary":350,"phases":25,"phase_label":103,"version":182,"sort":115,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":351,"children":352},36,"Cambiar el email o el teléfono","cambiar-el-email-o-el-telefono","cuenta-del-cliente\u002Fcambiar-el-email-o-el-telefono","Pedir el cambio del email o del teléfono del cliente y confirmarlo con el código enviado al valor nuevo.","2026-09-30T00:42:52.000000Z",[],{"id":354,"parent_id":182,"title":355,"slug":356,"full_path":357,"summary":358,"phases":25,"phase_label":103,"version":182,"sort":104,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":359,"children":360},41,"Crear cuenta","crear-cuenta","cuenta-del-cliente\u002Fcrear-cuenta","Registrar un cliente nuevo en la tienda, con la comprobación de que el email no esté ya en uso.","2026-09-30T00:42:57.000000Z",[],{"id":134,"parent_id":79,"title":88,"slug":87,"full_path":87,"summary":362,"phases":25,"phase_label":103,"version":111,"sort":134,"depth":81,"is_published":10,"reading_time":5,"popularity":81,"updated_at":363,"children":364},"Consultar y anular los pedidos del cliente, llenar el carrito, calcular el envío y el descuento de un cupón, y pagar.","2026-09-30T01:16:45.000000Z",[365,370],{"id":366,"parent_id":134,"title":93,"slug":91,"full_path":92,"summary":367,"phases":25,"phase_label":103,"version":134,"sort":5,"depth":5,"is_published":10,"reading_time":182,"popularity":81,"updated_at":368,"children":369},24,"Historial de pedidos del cliente, detalle de un pedido y cómo interpretar su estado.","2026-09-30T01:16:52.000000Z",[],{"id":15,"parent_id":134,"title":16,"slug":17,"full_path":18,"summary":19,"phases":25,"phase_label":103,"version":111,"sort":25,"depth":5,"is_published":10,"reading_time":80,"popularity":81,"updated_at":95,"children":371},[],{"id":111,"parent_id":79,"title":373,"slug":374,"full_path":374,"summary":375,"phases":25,"phase_label":103,"version":182,"sort":111,"depth":81,"is_published":10,"reading_time":25,"popularity":81,"updated_at":376,"children":377},"Datos del comprador","datos-del-comprador","Tarjetas, direcciones de envío, datos de facturación, destinatarios y favoritos que el cliente guarda en su cuenta.","2026-09-30T00:42:27.000000Z",[378,386,394,401,409],{"id":379,"parent_id":111,"title":380,"slug":381,"full_path":382,"summary":383,"phases":25,"phase_label":103,"version":141,"sort":5,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":384,"children":385},25,"Tarjetas","tarjetas","datos-del-comprador\u002Ftarjetas","Guardar, listar, editar y borrar las tarjetas del cliente. El número completo nunca se almacena.","2026-09-30T00:42:41.000000Z",[],{"id":387,"parent_id":111,"title":388,"slug":389,"full_path":390,"summary":391,"phases":25,"phase_label":103,"version":182,"sort":25,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":392,"children":393},26,"Direcciones de envío","direcciones-de-envio","datos-del-comprador\u002Fdirecciones-de-envio","Guardar, listar, editar y borrar las direcciones de envío del cliente, y elegir la dirección por defecto.","2026-09-30T01:16:53.000000Z",[],{"id":395,"parent_id":111,"title":396,"slug":397,"full_path":398,"summary":399,"phases":25,"phase_label":103,"version":182,"sort":32,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":392,"children":400},27,"Datos de facturación","datos-de-facturacion","datos-del-comprador\u002Fdatos-de-facturacion","Guardar, listar, editar y borrar los datos con los que el cliente quiere recibir su comprobante.",[],{"id":402,"parent_id":111,"title":403,"slug":404,"full_path":405,"summary":406,"phases":25,"phase_label":103,"version":182,"sort":141,"depth":5,"is_published":10,"reading_time":32,"popularity":81,"updated_at":407,"children":408},28,"Destinatarios","destinatarios","datos-del-comprador\u002Fdestinatarios","Personas autorizadas a recibir los pedidos del cliente. Listar, añadir, editar y borrar.","2026-09-30T00:42:44.000000Z",[],{"id":410,"parent_id":111,"title":411,"slug":412,"full_path":413,"summary":414,"phases":25,"phase_label":103,"version":182,"sort":182,"depth":5,"is_published":10,"reading_time":25,"popularity":81,"updated_at":415,"children":416},29,"Favoritos","favoritos","datos-del-comprador\u002Ffavoritos","Marcar productos como favoritos, listarlos y quitarlos.","2026-09-30T01:16:54.000000Z",[],{"id":418,"parent_id":79,"title":419,"slug":420,"full_path":420,"summary":421,"phases":25,"phase_label":103,"version":182,"sort":115,"depth":81,"is_published":10,"reading_time":25,"popularity":25,"updated_at":105,"children":422},44,"Versiones","versiones","En qué versión está la API, cómo se versiona y qué cambia en cada versión de la documentación.",[],{"id":424,"parent_id":79,"title":425,"slug":426,"full_path":426,"summary":427,"phases":25,"phase_label":103,"version":182,"sort":104,"depth":81,"is_published":10,"reading_time":141,"popularity":129,"updated_at":428,"children":429},52,"Usar con tu IA (MCP)","usar-con-tu-ia","Cómo conectar Claude, ChatGPT, Cursor o VS Code al MCP de Geor para que tu IA consulte esta documentación y te ayude a construir la tienda.","2026-10-05T23:45:59.000000Z",[]]