Skip to main content

Hello Everyone,

For Acumatica 2020 R1 version, is there any possibility to fetch specific orders, based on specific BigCommerce order statuses from BigCommerce to Acumatica.

For an example: I want to fetch only the BigCommerce orders having order status as: “Awaiting Payment” and to import further in Acumatica.

Can we achieve this from any mappings/configurations or we have to do a specific customization. If customization is needed, can you please help with sample code.

 

Thank you in advance !

@vivekm Have you tired something like the below? Please do and fetch it. In the Sync Status screen, you should see only the orders that are in Awaiting Payment status. This might work only for the future orders. 

 


Thanks @KarthikGajendran, will verifywith that.


Hi @KarthikGajendran, as per your suggestion:

 

I added below 3 conditions for order status.

 

But on fetch I am not getting the order that has order status as “Manual Verification Required”.

 

Can you suggest on this please, as if I am missing anything here.

 

Thank you,


@vivekm The orders with status Manual Verification Required, Declined, Incomplete and Disputed are not imported by the connector. Those are treated as not valid orders.  


@KarthikGajendran is there any possibility to fetch orders with status “Manual Verification Required” as well along with other valid orders (that connector fetches currently) through a customization. 


@vivekm should be possible with a customization.


@KarthikGajendran Can you suggest the best possible way for the customization please and If possible a sample code piece will be very helpful.

I tried some implementation but no luck, have decompiled 2020 R1 BiCommerce dll (package: BigCommercem20201128]110152020]) to review base implementation. Have extended BCSalesOrderProcessor graph, tried by overriding GetBucketsForImport() method, also tried by modifying RestrictImport() method from BCSalesOrderRestrictor class but here not able to find a proper way to modify it.


Hi @vivekm !

Could you please try this customization approach?

public class BCSalesOrderProcessorExt : PXGraphExtension<BCSalesOrderProcessor>
{
public static bool IsActive() { return true; }

public delegate bool FilterImportRestrictorsDelegate(IMappedEntity record);

PXOverride]
public virtual bool FilterImportRestrictors(IMappedEntity record, FilterImportRestrictorsDelegate baseMethod)
{
bool result = baseMethod(record); // calling the base method

if(!result)
{
MappedOrder order = record as MappedOrder;
if( order != null)
{
if (order.Extern.StatusId == OrderStatuses.VerificationRequired.GetHashCode())
return true;
}
}

return result;
}
}

basically it overrides filtering and returns overrides the result in case filtered because of the status.


Thank you @smarenich  for your input, the suggested approach and code sample is working as expected.


Hi @smarenich 

I am trying to implement the same for 21R1 (build 21.110.00032) but on package publishing getting error like: “Method Boolean FilterImportRestrictors(PX.Commerce.Core.IMappedEntity, FilterImportRestrictorsDelegate) in graph extension is marked as aPXOverride], but its signature is not compatible with original method”. I have Checked “BCSalesOrderProcessor” Base graph but not able to find any method with the same name.

  1. I commented the implementation and observed that the core connector itself fetches the BigC orders with “Manual Verification Required” status with Last Error message as: “The 1660 order has been skipped because the Manual Verification Required external order status is not supported.” but if we select the order and click on Sync button it is syncing.
  2. I believe the customization is no longer needed for 21R1 and core connecter by default fetches BigC orders with “Manual Verification Required” status.
  1. We have another scenario where we do not want to fetch certain orders based on status and we are using Filter condition to achieve this and is working as expected for 20R2. But in 21R1 even though with Filter conditions those orders are fetching, with Last Error message as: “The record has been filtered based on the filtering conditions specified on the Entities (BC202000) form.” and if we select the order and click on Sync button it is syncing. 

 

Can you please suggest the possibility as how we can achieve that, to not fetch certain BigC orders based on BigC order status.

 

 


@vivekm in 2021r1 the method signature has been changed.

It was: public virtual bool FilterImportRestrictors(IMappedEntity record), where True is filter, and False is continue.

now it is: public virtual FilterResult FilterImportRestrictors(IMappedEntity record), where FilterResult may have following statuses:

FilterStatus.Filtered - Item won’t be synced, but user can sync it manually
FilterStatus.Invalid - Item won’t be synced and user cannot sync it too.
FilterStatus.Ignore - Item will be ignored and won’t be added to the Sync History
FilterStatus.None - Item will be synced. 

 

Please note that on your screenshots, you have item with Manual Verification Required as Filtered. It won’t be synced, unless user chooses to sync it manually.

Filtered and Invalid lines are the in the sync Status for the information purpose, so user can understand why his item is not synchronizing. 


Thank you very much @smarenich !

I am able to move forward with your suggestion.


Hi, I have similar problem in regard of gift certificate in Bigcommerce. After to customer purchase the GC it will automatically become completed status and the connector ac-bc filtered all the completed order thats why it will not go in Acumatica. Why is the best approach to sync it the Acumatica? Right now we manually change the status so that I will sync it to acumatica. Thank you


@FrankieDC order with gift cards has to be imported to Acumatica. If that does not work, it seems like a bug and I suggest you to create a case, so we can escalate it to the development.


Reply