Algoritmo de prioridad de Source
Las existencias personalizadas incluyen una lista asignada de fuentes para vender y enviar el inventario de productos disponible a través de su tienda. El algoritmo de prioridad de Source utiliza el orden de los orígenes asignados en el inventario para recomendar deducciones de productos por origen al facturar y enviar el pedido.
Cuando se ejecuta, el algoritmo:
- Funciona según el orden configurado de las fuentes en el nivel de stock, empezando por la parte superior
- Recomienda una cantidad a enviar y una fuente por producto en función del pedido de la lista, la cantidad disponible y la cantidad pedida
- Continúa en la lista hasta que se completa el envío del pedido
- Omite los orígenes deshabilitados si se encuentran en la lista
Para configurar, asignar y ordenar orígenes a un stock personalizado. Consulte Priorización de orígenes para un recurso.
En el siguiente ejemplo se detallan los orígenes asignados en orden, la cantidad disponible y el origen y la cantidad recomendados para deducir y enviar. La fuente principal es un Drop Shipper en el Reino Unido con una cantidad disponible de 240.
Algoritmo de prioridad de distancia
El algoritmo de prioridad de distancia compara la ubicación de la dirección de destino de envío con las ubicaciones de origen para determinar el origen más cercano para realizar envíos. La distancia puede determinarse por la distancia física o el tiempo que se pasa viajando de un lugar a otro, utilizando ubicaciones importadas de la base de datos o direcciones de Google (conducir, caminar o montar en bicicleta).
Tiene dos opciones para calcular la distancia y el tiempo para encontrar el origen más cercano para la satisfacción del envío:
-
Google MAP - Usa los servicios de Google Maps Platform para calcular la distancia y el tiempo entre la dirección de destino de envío y las ubicaciones de origen (dirección y coordenadas GPS). Esta opción utiliza la latitud y la longitud de origen. Se requiere una clave de API de Google con API de geocodificación y API de matriz de distancia habilitadas. Esta opción requiere un plan de facturación de Google y puede incurrir en cargos a través de Google.
-
Cálculo sin conexión: calcula la distancia mediante datos de geocódigo descargados e importados para determinar el origen más cercano a la dirección de destino de envío. Esta opción utiliza los códigos de país de la dirección de envío y el origen. Para configurar esta opción, es posible que necesite asistencia del desarrollador para descargar e importar inicialmente geocódigos mediante una línea de comandos.
Para configurarlo, seleccione las configuraciones y complete los pasos adicionales, como la clave de API de Google o la descarga de datos de envío. Consulte Configurar el algoritmo de prioridad de distancia.
Algoritmos personalizados
Commerce admite desarrollo personalizado y extensiones para agregar algoritmos alternativos para priorizar los orígenes. Por ejemplo, puede tener un algoritmo de prioridad basado en la ubicación geográfica y otro basado en el gasto de existencias o en un atributo del cliente. Cuando el coste de las existencias cambia, la implementación puede cambiar fácilmente los algoritmos para garantizar el coste más bajo.
Reservas
En lugar de deducir o añadir inmediatamente las cantidades de inventario de productos, las reservas retienen los importes de inventario hasta que los pedidos se envían o cancelan. Las reservas funcionan completamente en el backend para actualizar automáticamente la cantidad vendible en el nivel de stock.
inventory.reservations.updateSalabilityStatus
se ejecute continuamente. Para comprobar si se está ejecutando, utilice el comando bin/magento queue:consumers:list
. Si el consumidor de cola de mensajes no aparece en la lista, inícielo: bin/magento queue:consumers:start inventory.reservations.updateSalabilityStatus
.Reservas de pedidos
Las reservas retienen las cantidades de inventario deducidas de la cantidad vendible al ejecutar un pedido. Las reservas se encuentran en el nivel de stock, contando las cantidades hasta que el pedido se factura y envía, se cancela, etc. Al enviar el pedido, puede utilizar las recomendaciones de SSA o introducir manualmente deducciones de cantidad por origen. Cuando se envían, las reservas se compensan automáticamente y se deduce la cantidad. La cantidad vendible vuelve a calcular para el stock con una cantidad actualizada y los importes de reserva restantes en el sistema.
El siguiente diagrama ayuda a definir el proceso de reservas durante un pedido y hasta el envío.
Un cliente envía una solicitud. Commerce comprueba la cantidad vendible de inventario actual. Si hay suficiente inventario disponible en el nivel de stock, una reserva introduce una retención temporal para el SKU del producto (para ese stock) y vuelve a calcular la cantidad vendible.
Después de facturar el pedido, determina las cantidades de productos que se deben deducir y enviar de sus orígenes. El envío se procesa y se envía desde uno o varios orígenes seleccionados al cliente. Las cantidades se deducen automáticamente de la cantidad de inventario de origen y las reservas se borran. Para obtener detalles y ejemplos completos, consulte Acerca del estado del pedido y las reservas.
Cálculos de reservas
El sistema crea una reserva para cada producto cuando se producen los siguientes eventos:
- Un cliente o comerciante realiza un pedido.
- Un cliente o comerciante cancela un pedido total o parcialmente.
- El comerciante crea un envío para un producto físico.
- El comerciante crea una factura para un producto virtual o descargable.
- El comerciante emite un abono.
Las reservas son operaciones de solo anexar, similares a un registro de eventos. A la reserva inicial se le asigna un valor de cantidad negativo. Todas las reservas posteriores creadas al procesar el pedido son valores positivos. Una vez finalizado el pedido, la suma de todas las reservas del producto es 0.
Antes de que el sistema pueda emitir una reserva en respuesta a un nuevo pedido, determina si hay suficientes artículos vendibles para cumplir el pedido. Las cantidades siguientes se tienen en cuenta en el cálculo:
-
Cantidad de StockItem. La cantidad de StockItem es la cantidad agregada de inventario de todos los orígenes físicos para el canal de ventas actual. Veamos un ejemplo en el que la fuente de Baltimore tiene 20 unidades de un producto, la fuente de Austin tiene 25 unidades del mismo producto y la fuente de Reno tiene 10. Cuando todos estos orígenes están vinculados a Stock A, el recuento de StockItem de este producto es 55 (20 + 25 + 10). (Cuando se envían artículos, el indexador de inventario actualiza las cantidades disponibles en cada origen).
-
Reservas pendientes. El sistema totaliza todas las reservas iniciales que no han sido compensadas. Este número siempre es negativo. Si el cliente A tiene una reserva de diez artículos y el cliente B tiene una reserva de cinco para los artículos, las reservas pendientes del producto totalizan -15.
Por lo tanto, el comerciante puede satisfacer un pedido entrante siempre y cuando el cliente pida menos de 40 unidades (55 + -15).
Al finalizar el procesamiento de un pedido (Completo, Cancelado, Cerrado), todas las reservas en el ámbito de ese pedido deben resolverse en 0
. Esto borra todas las retenciones de cantidad vendible.