Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MN Del Golfo
Preparado para
MN Del Golfo
Preparado por:
Alexis Pérez
Abril 20212
Confidential Document
The information contained herein is privileged and confidential and is only made available to persons who
are authorized in advance to have access to this information. If the reader is not authorized to access or
receive this information you should immediately close this document and delete this information from
your computer. By
1. Versiones del Documento
Fecha de
Versión # Resumen de los cambios
Liberación
1.0 30/11/2021 Versión inicial
Se actualiza el proceso de alta de cotizaciones y
2.0 23/03/2022
pedidos de ventas
Página 2 de 46
2. Índice
1. Versiones del Documento 2
2. Índice 3
3. Integración con eCommerce 4
3.1. Requerimientos funcionales 4
3.1.1. Productos 4
3.1.2. Clientes 21
3.1.3. Alta de cotizaciones 34
3.1.4. Alta de pedidos (Facturas de clientes) 44
4. Aceptación 46
Página 3 de 46
3. Integración con eCommerce
3.1.1. Productos
Generar un WebServices para que Nectri pueda consumirlo bajo demanda y pueda obtener un
producto
Momento
Sentido de Sistema
ID Servicio Tipo Descripción Responsable de
conexión que ejecuta
consumo
Obtener GET Retorna un a petición
de
producto (obtener producto dada de
1 Producto LSCentral a Addvantit eCommerce
individual uno o más un Id(sku). eCommerce
ECommerce
elementos) (Nectri)
Solución:
LS Central cuenta con la siguiente opción para filtrado de información, en el caso de artículos se
puede solicitar solo por producto en específico, colocando al final de la cadena de servicio OData la
instrucción ?$filter=. En el siguiente ejemplo, se filtra por el producto 100022
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryItemsAd
dv?$filter=No eq '100022'
Nota.- En este link se encuentran otros filtros que pueden ser utilizados en caso de ser requeridos.
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/webservices/use-filter-
expressions-in-odata-uris
Página 4 de 46
Propiedad Tipo Comentarios Campo del WS Consulta ADDV
ProductId String Identificador del No QueryItemsAddv
producto.
IsKit Bool Indica si el producto ¿??? Los Kits se consultan
es un kit. desde otra página (ver
3.1.1.2)
PriceWithTax Decimal Precio unitario con LSC_Unit_Price_VAT QueryItemsAddv
IVA.
Price Decimal Precio unitario sin Unit_Price_Sales QueryItemsAddv
IVA.
Offer.OfferPriceWithTax Decimal Precio unitario de Offer_Price_VAT QueryItemsAddv
oferta con IVA.
Offer.EffectiveDate DateTime Fecha y hora hasta Date_Offer_Sta QueryItemsAddv
cuando la oferta es
válida.
Quantity Int Cantidad disponible Quantity
en almacén. QueryItemsLocationAddv
Status bool Indica si el producto Status QueryItemsAddv
está activo.
Página 5 de 46
En LS Central pueden registrase diferentes precios, por lo que adicional a la información que se
solicita se cuenta con estos campos adicionales.
Página 6 de 46
Campos adicionales para eCommerce:
En LSCentral se ha provisto de una serie de campos adicionales para enviar información al
eCommerce, dichos campos se encuentran en la sección campos eCommerce de la ficha de
productos, dichos campos se deben agregar en un nuevo WebServices que se ejecutará de forma
períodica
Página 7 de 46
Tipos de entrega: Se acuerda no incluir en esta primera fase
Dicha información es alimentada en la ficha de los productos en el menú Relacionado → Asociar Tipos
de entrega
La información de los tipos de entrega está contenida en la tabla 50000 (Tipos de entrega)
La información de los tipos de entrega a los que está asociado un producto está contenida en la tabla
50001 (Asociar Tipos de Entrega)
Página 8 de 46
Zonas de entrega: Se acuerda no incluir en esta primera fase
La información de los tipos de entrega está contenida en la tabla 50002 (Zonas de entrega)
La información de los tipos de entrega a los que está asociado un producto está contenida en la tabla
50003 (Asociar Zonas de Entrega)
Página 9 de 46
3.1.1.2. Obtener listado de productos tipo kit (Get)
Se requiere generar un WebServices para que Nectri pueda consumirlo bajo demanda y pueda
obtener un listado de productos tipo Kit.
En LSCentral los Kits será administrados desde la página de las ofertas periódicas, llamadas Ofertas
Mix&Match
Página 10 de 46
Se considera un Kit como una nueva oferta, de la cual se creará el cod. del producto, su descripción,
precio y los productos que la componen
Se requiere agregar un campo “Título Web” de 100 caracteres para colocar la descripción que tendrá
el Kit en la página Web (tabla LSC Periodic Discount (99001453))
Para la consulta de artículos tipo kit se utilizará la consulta “QueryItemsKitAddv”, donde se podrá
determinar el precio y vigencia de estos
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryItemsKit
Addv
Página 11 de 46
Propiedad Tipo Comentarios Campo del WS Consulta ADDV
ProductId Identificador del No QueryItemsKitAddv
producto tipo kit
Price Precio del kit Price QueryItemsKitAddv
Offer.EffectiveDate Se cuenta con un Start_Date/ QueryItemsKitAddv
rango de fechas End_Date
para este tipo de
artículos
Status Indica si la Status QueryItemsKitAddv
promoción esta
activa
Página 12 de 46
3.1.1.3. Obtener los componentes de un Kit (Get)
Para determinar la cantidad de productos que requiere un artículo tipo kit se creó la siguiente consulta
(QueryProductsKitAddv), donde se puede visualizar un listado de los detalles. Se puede utilizar el filtro
por el campo Item_Kit para uno en específico.
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryProduct
sKitAddv?$filter=Item_Kit eq 'COMBO_BAN'
Página 13 de 46
3.1.1.4. Obtener un listado de productos (Get)
Generar un WebServices para que Nectri pueda consumirlo bajo demanda y pueda obtener un
listado de productos
Momento
Sentido de Sistema
ID Servicio Tipo Descripcion Responsable de
conexión que ejecuta
consumo
Obtener GET Retorna un
un listado (obtener listado de
a petición
de uno o más productos de
de
2 Producto productos elementos) dada un LSCentral a Addvantit eCommerce
eCommerce
listado de ECommerce
(Nectri)
claves de
producto(sku).
NOTA: Aplica el mismo WebServices anterior. Solo que en el filtro se puede colocar:
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryItemsAd
dv?$filter=No it '100022' and No lt '100374’
Nota.- En este link se encuentran otros filtros que pueden ser utilizados en caso de ser requeridos.
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/webservices/use-filter-
expressions-in-odata-uris
Página 14 de 46
3.1.1.5. Obtener un listado de productos (Post) - No será considerado
NOTA: En la sesión del viernes 19/11/2021 se indicó que no será necesario, pues los productos no se
podrán crear desde el eCommerce hacia LSCentral. Tampoco está contemplado crear productos desde
LSCentral hacia el eCommerce, este proceso es completamente independiente
Momento
Sentido de Sistema
ID Servicio Tipo Descripción Responsable de
conexión que ejecuta
consumo
Obtener GET Retorna un
un listado (obtener listado de a petición
de
de todos uno o más todos los de
4 Producto LSCentral a Addvantit eCommerce
los elementos) productos de eCommerce
ECommerce
productos la base de (Nectri)
datos de MN.
NOTA: Aplica el mismo WebServices anterior. Bajo esta consulta no es posible determinar por la
estructura de estos artículos si es un kit o no, se debe consultar otra sección para estos artículos (ver
3.1.1.2)
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryItemsAd
dv
Página 15 de 46
3.1.1.7. Existencia por Almacén
Se generó una nueva página llamada “Class Location Addv” en la cual se ingresarán las clases de
artículos y almacenes de los cuales las interfaces podrán tomar artículos, cada uno de ellos tiene
que ser registrado con una prioridad para tomar los artículos que se requieran bajo esta lógica.
Por ejemplo, solo podrán tomarse artículos de la división PLOMERIA del almacén CEDIS-ALTA, en
caso de tener un segundo almacén con prioridad 2 el resto de los artículos en caso de ser requerido
deberá tomarse de esta segunda opción.
Consulta de cantidad de almacenes por articulo y prioridad, para la consulta anterior de artículos.
Para visualizar en esta consulta información es necesario llenar la tabla intermedia
Addv_ClassLocation.
Página 16 de 46
Odata.-
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryItemsLo
cationAddv
Página 17 de 46
2) Consulta de almacenes
Odata.-
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/zAddv_Locatio
nsPage
SOAP.-
http://192.65.134.90:7047/BC180/WS/MNDG%20CAPACITACION/Page/zAddv_LocationsPage
Página 18 de 46
3) Consulta de tiendas
OData.-
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/zAddv_StoreLi
st
SOAP.-
http:// 192.65.134.90:7047/BC180/WS/MNDG%20CAPACITACION/Page/zAddv_StoreList
Página 19 de 46
4) Consulta de cantidad por tienda
Consulta de cantidad de artículos por tienda, solo con la sumatoria de los almacenes configurados
en la tabla intermedia Addv_ClassLocation.
OData.-
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryItemsSt
oreAddv
Página 20 de 46
3.1.2. Clientes
Para ello, Addvantit publicará un WebServices (POST), el cual deberá ser consumido por el
proveedor Nectri “bajo demanda”, no sin antes validar si el cliente existe, para lo cual Addvantit
deberá publicar un WebServices para consultar el cliente dado el correo electrónico de forma que
Nectri pueda validar si existe el cliente.
Existen dos canales por donde se pueden dar de alta el cliente (B2C y B2B)
Cualquier persona se puede dar de alta en el eCommerce desde la siguiente ventana en el botón
“Registrarse”
1. Consumir WebServices para consultar si el cliente existe, dada la dirección de correo electrónico
2. Consumir WebServices para ingresar Cliente en LSCentral
Página 21 de 46
3.1.2.1. Obtener un cliente (Get)
Momento
Sentido de Sistema
ID Servicio Tipo Descripción Responsable de
conexión que ejecuta
consumo
GET Retorna un a petición
de
Obtener un (obtener cliente dado de
5 Clientes LSCentral a Addvantit eCommerce
cliente uno o más un id de eCommerce
ECommerce
elementos) cliente (Nectri)
En algunos casos se pueden realizar las consultas por medio de llamados a servicios web de ODATA o
SOAP, en la compañía MNDG Capacitación. Para la consulta de clientes se cuenta con las siguientes
opciones para obtener alguno de los datos que se requieren.
OData.
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryCustom
erAddv
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/zAddv_Custo
merPage
Si se desea consultar un cliente específico, se puede utilizar el filtro:
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryCustom
erAddv?$filter=No eq '000000004'
SOAP
http://192.65.134.90:7047/BC180/WS/MNDG%20CAPACITACION/Page/zAddv_CustomerPage
Página 22 de 46
DateOfBirth Date Fecha de nacimiento N/A
Segment* String (50) Catálogo de Segment QueryCustomerAddv
segmentos
Profession String (3) Catálogo de Value_No QueryCustomerAddv
profesiones
FidelityNumber String (16) Número No desarrollado, falta
construganas definir
CustomerAddressId* Int Identificador de la Falta
dirección.
AddressType* String (15) Tipo de dirección Ship_to_Code QueryCustomerAddv
EMBARQUE o FISCAL
Street String (50) Calle Address En este campo de
LSCentral, se escribe
la dirección completa
StreetNumber String (20) Número exterior N/A
IntNumber String (20) Número interior N/A
Street2 String (40) Entre calle N/A
Street3 String (40) y Calle N/A
Suburb String (100) Colonia Address2 QueryCustomerAddv
ZipCode String (5) Código postal PostCode QueryCustomerAddv
City String (50) Ciudad City QueryCustomerAddv
State String (2) Catálogo de estados County QueryCustomerAddv
No es un catálogo
Country String (25) País Country QueryCustomerAddv
Página 23 de 46
3.1.2.2. Obtener un cliente por su correo electrónico
Es posible utilizar el servicio OData anterior para obtener solo el listado de un cliente por su correo
electrónico para esto es necesario colocar al final de la URL QueryCustomerAddv la siguiente
instrucción.
?$filter=EMail eq 'correo electrónico'
Por ejemplo, se desea localizar al cliente que cuenta con el correo electrónico
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryCustomerAddv?$filter=E
Mail eq 'prueba@correo.com'
Página 24 de 46
3.1.2.3. Obtener un cliente B2B y B2C por id. cliente
Para las consultas de clientes B2B y B2C se utilizará el mismo servicio web para consulta de clientes
(QueryCustomerAddv) pero el filtro para determinar si pertenece a un canal u otro será el siguiente.
Adicional se puede anexar un identificador de numero de cliente si así se requiere u omitir para tener
un listado completo de todos los clientes.
B2B
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryCustomerAddv?$filter=Custom
er_Price_Group eq 'B2B' and No eq '000000002'
B2C
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryCustomerAddv?$filter=Custom
er_Price_Group eq 'B2C' and No eq '000000002'
Para las consultas de clientes B2B y B2C se utilizará el mismo servicio web para consulta de clientes
(QueryCustomerAddv) pero el filtro para determinar si pertenece a un grupo u otro será el siguiente.
Campo Customer_Price_Group clave B2B y B2C, adicional se puede anexar un filtro para buscar
clientes de este grupo con asignación de un correo en específico.
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/QueryCustomerAddv?$filter=Custom
er_Price_Group eq 'B2B'and EMail eq 'adrian.mendoza@ssh.com.mx'
Página 25 de 46
3.1.2.5. Alta de Clientes
En LSCentral, se deben dar de alta los nuevos clientes que se registren en la página del eCommerce,
para ello, se requiere publicar un WebServices (POST) para que el sistema de eCommerce consuma
bajo demanda.
Página 26 de 46
Datos generales del cliente: Mapeo de datos
Página 27 de 46
StreetNumber String (20) de tener
IntNumber String (20) dirección de
embarque, se
Street2 String (40)
agrega en otra
Street3 String (40) tabla (String
100)
Suburb (String 100) Address 2 (String 50) Colonia Requerido
Un cliente puede tener varias direcciones de envío, dichas direcciones se deberán ingresar
en la siguiente página
Página 28 de 46
Street2 (String 40) ¿????? Agregar un Es la ubicación Opcional
Street3 (String 40) campo adicional en la de referencia:
ficha de clientes “Entre calles x y
y”
Suburb_ID Colonia_ID Agregar Opcional
campo adicional en la
ficha de clientes
City_ID Ciudad_ID Agregar Opcional
campo adicional en la
ficha de clientes
Point Latitud Agregar Opcional
campo adicional en la
ficha de clientes
Longitud Agregar Opcional
campo adicional en la
ficha de clientes
N/A Contact Type Tipo de contacto, Requerido
colocar fijo
ONLINE
Esta es la URL que se utilizara para el ingreso de nuevos clientes de Ecommerce a LS Central, por el momento la forma de
acceder a él es utilizando credenciales de Windows. Los parámetros de entrada que puede recibir serán los siguientes.
http:// 192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/APICustomerAddv
APICustomerAddv
Id LS Central Comentarios
No Id de cliente
Name Nombre o razón social
VAT_Registration_No RFC
Phone_No teléfono
MobilePhoneNo teléfono Celular
E_Mail Correo electrónico
Segment_No Catalogo segmentos
Value_No Catálogo de profesiones
Ship_to_Code Tipo dirección embarque o fiscal
Address Dirección
Address_2 Colonia
Post_Code Código postal
City Ciudad
County Estado
Country_Region_Code País
Customer_Price_Group Identificador de grupo de precios para un cliente (B2B, B2C,ALL,..)
Página 29 de 46
string url = String.Empty;
request.AddHeader("Content-Type", "application/json");
Si se requiere actualizar los datos de un cliente previamente enviado, se puede utilizar el servicio de
alta de clientes, pero es necesario realizar previamente una consulta (GET) utilizando filtro por No
(Número del cliente) para obtener los valores de id y @odata.etag.
Después que se obtienen estos datos se utilizara la misma URL con la petición (PATCH) para enviar
los campos que se requieran actualizar anexando entre paréntesis el valor id de la consulta anterior y
agregando en el encabezado el valor @odata.etag la sección if-Match.
Se anexa un ejemplo en C#.
Página 30 de 46
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/APICustomerAddv
Ejemplo desde C# en este caso se actualizaron solo algunos datos como, nombre, RFC, correo y teléfonos. Este
ejemplo está en la empresa MN Test.
private void btnUpdateCustomerPage_Click(object sender, EventArgs e)
{
//consulta de clientes
string url_customer = String.Empty;
string filter = String.Empty;
filter = "?$filter=No eq 'CLI00006'";
url_customer =
"http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20TEST')/APICustomerAddv" + filter.Trim();
System.Net.NetworkCredential nCredential = new
NetworkCredential("desarrolloaddvantit4", "Pa$$w0rd", "MNG");
if (property != null)
{
if (property.Name == "id")
{
id = property.Value.ToString();
}
if (property.Name == "@odata.etag")
{
tag = property.Value.ToString();
}
}
}
Página 31 de 46
url = "http://
192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20TEST')/APICustomerAddv(" + id.Trim() + ")";
var client = new RestClient(url);
client.Timeout = -1;
request.AddHeader("Content-Type", "application/json");
request.AddHeader("If-Match", tag.Trim());
Página 32 de 46
Página 33 de 46
3.1.3. Alta de cotizaciones
Las cotizaciones solo se solicitan en el eCommerce y no se valida si los productos que tienen
inventarios.
Una vez que una cotización se integra del eCommerce a LSCentral, los asesores filtran las
cotizaciones por tipo de contacto Online y las que procedan se procesarán desde el sistema.
Son los asesores de ventas, los responsables de generar el proceso en LSCentral para dar
seguimiento y lograr facturar la cotización.
Página 34 de 46
La siguiente es la URL para envío de cotizaciones de ventas hacia LS Central, que serán enviados:
http://192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/APISalesOrderHdrAddv
Página 35 de 46
BillingAddress. Bill-to-City Requerido. Ciudad
City
BillingAddress. Bill-to-County Requerido. Estado
State
BillingAddress. Bill-to-Country/region Requerido. País. En LSCentral es un catálogo
Country Code
DeliveryType* (Int) Requiere envío. Opcional. Tipo de entrega (Domicilio 0, Tienda 1). Por Default =
Agregar campos False
(check) para capturar
si la entrega es en
tienda o en domicilio
DeliveryAddress. Dirección de envío Opcional. Id dirección embarque (Requerido cuando el tipo de
CustomerAddressId* Si el tipo de entrega es entrega es Domicilio)
domicilio, cambiar en la
sección Envío y
facturación la dirección
de envío a Dirección
personalizada
DeliveryAddress. Opcional. Tipo dirección EMBARQUE o FISCAL (Requerido
AddressType* cuando el tipo de entrega es Domicilio)
Página 36 de 46
SSH - SAT Payment Requerido. Colocar fijo PUE
Method
Subtotal* Decimal Opcional. En LS Central Se calcula al insertar las líneas
Tax* Decimal Opcional. En LS Central Se calcula al insertar las líneas
Total* Decimal Opcional. En LS Central Se calcula al insertar las líneas
Details.ProductId* (Detail) No (Sales Line 37) Requerido
String
Details.Quantity* (Detail) Quantity (Sales Line Requerido
Decimal 37)
Details.Price* (Detail) Decimal Unit Price (Sales Line Requerido
37)
Details.PriceWithTax* (Detail) Amount Including VAT Requerido
Decimal (Sales Line 37)
Details.Subtotal* (Detail) Amount (Sales Line Requerido
Decimal 37)
Details.Tax* (Detail) Decimal En LS Central Se calcula al insertar las líneas
Details.Total* (Detail) Decimal En LS Central Se calcula al insertar las líneas
SalesPersonId String (255) Salesperson Code Requerido
Valor fijo = eCommerce
APISalesOrderHdrAddv
Id LS Central Comentarios
Document_Type Debe llevar el valor “Order”
Sell_to_Customer_No Id cliente para cotización
Posting_Description Descripción de la cotización
Sell_to_E_Mail Correo electrónico
Sell_to_Address dirección
Sell_to_Address_2 Colonia
Sell_to_City Ciudad
Sell_to_County Municipio
Sell_to_Post_Code Código postal
Sell_to_Country_Region_Code Id de país
Sell_to_Phone_No Número de teléfono
Document_Date Fecha del documento
Posting_Date Fecha de contabilización
Order_Date Fecha de cotización
Due_Date Fecha de vencimiento
External_Document_No Id de documento externo (opcional)
Location_Code Identificador de almacén
Currency_Code Identificador de moneda(se puede dejar en
blanco o colocar un id de moneda como
USD)
Detalle de la orden
http:// 192.65.134.90:7048/BC180/ODataV4/Company('MNDG%20CAPACITACION')/APISalesOrderDetailAddv
APISalesOrderDetailAddv
Id LS Central Comentarios
Document_Type Por default el valor debe ser “Order”
Document_No Numero de documento, este será el obtenido
en la respuesta de la solicitud de llenado de
encabezado, en el campo “No”.
Line_No Numero de línea, este debe incrementar de
1000 en 1000
Página 37 de 46
Type Tipo de artículo (Item)
No Identificador del artículo
VAT_Prod_Posting_Group Identificador de impuestos (IVA16)
Location_Code Identificador de almacén
Quantity Cantidad de artículos
Unit_of_Measure_Code Identificador de unidad de medida
Unit_Price Precio unitario
Tax_Group_Code Grupo de impuesto (IVA)
Line_Discount_Amount Monto de descuento de la línea (opcional)
Line_Discount_Percent Porcentaje de descuento de la
línea(opcional, puede llevar por porcentaje o
descuento o ninguno)
Line_Amount Monto total antes de impuesto
Debido a que el sistema no permite modificar la dirección de envío con la petición anterior esta debe ser actualizada en un segundo paso,
por lo que es necesario hacer una consulta y solicitud de actualización utilizando el siguiente llamado. En este caso se debe obtener el
valor de @odata.etag e id de un pedido en específico en este ejemplo V-PED0080.
http://192.65.134.90:8080/BC180/api/V2.0/companies(958d56e3-d62a-ec11-acb1-
005056ab4b79)/salesOrders?$filter=number eq 'V-PED0080'
Recuperando este valor se debe hacer una solicitud de actualización del registro usando la sentencia (PATCH), la url de la petición se
anexa abajo, se debe colocar entre paréntesis el identificador de un pedido en específico. Se anexa un ejemplo de código .net.
http:// 192.65.134.90:8080/BC180/api/V2.0/companies(958d56e3-d62a-ec11-acb1-
005056ab4b79)/salesOrders(f00ed7b0-c86c-ec11-acb6-005056ab4b79)
salesOrders
Id LS Central Comentarios
ShipToName Nombre de la persona que recibe mercancía
shipToAddressLine1 Dirección de quien recibe
shipToAddressLine2 Dirección de quien recibe colonia
shipToCity Municipio /ciudad
shipToCountry País o región
Página 38 de 46
shipToState Estado
shipToPostCode Código postal
url = "http://172.30.108.21:7048/BC180/ODataV4/Company('MNDG%20TEST')/APISalesOrderHdrAddv";
var client = new RestClient(url);
client.Timeout = -1;
request.AddHeader("Content-Type", "application/json");
Página 39 de 46
RequestJson.Add(new Newtonsoft.Json.Linq.JProperty("Order_Date", "2021-12-02"));
RequestJson.Add(new Newtonsoft.Json.Linq.JProperty("Due_Date", "2021-12-02"));
RequestJson.Add(new Newtonsoft.Json.Linq.JProperty("External_Document_No", "000004"));
RequestJson.Add(new Newtonsoft.Json.Linq.JProperty("Location_Code", "TIENDA-MIR"));
RequestJson.Add(new Newtonsoft.Json.Linq.JProperty("Currency_Code", ""));
string No = "";
if (response.Content.Contains("@odata.etag"))
{
No = api["No"].ToString();
}
if (No != "")
{
var client_detail = new RestClient(url_detail);
client_detail.Timeout = -1;
request_detail.AddHeader("Content-Type", "application/json");
RequestJsonDetail.Add(new Newtonsoft.Json.Linq.JProperty("Line_Amount",
Decimal.Parse("40.00")));
Página 40 de 46
string gtmJSONDetail = Newtonsoft.Json.JsonConvert.SerializeObject(RequestJsonDetail);
Página 41 de 46
Si se requiere actualizar la dirección de envió se debe realizar una segunda solicitud para actualizar estos campos. Se anexa un
ejemplo para realizar esta solicitud.
private void btnUpdatePed_Click(object sender, EventArgs e)
{
//consulta pedido
string url_fact = String.Empty;
string filter = String.Empty;
Página 42 de 46
var property = prop as JProperty;
if (property != null)
{
if (property.Name == "id")
{
id = property.Value.ToString();
}
if (property.Name == "@odata.etag")
{
tag = property.Value.ToString();
}
}
}
if (id != "")
{
string url = String.Empty;
url = "http://172.30.108.21:7048/BC180/api/V2.0/companies(a93ce7a8-21f9-eb11-acaf-
005056ab4b79)/salesOrders(" + id.Trim() + ")";
request.AddHeader("Content-Type", "application/json");
request.AddHeader("If-Match", tag.Trim());
Newtonsoft.Json.Linq.JObject RequestJson = new Newtonsoft.Json.Linq.JObject();
//pedidos ACTUALIZACIONES
Página 43 de 46
request.AddParameter("text/json", gtmJSON, RestSharp.ParameterType.RequestBody);
}
}
NOTA:
Una vez que se da de alta la cotización, el proceso de convertir la cotización en pedido y enviar a reparto, lo
realiza el asesor de ventas en el sistema LS interactuando con el sistema de entregas confiables
Para este tipo de pedidos debemos integrar una cotización de ventas y en un proceso automático,
transferir la cotización a un pedido de ventas para reservar la mercancía y generar la pre-boleta
de reparto. Cuando el cliente se dirija a cajas, este se cobrará en desde el punto de ventas.
Página 44 de 46
Cuando el cliente pague el pedido, se debe enviar la confirmación al sistema de entregas
confiables (verificar integración con entregas confiables)
Para este tipo de pedidos debemos integrar una cotización de ventas, en automático generar el
pedido de ventas (con su pre-boleta de reparto), generar la factura (timbrar en caso de que el
cliente solicite la factura) y enviar la confirmación al sistema de entregas confiables. (Esta factura
debe contabilizarse en automático)
En caso de que el cliente solicite timbrar su venta, se le deberá devolver el XML y el PDF, para
ello Addvantit suministrará el WebServices para cumplir tal fin.
Página 45 de 46
4. Aceptación
En nombre de ADDVANTIT
Fecha: 06 de abril de 2022
En nombre de ADVANTIT
Fecha: 06 de abril de 2022
Página 46 de 46