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
    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 %";
    VALIDATE("Quantity Disc. %");

    Hope this helps.
  • 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.