Buy One (or more) Get One Free

Hello D365BC/NAV Community,

Just wondering, how do you handle Buy One Get One Free or Buy x Get one free situations for sales orders?

Lewis,

Out of the box is not possible. I know LS Retail has the ability but you need there ISV/APP. Here is the code someone once wrote to make this work:

"Quantity Disc. %" := 0;
IF Type = Type::Item THEN BEGIN
  IF (Quantity = "Quantity Invoiced") AND (CurrFieldNo <> 0) THEN
    CheckItemChargeAssgnt;
  GetSalesHeader;
  IF SalesHeader."Allow Quantity Disc." AND "Allow Quantity Disc." THEN BEGIN
    ItemSalesQtyDisc.SETRANGE(Code,"Quantity Disc. Code");
    ItemSalesQtyDisc.SETRANGE("Minimum Quantity",0,ABS("Quantity (Base)"));
    IF ItemSalesQtyDisc.FIND('+') THEN
      "Quantity Disc. %" := ItemSalesQtyDisc."Discount %";
  END;
END;
VALIDATE("Quantity Disc. %");

Hope this helps.
Thanks,
Steve

Thanks Steve,

One thought I had was to create a new item AA which was item A sold as a pair with a cost of a single A.
An alternative is to manually manipulate the cost upon order entry or manually add a line with a 100% discount, but he idea is to avoid any manual entries.